適用場景:同版本、同架構、InnoDB 獨立表空間(innodb_file_per_table=1),需遷移部分表。
db_A.tab_test1 移至 db_B)USE db_A; SHOW CREATE TABLE tab_test1;USE db_B; CREATE TABLE tab_test1 ...; ALTER TABLE tab_test1 DISCARD TABLESPACE;(刪除 .ibd,保留 .frm)FLUSH TABLES tab_test1 FOR EXPORT;(生成 .cfg 元數據文件,確保數據一致)scp tab_test1.ibd tab_test1.cfg 目標主機:db_B/UNLOCK TABLES;ALTER TABLE tab_test1 IMPORT TABLESPACE;innobackupex --tables-file=/mnt/back_tables.txt /mnt/backup_1
innobackupex --export --apply-log --defaults-file=... /backup_path
replicate_wild_do_table=db_name.table_name
最通用但最慢。關鍵參數:
--single-transaction:InnoDB 熱備份必須,保證一致性視圖--master-data=2:記錄 binlog 位置,便於後續搭建從庫--set-gtid-purged=OFF:避免 GTID 污染| 維度 | mysqldump | xtrabackup | TTS |
|---|---|---|---|
| 速度 | 慢(邏輯導入) | 快(物理拷貝) | 極快(僅移動文件) |
| 跨版本 | 支持良好 | 需相容版本 | 嚴格要求版本一致 |
| 表鎖影響 | 無(單事務) | 備份期無鎖 | 源庫需短暫鎖表 (FLUSH ... FOR EXPORT) |
| 適用規模 | 小表/結構調整 | 大庫/整庫遷移 | 單表/少量表遷移 |
實際工作中結合服務器資源、停機窗口、版本差異綜合選擇。