備份是資料安全最後防線,衡量指標:RPO(恢復點目標,能恢復到幾點)、RTO(恢復時間目標,花多久恢復)。本文系統剖析四大備份流派原理、優缺點與生產避坑。
停庫 → 拷貝 datadir → 啟庫。簡單但**生產環境不可用**(需停服)。
利用 LVM copy-on-write 對整個邏輯卷建立瞬間一致性視圖(類似 InnoDB MVCC 但層面在檔案系統)。

透過 SQL 查詢導出資料(INSERT 語句),跨版本、跨平台相容性佳。
關鍵參數:
--single-transaction:啟動事務快照讀(僅 InnoDB 有效),獲取一致性視圖。--master-data=2:輸出 Binlog 位點註釋,便於 PITR/主從搭建。執行流程:
FLUSH TABLES WITH READ LOCK (FTWRL) → 全域讀鎖
痛點: 單執行緒慢;FTWRL 持有時間取決於非 InnoDB 表大小(含 mysql 系統表),大表時阻塞寫入久。

直接拷貝資料檔 + Redo Log,速度最快,適合大數據量。
核心流程:
FLUSH TABLES WITH READ LOCK 獲取一致性位點
優勢: InnoDB 表幾乎無阻塞;鎖表時間極短(僅備份系統表期間)。
MySQL Server 層引入兩把輕量鎖:
LOCK TABLES FOR BACKUP:阻塞非 InnoDB 表更新 + 所有表 DDL,**不阻塞 InnoDB 讀寫**,不被大查詢阻塞。LOCK BINLOG FOR BACKUP:僅阻塞 Binlog 位點推進,允許 DDL/更新直到寫 Binlog 為止。配合 --backup-locks 參數,xtrabackup 2.4+ / MySQL 5.7+ 可大幅縮短鎖表窗口,業務零感知備份成為可能。
| 場景 | 推薦工具 | 理由 |
|---|---|---|
| 小數據量、跨版本遷移、邏輯審計 | mysqldump | 標準 SQL 輸出,相容性最好 |
| 中大數據量、全 InnoDB、追求速度 | mydumper / mysqlpump (5.7+) | 多執行緒並行,邏輯備份加速 |
| 大數據量(>500GB)、極低 RTO、InnoDB 為主 | xtrabackup (innobackupex) | 物理拷貝最快,InnoDB 近零阻塞 |
| 雲盤/存儲支援快照 | LVM/ZFS/EBS 快照 | 秒級建立,適合頻繁備份、測試克隆 |