文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  使用NDB叢集複製進行時間點復原

25.7.9.2 使用NDB叢集複製進行時間點復原

時間點復原 — 也就是,復原自給定時間點以來所做的資料變更 — 是在還原完整備份,將伺服器回復到進行備份時的狀態之後執行。使用NDB叢集與NDB叢集複製,對NDB叢集表格執行時間點復原,可以使用原生NDB資料備份(透過在CREATE BACKUP中發出ndb_mgm用戶端)並還原ndb_binlog_index表格(從使用mysqldump進行的傾印)。

若要執行NDB叢集的時間點復原,必須遵循此處所示的步驟

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

  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叢集備份」。)

  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 節,「時間點(增量)復原」,以取得有關二進位日誌、複製和增量復原的更多資訊。