mysqldump 備份鑒于其自身的某些特性(鎖表,本質上備份出來insert腳本或者文本,不支持差異備份),不太適合對實時性要求比較高的情況
Xtrabackup可以解決mysqldump存在的上述的一些問題,生產環境應用的也會更多一些。
本文簡單測試一下Xtrabackup對MySQL數據庫的備份還原操作。
本著先把功能先擼起來再深入細節的原則,粗略地實現了一個備份還原,并未深入細節。
網上有不少xtrabackup的文章,因為環境不一樣,有些需要配置xtrabackup的配置文件,
但是我在xtrabackup 2.4.7版本下測試就需要需求任何配置文件??赡苁敲總€版本都的細節上都不一樣,因此參考資料的時候要注意版本和環境。
innobackupex 備份
xtrabackup和MySQL的版本如下

完整備份
說明:
1.--defaults-file=/etc/my.cnf文件必須在最前面
2.--user=root --password=root,--use=***與 --password=*** 中間一定要有空格,
如截圖,完整備份完成

如截圖,完整備份會創建一個日期(年月日時分秒,yyyy-MM-dd_hh-mm-ss)命名的文件
完整備份出來的內存,實際上是對所備份的數據庫的數據文件的copy加上備份時候產生的一些信息,比如xtrabackup_checkpoints就是當前完整備份的一些個信息,這個信息對差異備份非常重要。

差異備份
差異備份之所以能夠做到差異,就是依賴于完整備份的,在完整備份的基礎上進行完整備份之后的差異的備份。
而如何確定完整的備份之后備份到哪里,就依賴于完整備份之后的xtrabackup_checkpoints這個文件的。
innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --socket=/var/lib/mysql/mysql.sock --incremental /data/backup --incremental-basedir=/data/backup/2017-06-22_13-40-29
如截圖,差異備份完成

如果在進行差異備份的時候,指定的完整備份的文件錯誤或者是未指定完整備份文件,會發現xtrabackup提示找不到xtrabackup_checkpoints這個文件。

innobackupex 還原
準備階段
1、恢復完整備份,也即完整備份應用(--apply-log)日志
innobackupex --defaults-file=/etc/my.cnf --apply-log --redo-only --socket=/var/lib/mysql/mysql.sock /data/backup/2017-06-22_13-40-29
新聞熱點
疑難解答