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

MySQL 備份與恢復核心命令手冊:mysqldump 與 source 實戰

     編輯:MySQL 資料庫相關知識

MySQL 官方提供的 mysqldump(備份)與 source(恢復)是最基礎、最高兼容的備份恢復工具組合。本文匯總常用參數模板,覆蓋單庫、多庫、單表、全量、定時備份及恢復實戰場景。

一、mysqldump 核心參數速查

參數說明常用值
-u用戶名-u root
-p密碼(緊跟 -p 無空格,或留空交互輸入)-pPass123 / -p
-B備份多個數據庫(Databases)-B db1 db2
--all-databases備份所有庫無需列名
--single-transactionInnoDB 熱備份關鍵:一致性快照,無鎖表生產必加
--master-data=2輸出 CHANGE MASTER TO 註釋(從庫重建用)主從架構必加
-R包含存儲過程/函數/觸發器建議常開
--triggers包含觸發器(默認開啟)--triggers
--events包含事件調度器--events
--hex-blob二進制列用十六進制導出(避免編碼問題)含 BLOB 必加
--quick / -q大表分批讀取,不緩存全表到內存大表必加
--compress客戶端-服務端傳輸壓縮跨網段備份加速

二、常用備份命令模板

1. 單庫備份(生產標準版)

mysqldump -u root -p -B --single-transaction --master-data=2 -R --events --hex-blob --quick \
  my_database > /backup/mysql/my_database_$(date +%F_%H-%M).sql

2. 多庫備份

mysqldump -u root -p -B db1 db2 db3 --single-transaction -R > /backup/mysql/multi_db_$(date +%F).sql

3. 單表備份

mysqldump -u root -p my_database table1 table2 > /backup/mysql/tables_$(date +%F).sql

4. 全量備份(含所有庫、用戶權限、事件)

mysqldump -u root -p --all-databases --single-transaction --master-data=2 -R --events \
  > /backup/mysql/full_$(date +%F_%H-%M).sql

5. 只導出結構(不含數據)

mysqldump -u root -p -d my_database > /backup/mysql/structure_$(date +%F).sql

6. 只導出數據(不含結構)

mysqldump -u root -p -t my_database > /backup/mysql/data_only_$(date +%F).sql

7. 遠程備份 + 壓縮存儲(一條龍)

mysqldump -h 10.0.0.50 -u root -p --single-transaction --quick my_db | gzip > /backup/mysql/remote_my_db_$(date +%F).sql.gz

三、恢復操作指南

1. 進入 MySQL 客戶端恢復(推薦)

mysql -u root -p
# 進入後
mysql> source /backup/mysql/my_database_2024-01-15_02-30.sql;

優點:可見導入進度、錯誤即時顯示、支持大文件流式執行。

2. 命令行直接導入(適合腳本自動化)

# 未壓縮文件
mysql -u root -p my_database < /backup/mysql/my_database.sql

# 壓縮文件(解壓管道導入)
gunzip < /backup/mysql/my_database.sql.gz | mysql -u root -p my_database

3. 部分恢復技巧

  • 只恢復某表:用 sed/awk 切分 SQL 文件,或用 mysqldump 導出時加 -t 只導數據,配合 REPLACE INTO/INSERT IGNORE 導入。
  • 跳過錯誤繼續:mysql -u root -p --force my_database < backup.sql(慎用,可能掩蓋數據損壞)。

四、生產環境備份策略建議

策略頻率保留驗證
全量備份每日 1 次(低峰期)7-30 天每月隨機抽取 1 次全量恢復演練
增量備份每小時/每 30 分鐘7 天配合 Binlog 點位恢復測試
異地備份實時同步至異地存儲永久/合規要求半年一次異地拉起演練

五、總結

mysqldump + source 是 MySQL 備份恢復的「瑞士軍刀」:參數要全(單事務、主數據、存儲程序、事件、十六進制)、壓縮要早(管道 gzip)、恢復要驗(source 交互、定期演練)。將上述模板寫入備份腳本,納入監控告警,才是真正的生產就緒。

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