萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

mysqldump 核心參數深度解析:從兼容模式到線上熱備最佳組合

參數分類速查表

類別參數說明推薦場景
兼容性--compatible=name目標兼容模式:ansi,mysql323,mysql40,postgresql,oracle,mssql,db2,maxdb,no_key_options...異構遷移
--default-character-set=charset指定導出字符集,防亂碼非 latin1 環境必加
--set-gtid-purged=OFF不輸出 GTID 資訊,避免污染目標庫5.6+ 跨實例遷移
輸出格式--complete-insert / -c完整 INSERT 含列名,效率高但受 max_allowed_packet 限制小表/需可讀性
--extended-insert多行 VALUES 批量 INSERT(預設開啟)大表導入加速
--hex-blobBINARY/VARBINARY/BLOB 十六進制導出含二進制欄位必加
--no-create-info / -t僅導數據,無 CREATE TABLE數據遷移/同步
鎖表/一致性--lock-all-tables / -x全局讀鎖,關閉 single-transactionMyISAM 全庫一致性備份
--lock-tables逐庫鎖表(MyISAM 適用)單庫 MyISAM
--single-transactionInnoDB 熱備金標準,BEGIN+一致性視圖InnoDB 必加
--master-data=1|2輸出 CHANGE MASTER 註解(1=不註解,2=註解)搭建從庫/時間點恢復
--flush-logs備份前刷新 Binlog,配合 master-data 定位增量備份基準點
對象範圍--routines / -R導出預存程序/函數完整遷移必加
--triggers導出觸發器(預設開啟)完整遷移
--no-data / -d僅導結構結構遷移/審計
性能--quick / -q流式讀取,不緩存結果集大表必加
--opt綁定組合:add-drop-table,lock-tables,extended-insert,quick...(預設開啟)通用備份

生產環境推薦組合

MyISAM 表庫


/usr/local/mysql/bin/mysqldump -u$user -p$pass \
  --default-character-set=utf8 \
  --opt --extended-insert=false \
  --triggers -R --hex-blob -x \
  db_name > db_name.sql

InnoDB 表庫(熱備不鎖表)


/usr/local/mysql/bin/mysqldump -u$user -p$pass \
  --default-character-set=utf8 \
  --opt --extended-insert=false \
  --triggers -R --hex-blob \
  --single-transaction \
  db_name > db_name.sql

線上備份 + Binlog 位置(搭建從庫/時間點恢復)


/usr/local/mysql/bin/mysqldump -u$user -p$pass \
  --default-character-set=utf8 \
  --opt --master-data=1 \
  --single-transaction --flush-logs \
  db_name > db_name.sql

--master-data=1 輸出可直接執行的 CHANGE MASTER TO;=2 註解化供參考。

大表導出調優清單

  1. 必加 --quick --single-transaction
  2. 調大 max_allowed_packet(客戶端/服務端同調)
  3. 分表導出:mysqldump ... db table1 > t1.sql 並行執行
  4. 管道壓縮:mysqldump ... | gzip > backup.sql.gz
  5. 考慮 mydumper 多線程並行導出
copyright © 萬盛學電腦網 all rights reserved