MySQL 備份主要分為物理備份(直接複製資料檔案)與邏輯備份(匯出 SQL 語句)。前者速度極快、操作簡單,但受限於儲存引擎、版本相容性與一致性風險;後者通用性強、跨版本遷移無虞,但耗時較長。本文將實測「檔案複製法」可行性,並詳細說明官方推薦的 mysqldump 正規流程,協助您根據業務場景選擇最適策略。
TestA)TestA)C:\MySQL\data)C:\MySQL\data\TestATestA 目錄複製至 HostB 同樣路徑 C:\MySQL\data\TestATestAibdata1)無法單獨複製 .ibd 檔案mysql 系統表權限資訊與來源一致,否則存取控制異常mysqldump [OPTIONS] database [tables...]
| 參數 | 用途 | 建議場景 |
|---|---|---|
--single-transaction | InnoDB 熱備份,不鎖表,保證一致性快照 | 生產環境 InnoDB 表 |
--master-data=2 | 記錄 Binlog 位點,支援主從同步/時間點復原 | 主從架構、PITR 需求 |
--routines --triggers --events | 包含預存程序、觸發器、事件排程器 | 完整遷移 |
--extended-insert --quick | 多值 INSERT + 串流讀取,降低記憶體佔用 | 大資料量匯出 |
--hex-blob | 二進位欄位以十六進位輸出,避免字元集問題 | 含 BLOB/BINARY 欄位 |
--compress | 啟用壓縮協議傳輸 | 遠端備份、低頻寬 |
--default-character-set=utf8mb4 | 強制指定連線字元集 | 防止編碼錯誤 |
#!/bin/bash
# 每日備份腳本範例
BACKUP_DIR="/backup/mysql/$(date +%F)"
mkdir -p "$BACKUP_DIR"
mysqldump --host=localhost \
--user=backup_user \
--password='StrongPassword' \
--single-transaction \
--master-data=2 \
--routines --triggers --events \
--extended-insert --quick \
--hex-blob \
--default-character-set=utf8mb4 \
--databases db1 db2 db3 \
| gzip > "$BACKUP_DIR/full_backup_$(date +%H%M).sql.gz"
# 保留 7 天備份
find /backup/mysql -type f -mtime +7 -name '*.gz' -delete
# 解壓縮並還原單一資料庫
gunzip -c backup.sql.gz | mysql -u root -p target_db
# 或直接導入壓縮檔
zcat backup.sql.gz | mysql -u root -p target_db
| 策略 | 適用場景 | 優點 | 缺點 | 工具 |
|---|---|---|---|---|
| mysqldump 邏輯備份 | 中小型資料庫、跨版本遷移、開發測試 | 通用、可編輯 SQL、版本無關 | 大資料量匯入/匯出慢、鎖表影響寫入(無 single-transaction) | mysqldump |
| Percona XtraBackup 物理熱備份 | 大型 InnoDB 生產環境、需快速復原 | 不鎖表、支援增量備份、復原極快 | 需額外安裝、僅支援 InnoDB/XtraDB | xtrabackup |
| LVM/ZFS 快照 + 物理複製 | 檔案系統支援快照的環境 | 近乎零停機、檔案系統層面一致性 | 需規劃邏輯卷、快照保留空間 | lvm/zfs + cp/rsync |
| 檔案直接複製 | 唯讀/靜態 MyISAM 表、測試環境快速複製 | 最快、最簡單 | 不支援 InnoDB、版本綁定、一致性無保障 | cp/rsync |
--master-data)SELECT、LOCK TABLES、RELOAD、REPLICATION CLIENT、PROCESS 權限「檔案複製法」雖然在特定舊版本 MyISAM 環境下可行,但面對現代 InnoDB 為主、高可用性要求的生產系統,mysqldump 邏輯備份配合 --single-transaction 才是穩健的基礎選擇。對於 TB 級資料量,建議導入 Percona XtraBackup 物理熱備份方案。無論採用何種工具,「備份未測試等於無備份」——請務必建立定期還原演練機制,確保災難發生時能從容復原。