一先建立備份賬號
create user 'backup'@'localhost' identified by 'pass4word';
二賦予權限
grant select,reload,lock tables,replication client,show view,event,process on *.* to 'backup'@'localhost';
附加,查看創建表的語句
show create table table_name;
三備份單個數據庫
mysqldump -ubackup -ppass4word --master-data=2 --single-transaction --routines --triggers --events tk_test >tk.sql
詳解
備份分類
按照是否能繼續提供服務
- 熱備 :在線備份,能讀能寫.
- 冷備 :離線備份
按照備份數據庫對象分類
- 物理備份:直接複製數據庫文件,速度較快
- 邏輯備份:數據庫sql文件.相比物理備份而言速度較慢
按照備份數據量
- 全量備份
- 增量備份
備份內容和備份工具
需要備份的內容:文件,二進制日誌,事務日誌,配置文件,操作系統上和MySQL相關的配置
備份工具:
mysqldump:邏輯備份工具.要求MySQL服務在線. MyIsam(溫備,可讀不可寫), InnoDB(熱備,可讀可寫)
cp :冷備份
lvm快照:幾乎熱備.注意點是 ,先flush table,lock table,創建快照,釋放鎖,複製數據.因爲要先flush table 和lock table,這對於MyISAM來說很簡單很容易實現.但對於InnoDB來說,因爲事務的原因,鎖表後可能還有緩存中的數據在寫入文件中,所以應該監控緩存中的數據是否真的已經完全寫入數據文件中,之後才能進行復制數據
xtrabackup:開源 .MyISAM(溫備),InnoDB(熱備),速度較快
語法選項
- mysqldump [OPTIONS] database_name [tables]
mysqldump -ubackup -ppass4word tk_test2 tk_test >back.sql
-
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3 ..]
-
mysqldump -ubackup -ppass4word --database tk_test2 tk_test >back.sql
- mysqldump [OPTIONS] --all-databases [OPTIONS]
mysqldump -ubackup -ppass4word --all-databases > m2.sql;