首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

mysqldump 熱備份實戰:從基本用法到生產級策略

     編輯:MySQL 綜合教學

mysqldump 熱備份實戰:從基本用法到生產級策略

mysqldump 是 MySQL 官方邏輯備份工具,無需停機、跨版本兼容、文本可讀。本文系統講解核心參數、常見場景、恢復驗證、生產級策略。

核心原理

  • 連接 MySQL,執行 SELECT 導出數據為 INSERT 語句
  • 默認 鎖表(--lock-tables)保證一致性,MyISAM 必須鎖表,InnoDB 可用 --single-transaction 熱備不鎖表
  • 輸出包含 CREATE TABLE、INSERT、註釋、會話變量設置

高頻參數速查

參數作用推薦值
-u/-p用戶/密碼專用備份賬號,僅需 SELECT、LOCK TABLES、SHOW VIEW、TRIGGER、EVENT、RELOAD
--single-transactionInnoDB 熱備核心,啟動事務一致性視圖,不鎖表InnoDB 必加
--master-data=2輸出 CHANGE MASTER TO 註釋(含 Binlog 位置),從庫搭建必備=2(註釋),=1(可執行)
--routines --triggers --events導出存儲過程/函數、觸發器、事件全量備份必加
--hex-blob二進制列(BLOB/BINARY)十六進制導出,避免亂碼有二進制列必加
--quick / -q流式讀取,不緩存結果集到內存,大表必加大表必加
--compress網絡傳輸壓縮跨網段備份建議
--set-gtid-purged=OFF不輸出 GTID 資訊,避免恢復報錯異構恢復建議

經典命令模板

1. 全量熱備(InnoDB 生產首選)

mysqldump -h 10.0.1.10 -u backup_user -p'Passw0rd!' \
  --single-transaction \
  --master-data=2 \
  --routines --triggers --events \
  --hex-blob --quick \
  --databases prod_db > /backup/prod_db_$(date +%F_%H%M).sql

2. 單表備份(結構+數據 / 僅結構)

# 結構+數據
mysqldump -u backup -p db_name table_name > table.sql

# 僅結構
mysqldump -u backup -p --no-data db_name table_name > table_struct.sql

3. 遠程壓縮傳輸(節省帶寬/磁盤)

mysqldump -h 10.0.1.10 -u backup -p --single-transaction --quick db_name | gzip > /backup/db_$(date +%F).sql.gz

恢復驗證(備份未驗證 = 沒備份)

全量恢復


單表恢復(從全量文件提取)

CREATE USER 'backup'@'10.0.1.%' IDENTIFIED BY 'StrongPassw0rd!';
GRANT SELECT, LOCK TABLES, SHOW VIEW, TRIGGER, EVENT, RELOAD, PROCESS ON *.* TO 'backup'@'10.0.1.%';
FLUSH PRIVILEGES;

建立「備份-驗證-演練」閉環,才是真正的數據安全。

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