通過innobackupex實現對MySQL的增量備份與還原


備份

增量備份是基於完整備份的,所以我們需要先做一次完整備份:

innobackupex --password=test /backup/

備注:test是我的MySQL服務的root用戶的密碼,/backup/是我用於存放備份文件的目錄。

執行完命令后,/backup/目錄下會生成一個時間戳目錄,在我這個例子中是/backup/2016-09-20_14-45-26/。

 

第一次增量備份:

innobackupex --password=test --incremental /backup/ --incremental-basedir=/backup/2016-09-20_14-45-26/

注意:第一次備份的--incremental-basedir參數應指向完整備份的時間戳目錄。

執行完命令后,/backup/目錄下會生成一個時間戳目錄,在我這個例子中是/backup/2016-09-20_14-58-01/。

 

第二次增量備份:

innobackupex --password=test --incremental /backup/ --incremental-basedir=/backup/2016-09-20_14-58-01/

注意:第二次備份的--incremental-basedir參數應指向第一次增量備份的時間戳目錄。

執行完命令后,/backup/目錄下會生成一個時間戳目錄,在我這個例子中是/backup/2016-09-20_14-58-30/。

 

為了達到實驗效果,建議讀者在每次增量備份前對數據庫進行增刪改,以便觀察還原效果。

還原

停止MySQL服務並清空數據目錄:

service mysqld stop
rm -rf /mysql/*

 

整合完整備份和增量備份:

innobackupex --apply-log --redo-only /backup/2016-09-20_14-45-26/
innobackupex --apply-log --redo-only /backup/2016-09-20_14-45-26/ --incremental-dir=/backup/2016-09-20_14-58-01/
innobackupex --apply-log /backup/2016-09-20_14-45-26/ --incremental-dir=/backup/2016-09-20_14-58-30/
innobackupex --apply-log /backup/2016-09-20_14-45-26/

注意:一定要按照完整備份、第一次增量備份、第二次增量備份的順序進行整合,在整合最后一次增量備份時不要使用--redo-only參數。

 

開始還原:

innobackupex --copy-back /backup/2016-09-20_14-45-26/

還原成功后你會看到“completed OK!”的字樣。

 

修改數據目錄的屬主和屬組並啟動MySQL服務:

chown -R mysql.mysql /mysql/
service mysqld start

 

通過以上步驟就完成了增量備份的還原。

溫馨提示

在還原時,如果有足夠的空間,建議對數據目錄和備份目錄進行拷貝備份。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM