首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Xtrabackup 增量備份與恢復全流程實戰記錄

     編輯:MySQL 綜合教學

接續完整備份,記錄 Xtrabackup 增量備份建立、增量合併準備、模擬恢復驗證的完整過程,展示增量備份空間效率與恢復可靠性。

環境狀態

完整備份 LSN:893330211。新增資料:mm 插入 9999,t 插入 9999。

增量備份

mkdir -p /data/back_up/delta
xtrabackup_55 --defaults-file=/etc/my.cnf \
  --backup --target-dir=/data/back_up/delta \
  --incremental-basedir=/data/back_up

產生 .delta 與 .meta 檔案,僅包含變更頁,空間極小(32KB vs 完整 1MB)。

備份合併準備

  1. 完整備份 prepare
    xtrabackup_55 --prepare --target-dir=/data/back_up
  2. 增量備份 prepare(合併)
    xtrabackup_55 --prepare --target-dir=/data/back_up --incremental-dir=/data/back_up/delta

合併後 /data/back_up 即為最新一致性資料集。

恢復驗證

  1. 刪除資料目錄 inno/。
  2. 複製合併後備份:cp -r /data/back_up/inno/ /usr/local/mysql/data/
  3. chown -R mysql:mysql /usr/local/mysql/data/inno/
  4. 重啟 MySQL,查詢驗證:mm 含 9999,t 含 9999,資料完整。

增量備份優勢總結

優勢說明
空間節省僅備份變更頁,大庫每日增量極小
熱備份無鎖不阻塞讀寫,業務零影響
傳輸快遠端備份頻寬佔用低
檔案級操作降低直接操作資料庫風險
恢復快準備階段在備份端完成,生產端僅需複製啟動
多通道並行新版支援多線程並行備份,百 GB 級增量分鐘級完成

多級增量鏈建議

# 完整備份 (Weekly)
xtrabackup --backup --target-dir=/backup/full_20240101

# 增量 1 (Daily)
xtrabackup --backup --target-dir=/backup/inc_20240102 --incremental-basedir=/backup/full_20240101

# 增量 2 (Daily)
xtrabackup --backup --target-dir=/backup/inc_20240103 --incremental-basedir=/backup/inc_20240102

恢復時依序 --prepare --redo-only 合併每級增量,最後一次不加 --redo-only。

結語

Xtrabackup 增量備份:--incremental-basedir 指定基準 → 產生 .delta → --prepare --incremental-dir 合併 → 恢復同完整備份。掌握此流程,即可構建低成本、高可靠的 MySQL 備份體系。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved