xtrabackup shell腳本:
https://gitee.com/ygqygq2/mytools/tree/master/xtrabackup
-
使用說明
此腳本基於Percona XtraBackup 2.4 - 備份用戶權限
在mysql的root用戶下,創建用戶並給予下列權限
GRANT SUPER, RELOAD, LOCK TABLES, PROCESS, REPLICATION CLIENT ON . TO 'xtrabackup'@'localhost' identified by '12345678';
沒有SUPER權限,會在增量備份時報如下錯誤
Error: failed to execute query FLUSH NO_WRITE_TO_BINLOG CHANGED_PAGE_BITMAPS: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
將備份使用的密碼寫入到以下文件中,因爲腳本爲讀取此文件中的密碼。
mkdir -p /data/save/
echo '12345678' > /data/save/mysql_xtrabackup
- 腳本使用說明
腳本使用場景爲一天中備份多次。
xtrabackup_backup_mysql.sh # 腳本控制入口
xtrabackup_backup_full.sh # 全量備份腳本
xtrabackup_backup_incremental.sh # 增量備份腳本
xtrabackup_backup_restore.sh # 備份恢復腳本
- xtrabackup關鍵參數說明
在xtrabackup --prepare時,如果不使用--apply-log-only以防止數據庫回滾,那麼你的增量備份將是無用的。因爲事務回滾後,進一步的增量備份是不能被應用的。
--apply-log-only應該在合併除最後一次增量備份的所有增量備份時,這就是爲什麼恢復備份腳本中,最後一次增量備份xtrabackup --prepare不使用它的原因。即使--apply-log-only在最後一次增量備份時被使用,備份仍將是一致的,但在這種情況下,數據庫會有執行回滾的階段。