| 工具/方法 | 類型 | 適用引擎 | 熱備 | 速度 | 增量 | 跨版本 | 備註 |
|---|---|---|---|---|---|---|---|
| mysqldump | 邏輯 | 全引擎 | ✅ (單事務/鎖表) | 慢 | ❌ | ✅ | 最通用、升級遷移首選 |
| mysqlhotcopy | 物理 | MyISAM | ✅ | 極快 | ❌ | ❌ | 僅 Unix/NetWare,需本機執行 |
| SQL 語法 (BACKUP TABLE / SELECT INTO OUTFILE) | 物理/邏輯 | MyISAM | ⚠️ | 中 | ❌ | ❌ | 不推薦,功能受限 |
| 二進制日志 | 增量邏輯 | 全引擎 | ✅ | 快 | ✅ | ✅ | PITR、主從同步基石 |
| 物理文件拷貝 | 物理 | 全引擎 | ❌ (需全局鎖) | 極快 | ❌ | ⚠️ (版本/架構敏感) | 冷備/快速克隆 |
| LVM/SAN 快照 | 物理 | 全引擎 | ✅ | 極快 | ✅ (配合 binlog) | ⚠️ | 企業級首選,見文章 91003 |
# MyISAM 推薦(含觸發器/存儲過程/十六進制 Blob/全局鎖/完整 INSERT 關閉)
mysqldump -u$user -p$pass --default-character-set=utf8 \
--opt --extended-insert=false --triggers -R --hex-blob -x db_name > db_name.sql
# InnoDB 推薦(單事務一致性,無需鎖表)
mysqldump -u$user -p$pass --default-character-set=utf8 \
--opt --extended-insert=false --triggers -R --hex-blob --single-transaction db_name > db_name.sql
關鍵參數說明:
--opt = 多項優化組合(默認開啟)--single-transaction:InnoDB 熱備核心,互斥 --lock-tables--quick:流式導出,大表必加,防 OOM--hex-blob:二進制字段必加--extended-insert=false:生成單行 INSERT,便於部分恢復/審計,犧牲導入速度# 1. 客戶端管道導入(推薦)
mysql -u$user -p$pass db_name < backup.sql
# 2. SOURCE 命令(需絕對路徑,mysqld 進程用戶可讀)
mysql> SOURCE /full/path/backup.sql;
# 配置 my.cnf
server-id=1
log-bin=mysql-bin
log-bin-index=mysql-bin.index
# 切換日志(獲取一致性切點)
mysql> FLUSH LOGS;
# 備份 binlog.000001 ~ binlog.00000N + binlog.index
# 從庫還需備份 master.info、relay-log.info
# 恢復:全量備份 + binlog 重放
mysqlbinlog binlog.000001 | mysql -u$user -p$pass db_name
# 指定時間點恢復
mysqlbinlog --stop-datetime="2023-10-01 12:00:00" binlog.000001 | mysql ...
# 1. 刷新並鎖定
mysql> FLUSH TABLES WITH READ LOCK;
# 2. 拷貝數據目錄 + InnoDB 日志文件 (ib_logfile*)
cp -r /var/lib/mysql /backup/physical_$(date +%F)
# 3. 解鎖
mysql> UNLOCK TABLES;
| 業務級別 | 全量頻率 | 增量頻率 | 架構建議 |
|---|---|---|---|
| 一般 | 周 | 日 | 單機 + 定時腳本 |
| 重要/繁忙 | 日 | 時 | 主從架構,在從庫備份,零業務影響 |
| 核心/金融級 | 日 | 分/秒 (binlog 實時流式) | 多從庫 + 異地災備 + 定期演練 |
CHECK/REPAIR/OPTIMIZE/ANALYZE TABLE 或 myisamchk 離線操作。ALTER TABLE tbl ENGINE=InnoDB;(Online DDL 5.6+ 無鎖)。innodb_force_recovery=1..6(遞增嘗試,≥4 唯讀),配合 innodb_log_file 重做日志滾動恢復。無最佳方案,只有最適架構:主從分離備份 + binlog 增量 + 定期全量 + 定期恢復演練 是企業級底線。從今天開始建立你的備份體系!