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

Percona XtraBackup 實戰教程:全量備份、增量備份、還原恢復與內存優化參數

     編輯:MySQL 綜合教學

Percona XtraBackup 實戰教程:全量備份、增量備份、還原恢復與內存優化參數

XtraBackup 是 InnoDB 熱備份神器,支持非阻塞全量/增量備份、流式傳輸、壓縮、並行操作。本文記錄 yum 安裝、全量/增量備份命令、備份預處理(apply-log)、還原恢復(copy-back)全流程。

1. 安裝 XtraBackup

Yum 自動配置源:

rpm -Uhv https://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm
yum list | grep percona  # 驗證源可用

或手動編寫 /etc/yum.repos.d/percona.repo。安裝:yum install xtrabackup。

2. 全量備份

創建低權限備份用戶:

GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'bkpuser'@'localhost' IDENTIFIED BY '123';
FLUSH PRIVILEGES;

執行全量備份到 /tmp:

innobackupex --user=root --password=root --socket=/tmp/mysql.sock \
  --defaults-file=/usr/local/mysql/my.cnf /tmp

備份完成會生成時間戳目錄,包含數據文件、xtrabackup_checkpoints、xtrabackup_info 等元數據。

3. 增量備份

基於上一次全量/增量備份目錄:

# 第一次增量(基於全量 /tmp/2024-01-01_00-00-00)
innobackupex --user=root --password=root --socket=/tmp/mysql.sock \
  --defaults-file=/usr/local/mysql/my.cnf \
  --incremental /root/inc1 --incremental-basedir=/tmp/2024-01-01_00-00-00

# 第二次增量(基於第一次增量 /root/inc1)
innobackupex --user=root --password=root --socket=/tmp/mysql.sock \
  --defaults-file=/usr/local/mysql/my.cnf \
  --incremental /root/inc2 --incremental-basedir=/root/inc1

4. 還原恢復流程

步驟 1:預處理(apply-log) —— 重放已提交事務、回滾未提交事務,使數據文件達到一致狀態。

# 全量備份預處理
innobackupex --apply-log --use-memory=4G /tmp/2024-01-01_00-00-00

# 增量備份合併:依次將增量應用到全量
innobackupex --apply-log --redo-only /tmp/2024-01-01_00-00-00 --incremental-dir=/root/inc1
innobackupex --apply-log --redo-only /tmp/2024-01-01_00-00-00 --incremental-dir=/root/inc2
# 最後一次不加 --redo-only
innobackupex --apply-log --use-memory=4G /tmp/2024-01-01_00-00-00

步驟 2:複製回數據目錄 —— 目標目錄必須為空。

innobackupex --copy-back --defaults-file=/usr/local/mysql/my.cnf /tmp/2024-01-01_00-00-00

修正數據目錄權限 chown -R mysql:mysql /var/lib/mysql,啟動 MySQL 即可。

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