文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  使用 NDB Cluster 複製進行時間點還原

25.7.9.2 使用 NDB Cluster 複製進行時間點還原

時間點還原,亦即還原自指定時間點以來所做的資料變更,會在還原完整備份以將伺服器恢復至建立備份時的狀態後執行。使用 NDB Cluster 和 NDB Cluster 複製對 NDB Cluster 資料表執行時間點還原,可透過原生 NDB 資料備份(透過在 ndb_mgm 用戶端中發出 CREATE BACKUP 來取得)並還原 ndb_binlog_index 資料表(從使用 mysqldump 建立的傾印中取得)來完成。

若要對 NDB Cluster 執行時間點還原,必須遵循此處顯示的步驟

  1. 使用 ndb_mgm 用戶端中的 START BACKUP 命令,備份叢集中所有的 NDB 資料庫(請參閱 第 25.6.8 節,〈NDB Cluster 的線上備份〉)。

  2. 稍後,在還原叢集之前,備份 mysql.ndb_binlog_index 資料表。使用 mysqldump 來執行此任務可能是最簡單的。此時也備份二進制日誌檔案。

    應定期更新此備份,可能甚至每小時更新一次,視您的需求而定。

  3. 發生災難性故障或錯誤。)

  4. 找出最後一個已知的良好備份。

  5. 清除資料節點檔案系統(使用 ndbd --initialndbmtd --initial)。

    注意

    磁碟資料表空間和日誌檔案也會由 --initial 移除。

  6. DROP TABLETRUNCATE TABLEmysql.ndb_binlog_index 資料表一起使用。

  7. 執行 ndb_restore,還原所有資料。您必須在執行 ndb_restore 時包含 --restore-epoch 選項,以正確填入 ndb_apply_status 資料表。(如需更多資訊,請參閱 第 25.5.23 節,〈ndb_restore — 還原 NDB Cluster 備份〉。)

  8. mysqldump 的輸出還原 ndb_binlog_index 資料表,並在必要時從備份還原二進制日誌檔案。

  9. 找到最近套用的 epoch,也就是 ndb_apply_status 資料表中最大的 epoch 欄位值,作為使用者變數 @LATEST_EPOCH(強調)

    SELECT @LATEST_EPOCH:=MAX(epoch)
        FROM mysql.ndb_apply_status;
  10. ndb_binlog_index 資料表中找出對應於 @LATEST_EPOCH 的最新二進制日誌檔案 (@FIRST_FILE) 和此檔案內的位置 (Position 欄位值)

    SELECT Position, @FIRST_FILE:=File
        FROM mysql.ndb_binlog_index
        WHERE epoch > @LATEST_EPOCH ORDER BY epoch ASC LIMIT 1;
  11. 使用 mysqlbinlog,從指定的檔案和位置重播二進制日誌事件,直到故障點。(請參閱 第 6.6.9 節,〈mysqlbinlog — 用於處理二進制日誌檔案的公用程式〉。)

另請參閱 第 9.5 節,〈時間點(增量)還原〉,以取得有關二進制日誌、複製和增量還原的更多資訊。