| 維度 | mysqldump (邏輯備份) | XtraBackup (物理備份) |
|---|---|---|
| 備份速度 | 慢 (SQL 解析/重建) | 極快 (檔案層級複製) |
| 鎖表影響 | 長 (FTWRL/單事務) | 幾乎無 (僅短暫 FLUSH TABLES) |
| 一致性保證 | --single-transaction | 複製過程監控 Binlog 回放 |
| 適用場景 | 中小數據量、異構遷移 | 大數據量、生產擴容、PITR |
| 恢復速度 | 慢 (重放 SQL) | 快 (直接啟動) |
server-id=1 log-bin=mysql-bin auto-increment-increment=1 auto-increment-offset=1 slave-skip-errors=all
GRANT REPLICATION SLAVE ON *.* TO 'sync'@'192.168.18.%' IDENTIFIED BY 'sync';
server-id=3 log-bin=mysql-bin auto-increment-increment=1 auto-increment-offset=1 slave-skip-errors=all
mysqldump -uroot -p123 --routines --single-transaction --master-data=2 --databases weibo > weibo.sql # --master-data=2:輸出 CHANGE MASTER TO 註解,含 Binlog 位點
mysql> CREATE TABLE test_tb (id INT, name VARCHAR(30));
mysql -uroot -p123 -e 'CREATE DATABASE weibo;' mysql -uroot -p123 weibo < weibo.sql # 從備份檔提取位點 head -25 weibo.sql -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107; # 配置同步 CHANGE MASTER TO MASTER_HOST='192.168.18.212', MASTER_USER='sync', MASTER_PASSWORD='sync', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107; START SLAVE;
SHOW SLAVE STATUS\G; # Slave_IO_Running: Yes, Slave_SQL_Running: Yes SHOW TABLES; -- 包含 test_tb,證明增量同步生效
關鍵最佳實踐
- 備份前檢查:主庫磁碟空間、Binlog 保留天數、網路帶寬。
- 監控備份進度:
watch -n 5 'ls -lh /backup/'或 XtraBackup 進度條。- 驗證從庫數據一致性:
pt-table-checksum/pt-table-sync(Percona Toolkit)。- 多從庫管理:統一用 Orchestrator 管理拓撲、自動故障轉移。
- 文檔化 SOP:每步命令、預期輸出、回滾方案寫入運維手冊。
總結
中小庫 ( < 100GB ) 可用 mysqldump 簡單可靠;大庫、高寫入、嚴格 RTO 場景,**XtraBackup 物理備份是唯一專業選擇**。無論哪種方案,**驗證從庫一致性與同步延遲**才是上線前的最後一道關卡。