| 維度 | mysqlhotcopy | mysqldump |
|---|---|---|
| 類型 | 物理備份 (文件級複製) | 邏輯備份 (SQL 文本生成) |
| 支援引擎 | **僅 MyISAM / ARCHIVE** | **所有引擎** (InnoDB/MyISAM/MEMORY...) |
| 一致性機制 | FLUSH TABLES WITH READ LOCK (全局鎖) | InnoDB: --single-transaction (MVCC, 無鎖) MyISAM: --lock-all-tables |
| 速度 | 極快 (僅複製文件) | 較慢 (解析/轉換/壓縮/網絡) |
| 輸出格式 | 原始數據文件 (.MYD/.MYI/.frm) | SQL 文本 (可讀、可編輯、跨平台) |
| 恢復方式 | 直接覆蓋文件目錄 | SQL 重放 (mysql < file) |
| 跨版本/架構遷移 | 不支援 (文件格式綁定版本) | 完美支援 (文本標準化) |
| Blob/二進制處理 | 原生複製 | 需 --hex-blob 轉十六進制 |
| 增量備份 | 不支援 | 配合 Binlog (mysqlbinlog) 實現 |
# 備份指定庫
mysqlhotcopy -u root -p"pass" db1 db2 /backup/dir
# 備份所有庫 (正則)
mysqlhotcopy -u root -p"pass" --regexp=".*" /backup/dir
# 參數詳解
--flushlog # 刷新日志,備份點與 Binlog 對齊
--keepold # 不刪除舊備份目錄,改名 .old
--noindices # 不備份索引文件 (恢復時重建)
--quiet # 靜默模式
核心優勢:文件級複製,速度受限於磁盤 IO,TB 級庫可在分鐘級完成。**自動處理 FLUSH TABLES WITH READ LOCK + FLUSH LOGS**,保證備份一致性與 Binlog 對齊。
# 單庫備份 (含 Blob 處理)
mysqldump -u root -p"pass" --hex-blob db1 > db1.sql
# 全庫備份 (含存儲過程/觸發器/事件)
mysqldump -u root -p"pass" --all-databases --routines --triggers --events > all.sql
# 生產環境黃金參數組合
mysqldump -u root -p"pass" \
--single-transaction \ # InnoDB 熱備核心
--quick \ # 逐行輸出,防 OOM
--master-data=2 \ # 記錄 Binlog 位點 (註釋)
--hex-blob \ # 二進制安全
--routines --triggers --events \
--set-gtid-purged=OFF \ # 避免 GTID 污染
db1 > db1.sql
# 遠程直接同步 (無中間文件)
mysqldump -h src_host -u root -p"pass" db1 | mysql -h dst_host -u root -p"pass" db1
# SSH 隧道遠程同步
mysqldump -u root -p"pass" db1 | ssh dst_host "mysql -u root -p'pass' db1"
IF 存儲引擎 == MyISAM/ARCHIVE AND 極致速度優先 AND 無跨版本遷移需求
THEN mysqlhotcopy
ELSE
mysqldump (通用、安全、標準)
END IF
| 工具 | 定位 | 核心優勢 |
|---|---|---|
| Percona XtraBackup | InnoDB 物理熱備 | 非阻塞、增量備份、流式傳輸、壓縮、並行、準備階段分離 |
| MySQL Enterprise Backup | 商業物理熱備 | 官方支援、加密、雲集成、增量、頁面級恢復 |
| mydumper/myloader | 並行邏輯備份/恢復 | 多線程導出導入 5-10x 加速、一致性快照、壓縮 |
| xtrabackup + 異地複製 | 生產標準架構 | RPO=0 (實時增量)、RTO 分鐘級、跨機房容災 |
~/.my.cnf 或 mysql_config_editor。mysqlhotcopy 是 MyISAM 時代的遺產,已隨 InnoDB 成為默認引擎而退出歷史舞台。mysqldump 以通用性、可移植性、生態兼容性成為**邏輯備份標準**。生產環境**物理熱備首選 XtraBackup**,邏輯備份/遷移/審計用 mysqldump/mydumper,構建「物理為主、邏輯為輔、異地多副本」的備份體系。