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

MySQL 備份與還原完全指南:mysqldump、mysqlhotcopy、SQL 語法、二進制日誌、檔案級備份

     編輯:MySQL 資料庫相關知識

備份工具對比

工具/方式類型適用引擎優點缺點
mysqldump邏輯備份全部跨版本、可編輯、支援壓縮、單表/單庫/全庫大表慢、還原慢
mysqlhotcopy物理備份MyISAM極快、鎖表時間短僅限 Linux/Unix、不支援 InnoDB
SELECT INTO OUTFILE邏輯備份全部可自訂格式(CSV)、應用層易處理需 FILE 權限、不含 DDL
二進制日誌 (binlog)增量備份全部即時、支援 PITR (時間點恢復)需啟用、佔磁碟、恢復需重放
檔案級複製 (cp/rsync)物理備份全部最快、最簡單需停服務或全域讀鎖、難增量

mysqldump 核心參數精選

# MyISAM 推薦
mysqldump -u user -p --default-character-set=utf8 --opt --extended-insert=false \
  --triggers -R --hex-blob --lock-all-tables db_name > db_name.sql

# InnoDB 推薦(線上熱備份)
mysqldump -u user -p --default-character-set=utf8 --opt --extended-insert=false \
  --triggers -R --hex-blob --single-transaction db_name > db_name.sql

# 增量備份基準點(配合 binlog)
mysqldump --master-data=1 --single-transaction --flush-logs db_name > db_name.sql

還原方式

# 1. mysql 客戶端管線
mysql -u user -p db_name < db_name.sql

# 2. SOURCE 指令 (在 mysql 客戶端內)
SOURCE /path/to/db_name.sql;

mysqlhotcopy 實戰 (僅 MyISAM)

# 備份
mysqlhotcopy -h localhost -u user -p pass db_name /backup/dir/

# 還原
cp -rf /backup/dir/db_name /var/lib/mysql/
chown -R mysql:mysql /var/lib/mysql/db_name

二進制日誌增量備份流程

  1. `my.cnf` 啟用:`log-bin=binlog`、`server-id=1`,重啟。
  2. 備份前 `FLUSH LOGS;` 產生新 binlog,複製舊 binlog 檔案。
  3. 還原:`mysqlbinlog binlog.000001 | mysql -u user -p db_name`。
  4. 搭配主從架構:在 Slave 執行備份,零影響主庫。

InnoDB 災難恢復關鍵

  • 備份時**必須包含 `ib_logfile*`**(Redo Log),否則崩潰無法恢復。
  • 啟用 `innodb_force_recovery=1..6` 可嘗試跳過損壞頁面啟動搶救資料。

備份策略建議

業務等級全量備份增量備份
一般每週每天
核心每天每小時
金融/醫療每天每 15 分鐘 (binlog 即時同步至異地)

黃金法則:採用主從複寫,在 Slave 執行備份,生產環境零影響。

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