安全資料庫管理的關鍵是定期備份。根據您的資料量、MySQL 伺服器數量和資料庫工作負載,您可以單獨或組合使用以下備份技術:使用 MySQL Enterprise Backup 的熱備份;在 MySQL 伺服器關閉時複製檔案的冷備份;對於較小的資料量或記錄結構描述物件的結構,使用 mysqldump 的邏輯備份。熱備份和冷備份是複製實際資料檔案的實體備份,mysqld 伺服器可以直接使用這些檔案以加快還原速度。
建議使用 MySQL Enterprise Backup 作為備份 InnoDB
資料的方法。
InnoDB
不支援使用第三方備份工具還原的資料庫。
熱備份
mysqlbackup 命令是 MySQL Enterprise Backup 元件的一部分,可讓您備份執行中的 MySQL 執行個體,包括 InnoDB
資料表,在對作業干擾最小的情況下產生資料庫的一致性快照。當 mysqlbackup 正在複製 InnoDB
資料表時,可以繼續讀取和寫入 InnoDB
資料表。MySQL Enterprise Backup 也可以建立壓縮備份檔案,並備份資料表和資料庫的子集。結合 MySQL 二進位日誌,使用者可以執行時間點復原。MySQL Enterprise Backup 是 MySQL Enterprise 訂閱的一部分。如需更多詳細資料,請參閱第 32.1 節,「MySQL Enterprise Backup 概述」。
冷備份
如果您可以關閉 MySQL 伺服器,您可以建立包含 InnoDB
用來管理其資料表的所有檔案的實體備份。請使用下列程序
執行 MySQL 伺服器的慢速關閉,並確定它停止時沒有錯誤。
將所有
InnoDB
資料檔案(ibdata
檔案和.ibd
檔案)複製到安全的地方。將所有
InnoDB
重做日誌檔案(#ib_redo
檔案)複製到安全的地方。N
將您的
my.cnf
設定檔案或檔案複製到安全的地方。
使用 mysqldump 的邏輯備份
除了實體備份之外,建議您定期使用 mysqldump 傾印資料表來建立邏輯備份。二進位檔案可能會在您沒有注意到的情況下損壞。傾印的資料表會儲存在人類可讀的文字檔案中,因此更容易發現資料表損壞。此外,由於格式較簡單,發生嚴重資料損壞的可能性較小。mysqldump 也提供了 --single-transaction
選項,可以在不鎖定其他用戶端的情況下建立一致的快照。請參閱 第 9.3.1 節「建立備份策略」。
複寫適用於 InnoDB
資料表,因此您可以使用 MySQL 複寫功能,在需要高可用性的資料庫站點保留資料庫的副本。請參閱 第 17.19 節「InnoDB 和 MySQL 複寫」。