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

MySQL 備份策略對比:檔案級直複製 vs mysqldump 邏輯備份

     編輯:MySQL 資料庫相關知識

方案一:檔案級直接複製

操作步驟

  1. 停止寫入或鎖定表:FLUSH TABLES WITH READ LOCK;
  2. 複製 datadir 下對應資料庫目錄
  3. 釋放鎖定:UNLOCK TABLES;
  4. 目標機同路徑貼上,重啟或 FLUSH TABLES;

優缺點

優點缺點
速度極快(僅檔案複製)需停寫或鎖表,影響可用性
無 SQL 解析開銷源目標版本、架構、參數必須完全一致
適合大型資料庫冷備份InnoDB 需複製 ibdata、redo log、undo tablespace 等系統檔
無法跨版本、跨引擎、跨平台遷移

方案二:mysqldump 邏輯備份

基本用法

# 全庫備份
mysqldump -u root -p --single-transaction --routines --triggers --events db_name > backup.sql

# 指定表
mysqldump -u root -p db_name tbl1 tbl2 > backup.sql

# 壓縮輸出
mysqldump -u root -p db_name | gzip > backup.sql.gz

關鍵參數

  • --single-transaction:InnoDB 熱備份不鎖表(需可重複讀隔離級)
  • --quick:串流讀取不緩存全表結果,減少記憶體
  • --extended-insert:多列合併 INSERT,縮小檔案、加速還原
  • --master-data=2:記錄 binlog 位點,支援主從搭建
  • --set-gtid-purged=ON:GTID 模式備份

還原

mysql -u root -p db_name < backup.sql
# 或壓縮檔
gunzip < backup.sql.gz | mysql -u root -p db_name

企業級備份策略建議

層級工具頻率保留用途
全量mysqldump / Percona XtraBackup每日7-30 天災難恢復、遷移
增量binlog / XtraBackup --incremental每小時24-48 小時時間點恢復 (PITR)
邏輯mysqldump --where每週長期審計、合規、跨版本

XtraBackup 物理熱備份(生產環境首選)

# 全量備份
xtrabackup --backup --target-dir=/backup/full --user=root --password

# 準備(replay redo log)
xtrabackup --prepare --target-dir=/backup/full

# 還原
systemctl stop mysql
rsync -av /backup/full/ /var/lib/mysql/
chown -R mysql:mysql /var/lib/mysql
systemctl start mysql

優點:不鎖表、支援增量、還原快、官方維護。

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