前言:MySQL備份方法有很多種,物理備份,邏輯備份,冷備,熱備,完全備份,增量備份,差異備份,因此要根據(jù)生產(chǎn)實(shí)際情況,選擇合適的備份方式
-
物理備份
- 冷備:cp ,tar,...
缺點(diǎn)
? —— 跨平臺性差
? —— 備份時間長,冗余備份,浪費(fèi)存儲空間
-
邏輯備份
- mysqldump //備份命令
- mysql //恢復(fù)命令
-
完全備份
- 備份所有數(shù)據(jù)
-
增量備份
- 備份上次備份后,新產(chǎn)生的數(shù)據(jù)
-
差異備份
- 完全備份后,所有新產(chǎn)生的數(shù)據(jù)
mysqldump工具(邏輯備份,全量備份(備份后空間約占原來ibd使用空間的40%))
相對于物理備份,cp或tar,mysqldump屬于邏輯備份,邏輯備份相較于物理備份來說兼容性好,物理備份往往因為mysql版本或者跨平臺一些原因可能會導(dǎo)致數(shù)據(jù)不一定能恢復(fù)
mysqldump缺點(diǎn)
- 效率低.備份和還原速度慢,鎖表
- 備份過程中,數(shù)據(jù)插入和更新被阻塞
完全備份及恢復(fù)
-
完全備份
]#mysqldump -uroot -p密碼 庫名 > 目錄/xxx.sql //單個庫 ]#mysqldump -uroot -p密碼 -A或--all-database > 目錄/allbak.sql //所有庫 ]#mysqldump -uroot -p密碼 -B 數(shù)據(jù)庫1 數(shù)據(jù)庫2 ... > 目錄/xxx.sql //多個庫 ]#mysqldump -uroot -p密碼 庫名 表名 > 目錄/xxx.sql //某個庫里的單張表 -
完全恢復(fù)
]#mysql -uroot -p密碼 [庫名] < 目錄/xxx.sql //若庫不存在需要手動先將空庫創(chuàng)建出來 //若是恢復(fù)表無論數(shù)據(jù)庫里有無這張表都無關(guān)
binlog日志(增量備份實(shí)時備份)
- 什么是binlog日志
- 也叫做 二進(jìn)制日志
- mysql服務(wù)日志的一種
- 記錄除查詢之外的所有sql
- 可用于數(shù)據(jù)的備份和恢復(fù)
- 是配置mysql主從同步的必要 條件
XtraBacKup工具
- 強(qiáng)大的在線熱備工具
- 備份過程不鎖表,適合生產(chǎn)環(huán)境
- 兼容完全備份,增量備份