首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 數據庫備份方式深度對比:mysqlhotcopy vs mysqldump

     編輯:MySQL 資料庫相關知識

兩大備份工具定位

維度mysqlhotcopymysqldump
類型物理備份 (文件級複製)邏輯備份 (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 使用詳解 (僅限 MyISAM)


# 備份指定庫
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 對齊。

mysqldump 使用詳解 (通用首選)


# 單庫備份 (含 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 XtraBackupInnoDB 物理熱備非阻塞、增量備份、流式傳輸、壓縮、並行、準備階段分離
MySQL Enterprise Backup商業物理熱備官方支援、加密、雲集成、增量、頁面級恢復
mydumper/myloader並行邏輯備份/恢復多線程導出導入 5-10x 加速、一致性快照、壓縮
xtrabackup + 異地複製生產標準架構RPO=0 (實時增量)、RTO 分鐘級、跨機房容災

避坑指南

  1. 直接 cp 數據目錄 = 自殺:無鎖、無刷盤、無一致性,恢復必壞。
  2. mysqldump 無 --single-transaction 備份 InnoDB:隱式加表鎖,業務凍結。
  3. 備份未驗證 = 無備份:必須定期恢復演練,校驗行數、檢查約束、跑業務 SQL。
  4. 密碼寫在腳本/命令行:進程列表可見,使用 ~/.my.cnf 或 mysql_config_editor。

總結

mysqlhotcopy 是 MyISAM 時代的遺產,已隨 InnoDB 成為默認引擎而退出歷史舞台。mysqldump 以通用性、可移植性、生態兼容性成為**邏輯備份標準**。生產環境**物理熱備首選 XtraBackup**,邏輯備份/遷移/審計用 mysqldump/mydumper,構建「物理為主、邏輯為輔、異地多副本」的備份體系。

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