何時應該重新啟動及恢復處於停止或失敗狀態的 AWS DMS 任務?

上次更新日期:2022 年 11 月 22 日

我有處於停止或失敗狀態的 AWS Database Migration Service (AWS DMS) 任務。何時該恢復或重新啟動 AWS DMS 工作以繼續複寫?

簡短描述

當 AWS DMS 工作處於停止或失敗狀態時,您有兩個選項可供您繼續複寫:

  • 恢復:當您恢復工作時,AWS DMS 會從工作停止或失敗之前的最後一點繼續複寫。
  • 重新啟動:當您重新啟動工作時,AWS DMS 會從頭開始複寫,並使用您在建立工作時選擇的資料表準備模式。例如,資料表準備模式包含在目標卸除資料表、截斷與不執行任何動作。如需詳細資訊,請參閱完全載入任務設定

恢復與重新啟動的行為會根據您使用三種 AWS DMS 遷移方法的哪一種而有所不同。這些方法包含完全載入、完全載入與異動資料擷取 (CDC),以及僅 CDC 遷移。如需詳細資訊,請參閱建立工作

解決方式

遷移現有資料 (完全載入)

針對完全載入任務,如果您在任務建立時手動啟動任務,請利用 AWS DMS 主控台的重新啟動操作開始複寫。這會重新載入所有遷移的資料表。

您也可使用重新載入資料表資料選項來重新載入在移轉期間失敗的特定資料表。這表示已載入的資料表無須重新載入,而且任何未完成載入的資料表都會重新載入。

如果您在遷移多個資料表時使用了恢復選項,則未完全完成的資料表會重新開始。已完成遷移的資料表不會受到影響。如果您要遷移單一資料表,最佳做法是重新啟動任務,而非使用恢復選項。

遷移現有資料並複製正在進行的變更 (完整載入及 CDC)

當您使用完整載入和 CDC 工作時,AWS DMS 會移轉資料表資料,然後套用在來源發生的資料變更。如果您重新啟動工作,這會再次載入所有資料表,並重新啟動時間以開始擷取來源變更。如果您的工作設定為不執行任何動作準備模式,請在重新啟動工作之前手動清空目標資料表。

如果您恢復工作,則只有在最後一個停止點之後擷取的變更,才會套用於資料庫。如果移轉工作在 CDC 階段期間停止,則 AWS DMS 會保留檢查點資訊以備將來使用。您可以在 AWS DMS 主控台總覽詳細資料分頁中檢視工作檢查點。

僅複製資料變更 (僅限 CDC)

如果您在使用僅限 CDC 的任務,您可以從目前時間或 從 CDC 起始點開始擷取來源資料變更。如果您在定義 CDC 起始點時重新啟動任務,則重新載入操作會從此時間點載入所有變更。如果您在沒有 CDC 起始點的情況下重新啟動任務,則 CDC 會從任務停止的時間變更,直到重新啟動為止。

不論 CDC 起始點設定為何,恢復操作都會繼續從最後的停止點複製變更。如果您利用截斷目標資料表準備模式重新啟動工作,則 AWS DMS 會保留現有的目標資料表及其中繼資料。然而,它會在重新啟動移轉之前刪除這些資料表的所有現有資料。

恢復或重新啟動 AWS DMS 工作的常見案例

下面是部分常見範例,說明何時可在 AWS DMS 工作使用恢復或重新啟動操作。

重新啟動 AWS DMS 任務:

  • 如果來源資料庫管理系統 (DBMS) 未包含復原日誌檔或交易日誌檔而無法恢復 CDC 流程,請重新啟動任務。重新啟動任務會載入所有資料表資料,並繼續擷取變更。
  • 如果 AWS DMS 任務處於錯誤狀態,則表示無法遷移任務的一或多個資料表。處於錯誤狀態時,任務會繼續從選取規則載入其他資料表,但狀態為失敗的任務會因嚴重錯誤而停止。在解除錯誤之後,請重新載入資料表或重新啟動任務以解除錯誤狀態。如需詳細資訊,請參閱為什麼我的 AWS DMS 任務處於錯誤狀態?
  • 如果完全載入和 CDC 或僅 CDC 工作停止,則資料變更可能會從記憶體溢出到磁碟。視交換至磁碟的變更資料量而定,恢復工作可能需要很長時間才能繼續複製。這是因為 AWS DMS 需要較長時間才能從磁碟讀取這些變更。因此,如果可行,請重新啟動工作以避免此一等待時間。
  • 如果您在使用 Oracle LogMiner 和 AWS DMS 二進位讀取器之間進行變更,請務必重新啟動 CDC 任務。
    注意:在修改 CDC 方法之後,如果重新啟動設定了僅限 CDC 任務的 CDC 復原檢查點,可能會看到下列類似錯誤:
    "[SOURCE_CAPTURE ]D: Invalid context provided for the Binary Reader based CDC (為基於 CDC 的二進制讀取程式提供了無效的內容)。Restart task is required." (D: 為 CDC 二進位讀取器提供了無效內容)
    若要解決此錯誤,請根據 CDC 起始點的時間戳記啟動工作。

恢復 AWS DMS 工作:

  • 如果您移動任務至新的複寫執行個體,請恢復任務以從上一個停止點繼續複製變更。
  • 若要升級來源或目標資料庫,請停止在這些資料庫執行的任何 AWS DMS 工作。在升級完成之後恢復工作。
  • 若計劃升級來源或目標資料庫,請停止在這些資料庫執行的任何 AWS DMS 工作。在升級完成之後恢復工作。然而,若要執行 PostgreSQL 引擎版本升級,則執行個體不能包含任何複寫插槽。因此,在升級引擎之前,請先刪除所有複寫插槽,然後重新啟動工作以重新建立複寫插槽。

此文章是否有幫助?


您是否需要帳單或技術支援?