萬盛學電腦網

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

MySQL 資料庫備份策略:檔案級冷備份與 mysqldump 熱備份完整對比

方案一:檔案級冷備份 (非官方、極速、需停機)

原理: MyISAM 引擎以檔案儲存,資料庫對應目錄,表對應 .frm/.MYD/.MYI 檔案。

操作步驟

  1. 停止源端 MySQL 服務 (確保檔案一致性)。
  2. 複製整個資料庫目錄:datadir/TestA/ → 目標伺服器 datadir/。
  3. 目標端重啟 MySQL 或 FLUSH TABLES。
  4. phpMyAdmin 即可識別新資料庫,查詢修改正常。

優點: 極快、無 SQL 解析開銷、保留完整索引統計資訊。
缺點: 需停機、同版本/同架構/同引擎、InnoDB 共享表空間 (ibdata) 需整體遷移、權限表需同步。

方案二:mysqldump 邏輯熱備份 (官方推薦、線上可用)

基本語法

mysqldump [OPTIONS] database [tables...] > backup.sql

不指定表則備份整庫。大型資料庫必加 --quick 或 --opt (預設開啟),避免全量結果集載入記憶體導致 OOM。

核心參數詳解

參數作用
--opt組合:--quick --add-drop-table --add-locks --extended-insert --lock-tables (最快匯入)
--quick不緩衝查詢結果,直接串流輸出
--add-drop-table建表前加 DROP TABLE,重建無衝突
--extended-insert多值 INSERT,大幅縮減體積與匯入時間
--lock-tables備份期間鎖表 (MyISAM 需要),InnoDB 建議 --single-transaction
--single-transactionInnoDB 一致性熱備份 (無需鎖表),需啟用 --master-data 記錄 binlog 位置
--no-data / -d僅導出結構
--no-create-info / -t僅導出資料
--where='cond'條件篩選備份 (需引號)
-h/-u/-p/-P/-S連線參數
-T /path生成 .sql (結構) + .txt (資料) 分離檔案,需同機器

跨伺服器一鍵遷移

mysqldump --opt --single-transaction --master-data=2 db_name | mysql -h remote_host -C db_name

管道串流傳輸,無中間檔案,-C 啟用壓縮協議。

還原指令

mysqladmin create target_db
mysql target_db < backup.sql

策略選擇建議

場景推薦方案
大型 MyISAM 庫、可停機維護窗口檔案級冷備份 (極速)
InnoDB 線上業務、需時間點恢復mysqldump --single-transaction + binlog
異構遷移 (版本/OS/引擎不同)mysqldump 邏輯備份
定期自動化備份mysqldump + 壓縮 + 異地存儲
copyright © 萬盛學電腦網 all rights reserved