備份
增量備份是基於完整備份的,所以我們需要先做一次完整備份:
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
通過以上步驟就完成了增量備份的還原。
溫馨提示
在還原時,如果有足夠的空間,建議對數據目錄和備份目錄進行拷貝備份。