錯誤處理任務設定 - AWS Database Migration Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

錯誤處理任務設定

您可以使用下列設定,設定複寫任務的錯誤處理行為:如需使用任務組態檔案來設定任務設定的相關資訊,請參閱:任務設定範例

  • DataErrorPolicy— 決定在記錄層級 AWS DMS發生與資料處理相關的錯誤時採取的動作。資料處理錯誤的一些範例包括轉換錯誤、轉換中發生的錯誤,以及資料錯誤。預設值為 LOG_ERROR

    • IGNORE_RECORD – 任務會繼續執行並忽略該記錄的資料。DataErrorEscalationCount 屬性的錯誤計數器會遞增。因此,若您設定資料表的錯誤限制,此錯誤便會計入該限制。

    • LOG_ERROR – 任務會繼續執行,並且會將錯誤寫入任務日誌。

    • SUSPEND_TABLE – 任務會繼續執行,但發生錯誤記錄資料表中的資料會移動到錯誤狀態,並且不會複寫資料。

    • STOP_TASK – 任務會停止,並需要手動操作。

  • DataTruncationErrorPolicy— 決定截斷資料時 AWS DMS採取的動作。預設值為 LOG_ERROR

    • IGNORE_RECORD – 任務會繼續執行並忽略該記錄的資料。DataErrorEscalationCount 屬性的錯誤計數器會遞增。因此,若您設定資料表的錯誤限制,此錯誤便會計入該限制。

    • LOG_ERROR – 任務會繼續執行,並且會將錯誤寫入任務日誌。

    • SUSPEND_TABLE – 任務會繼續執行,但發生錯誤記錄資料表中的資料會移動到錯誤狀態,並且不會複寫資料。

    • STOP_TASK – 任務會停止,並需要手動操作。

  • DataErrorEscalationPolicy— 決定達到最大錯誤數 (在DataErrorEscalationCount參數中設定) 時 AWS DMS採取的動作。預設值為 SUSPEND_TABLE

    • SUSPEND_TABLE – 任務會繼續執行,但發生錯誤記錄資料表中的資料會移動到錯誤狀態,並且不會複寫資料。

    • STOP_TASK – 任務會停止,並需要手動操作。

  • DataErrorEscalationCount – 設定針對特定記錄,資料可發生的錯誤數量上限。到達此數量時,包含錯誤記錄資料表中的資料會根據 DataErrorEscalationPolicy 中設定的政策處理。預設值為 0。

  • EventErrorPolicy— 決定傳送工作相關事件 AWS DMS時發生錯誤時採取的動作。可能值如下

    • IGNORE – 任務會繼續執行,且會忽略與該事件相關聯的所有資料。

    • STOP_TASK – 任務會停止,並需要手動操作。

  • TableErrorPolicy— 決定在 AWS DMS處理特定表格的資料或中繼資料時發生錯誤時採取的動作。此錯誤僅適用於一般資料表資料,而非與特定記錄相關的錯誤。預設值為 SUSPEND_TABLE

    • SUSPEND_TABLE – 任務會繼續執行,但發生錯誤記錄資料表中的資料會移動到錯誤狀態,並且不會複寫資料。

    • STOP_TASK – 任務會停止,並需要手動操作。

  • TableErrorEscalationPolicy— 決定錯誤數目上限時 AWS DMS採取的動作 (使用TableErrorEscalationCount參數設定)。預設及唯一的使用者設定為 STOP_TASK,在此設定下任務會停止並需要手動操作。

  • TableErrorEscalationCount – 針對特定資料表,一般資料或中繼資料可發生的錯誤數量上限。到達此數量時,該資料表的資料會根據 TableErrorEscalationPolicy 中設定的政策處理。預設值為 0。

  • RecoverableErrorCount – 在發生環境錯誤時,嘗試重新啟動任務的次數上限。在系統嘗試重新啟動任務的次數到達指定次數後,任務便會停止並需要手動操作。預設值為 -1,指示嘗試無限 AWS DMS 期地重新啟動工作。當您將此值設定為 -1 時,DMS嘗試重試次數會根據傳回的錯誤類型而有所不同,如下所示:

    • 執行中狀態,可復原的錯誤:如果發生可復原的錯誤 (例如遺失連線或目標套用) 失敗,請DMS重試工作九次。

    • 開始狀態,可復原的錯誤:DMS重試工作六次。

    • 運行狀態,處理的致命錯誤 DMS:DMS重試任務六次。

    • 運行狀態,致命錯誤未處理 DMS:DMS不會重試任務。

    將此值設為 0 以永不嘗試重新啟動任務。

    我們建議您設定RecoverableErrorCount和設定值,RecoverableErrorInterval以便在足夠的間隔內有足夠的重試次數,以便您的DMS工作正確復原。如果發生嚴重錯誤,在大多數情況下會DMS停止嘗試重新啟動。

  • RecoverableErrorInterval— 嘗試重新啟動工作 AWS DMS之間的等待秒數。預設值為 5。

  • RecoverableErrorThrottling – 啟用時,嘗試重新啟動任務之間的間隔會根據 RecoverableErrorInterval 的值連續增加。例如,如果 RecoverableErrorInterval 設為 5 秒,則下一次重試將在 10 秒後發生,然後是 20 秒,然後是 40 秒,以此類推。預設值為 true

  • RecoverableErrorThrottlingMax— 如RecoverableErrorThrottling果已啟用,則嘗試重新啟動工作之間 AWS DMS等待的秒數上限。預設為 1800。

  • RecoverableErrorStopRetryAfterThrottlingMax— 當設定為時true,會在達到復原嘗試之間 AWS DMS 等待的最大秒數之後停止重新啟動工作 (每RecoverableErrorThrottlingMax)。

  • ApplyErrorDeletePolicy— 決定與作業發生衝突時 AWS DMS採取的動DELETE作。預設值為 IGNORE_RECORD。可能的值如下:

    • IGNORE_RECORD – 任務會繼續執行並忽略該記錄的資料。ApplyErrorEscalationCount 屬性的錯誤計數器會遞增。因此,若您設定資料表的錯誤限制,此錯誤便會計入該限制。

    • LOG_ERROR – 任務會繼續執行,並且會將錯誤寫入任務日誌。

    • SUSPEND_TABLE – 任務會繼續執行,但發生錯誤記錄資料表中的資料會移動到錯誤狀態,並且不會複寫資料。

    • STOP_TASK – 任務會停止,並需要手動操作。

  • ApplyErrorInsertPolicy— 決定與作業發生衝突時 AWS DMS採取的動INSERT作。預設值為 LOG_ERROR。可能的值如下:

    • IGNORE_RECORD – 任務會繼續執行並忽略該記錄的資料。ApplyErrorEscalationCount 屬性的錯誤計數器會遞增。因此,若您設定資料表的錯誤限制,此錯誤便會計入該限制。

    • LOG_ERROR – 任務會繼續執行,並且會將錯誤寫入任務日誌。

    • SUSPEND_TABLE – 任務會繼續執行,但發生錯誤記錄資料表中的資料會移動到錯誤狀態,並且不會複寫資料。

    • STOP_TASK – 任務會停止,並需要手動操作。

    • INSERT_RECORD – 若現有目標記錄與插入的來源記錄具有相同的主索引鍵,則更新目標記錄。

  • ApplyErrorUpdatePolicy— 決定與作業發生遺失資料衝突時 AWS DMS採取的動UPDATE作。預設值為 LOG_ERROR。可能的值如下:

    • IGNORE_RECORD – 任務會繼續執行並忽略該記錄的資料。ApplyErrorEscalationCount 屬性的錯誤計數器會遞增。因此,若您設定資料表的錯誤限制,此錯誤便會計入該限制。

    • LOG_ERROR – 任務會繼續執行,並且會將錯誤寫入任務日誌。

    • SUSPEND_TABLE – 任務會繼續執行,但發生錯誤記錄資料表中的資料會移動到錯誤狀態,並且不會複寫資料。

    • STOP_TASK – 任務會停止,並需要手動操作。

    • UPDATE_RECORD— 如果遺失目標記錄,遺失的目標記錄會插入目標資料表。 AWS DMS 完全禁用對任務的LOB列支持。若來源資料庫為 Oracle,則選取此選項便需要為所有來源資料表資料行啟用完整的增補日誌記錄。

  • ApplyErrorEscalationPolicy— 決定達到最大錯誤數目 (使用ApplyErrorEscalationCount參數設定) 時 AWS DMS採取的動作。預設值為 LOG _ERROR:

    • LOG_ERROR – 任務會繼續執行,並且會將錯誤寫入任務日誌。

    • SUSPEND_TABLE – 任務會繼續執行,但發生錯誤記錄資料表中的資料會移動到錯誤狀態,並且不會複寫資料。

    • STOP_TASK – 任務會停止,並需要手動操作。

  • ApplyErrorEscalationCount— 此選項可設定變更流程作業期間特定表格可能發生的最大APPLY衝突數。到達此數量時,該資料表資料會根據 ApplyErrorEscalationPolicy 參數中設定的政策處理。預設值為 0。

  • ApplyErrorFailOnTruncationDdl— 將此選項設定true為可在期間對任何追蹤表格執行截斷時,導致工作失敗。CDC預設值為 false

    此方法不適用於 Postgre 11.x SQL 版或更低版本,或任何其他不會複寫資料DDL表截斷的來源端點。

  • FailOnNoTablesCaptured – 設定此選項為 true 會在為任務定義的資料表映射於任務啟動期間找不到任何資料表時造成任務失敗。預設值為 false

  • FailOnTransactionConsistencyBreached— 此選項適用於使用 Oracle 作為來源的作業CDC。預設值為 false。將此設為 true 會在開啟交易的時間超過指定逾時並且可進行卸除時,造成任務失敗。

    當CDC作業以 Oracle 啟動時,會 AWS DMS 等待最舊的未結交易在有限的時間內關閉,然後再開始CDC。如果最舊的打開事務在達到超時之前沒有關閉,那麼在大多數情況下開 AWS DMS 始CDC,忽略該事務。如果此選項設定為 true,則任務便會失敗。

  • FullLoadIgnoreConflicts— 將此選項設定為true在套用快取事件時 AWS DMS 忽略「受影響零列」和「重複」錯誤。如果設定為false,則 AWS DMS 報告所有錯誤,而不是忽略它們。預設值為 true

請注意,STL_LOAD_ERRORS 會報告 Redshift 作為目標的資料表載入錯誤。如需詳細資訊,請參閱 Amazon Redshift 資料庫開發人員指南ERRORS中的 STLLOAD_ _