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

使用 XtraBackup 熱備份零停機建立 MySQL 從庫節點

     編輯:DB2 教學

使用 XtraBackup 熱備份零停機建立 MySQL 從庫節點

Percona XtraBackup 支援 InnoDB 熱備份,無需鎖表即可獲取一致性資料快照,是生產環境零停機建立從庫的首選工具。本文記錄完整實操流程:從主庫備份、傳輸、準備、到從庫啟動與複制建立。

環境資訊

  • 主庫:10.1.1.17:3306 (MySQL 5.6.10)
  • 從庫:10.1.1.18:3307 (同版本 MySQL + XtraBackup 2.0.7)
  • 備份用戶:xtrabk (具備 RELOAD, PROCESS, LOCK TABLES, REPLICATION CLIENT 權限)

步驟 1:主庫建立完整熱備份

innobackupex --defaults-file=/data/mysqldata/3306/my.cnf \
             --user=xtrabk --password='onlybackup' \
             /backup/backup_full/

備份完成後,目錄結構如 /backup/backup_full/2015-05-21_01-31-19/,包含資料檔、Redo Log、xtrabackup_binlog_info (記錄 Binlog 位置) 等關鍵檔案。

步驟 2:傳輸備份集並準備

# 1. 將備份檔案傳輸至從庫資料目錄
scp -r /backup/backup_full/2015-05-21_01-31-19/* 10.1.1.18:/data/mysqldata/3307/

# 2. 在從庫執行 --apply-log (準備/回放階段)
innobackupex --apply-log /data/mysqldata/3307/data/

關鍵輸出確認: 必須看到 completed OK! 訊息,表示 Redo Log 已回放,資料檔達到一致性狀態,並產生新的 ib_logfile*。

步驟 3:主庫建立複制專用帳號

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'10.1.1.%' IDENTIFIED BY 'replsafe';
FLUSH PRIVILEGES;

步驟 4:配置從庫參數檔並啟動

# 1. 複製主庫 my.cnf 並修改 server-id、port、socket、目錄等差異項
scp my.cnf 10.1.1.18:/data/mysqldata/3307/
sed -i 's/3306/3307/g' /data/mysqldata/3307/my.cnf
echo 'server-id=2' >> /data/mysqldata/3307/my.cnf

# 2. 建立必要目錄
mkdir -p /data/mysqldata/3307/{tmp,binlog}

# 3. 啟動 MySQL
mysqld_safe --defaults-file=/data/mysqldata/3307/my.cnf &

步驟 5:配置複制關聯

# 1. 讀取備份集記錄的 Binlog 位置
cat /data/mysqldata/3307/data/xtrabackup_binlog_info
# 輸出範例:mysql-bin.000011  812

# 2. 在從庫執行 CHANGE MASTER TO
CHANGE MASTER TO
    MASTER_HOST='10.1.1.17',
    MASTER_PORT=3306,
    MASTER_USER='repl',
    MASTER_PASSWORD='replsafe',
    MASTER_LOG_FILE='mysql-bin.000011',
    MASTER_LOG_POS=812;

# 3. 啟動複制
START SLAVE;

步驟 6:驗證複制狀態

SHOW SLAVE STATUS\G
-- 關鍵指標必須為 Yes:
-- Slave_IO_Running: Yes
-- Slave_SQL_Running: Yes
-- Seconds_Behind_Master: 0

功能驗證

-- 主庫插入測試資料
INSERT INTO test.t1 VALUES('jone');

-- 從庫立即查詢
SELECT * FROM test.t1;
-- 應包含新插入的 'jone',確認複制正常

關鍵注意事項

  • 版本一致性: 主從 MySQL 版本、XtraBackup 版本必須匹配,避免 Redo Log 格式不相容。
  • 權限最小化: 備份用戶僅授予必要權限,複制用戶限制來源 IP。
  • 備份驗證: 定期在測試環境還原備份集,確保備份可用性。
  • GTID 模式: MySQL 5.6+ 建議啟用 GTID,簡化 CHANGE MASTER TO (使用 MASTER_AUTO_POSITION=1)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved