| 維度 | mysqldump(邏輯備份) | 直接複製檔案(實體備份) |
|---|---|---|
| 可移植性 | 高,純文字 SQL,跨硬體/版本皆可 | 僅限 MyISAM 且同版本 MySQL 3.23+,ISAM 僅相同硬體 |
| 一致性保障 | 搭配 --lock-tables、--flush-logs 可獲一致快照 | 必須停止服務或鎖定表,否則易產生不一致 |
| 速度 | 較慢,需解析轉換 | 極快,檔案層面複製 |
| 備份粒度 | 可指定庫/表 | 通常整庫或整目錄 |
資料庫名_YYYY-MM-DD.sql,利於識別。gzip 壓縮並設定保留天數。--opt:綜合優化(含 --quick、--add-drop-table、--lock-tables 等),速度最快但會鎖全庫。--quick:逐行輸出,減少記憶體佔用,適合大表。--flush-logs --lock-tables:建立檢查點,新二進制日誌僅含備份後變更。--delayed:產生 INSERT DELAYED,降低還原時對線上查詢影響。--compress:跨網路傳輸時壓縮協議資料。# 目標主機先建庫
mysqladmin -h 目標主機 create 目標資料庫
# 管道串流遷移
mysqldump --opt 源資料庫 | mysql --compress -h 目標主機 目標資料庫
FLUSH TABLES WITH READ LOCK)。cp -r /var/lib/mysql/資料庫 /備份路徑)。mysql 系統庫,啟動參數加 --skip-grant-tables。mysql < 備份檔,實體備份停服務後覆蓋目錄)。ls -t -r update.[0-9]* | xargs cat | mysql --one-database 資料庫DROP DATABASE 等誤操作,重放前務必手動移除該語句。較複雜,建議:
mysql_find_rows 從二進制日誌抽取該表相關查詢重放。MySQL 3.23.15+ 提供 Replication(主從同步),可實現近即時備援,屬於高可用架構範疇,非傳統備份替代方案。