错误处理任务设置 - Amazon 数据库迁移服务
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

错误处理任务设置

可以使用以下设置来设置复制任务的错误处理行为。有关如何使用任务配置文件来设置任务设置的信息,请参阅任务设置示例

  • DataErrorPolicy— 确定在记录级别出现与数据处理相关的错误时, Amazon DMS 采取的操作。数据处理错误的一些示例包括转换错误、变换中的错误和不正确的数据。默认值为 LOG_ERROR

    • IGNORE_RECORD – 任务继续,并且将忽略该记录的数据。DataErrorEscalationCount 属性的错误计数器将递增。因此,如果您为表设置错误数限制,则此错误将计入限制。

    • LOG_ERROR – 任务继续,并且错误将写入任务日志。

    • SUSPEND_TABLE – 任务继续,但带错误记录的表中的数据将移至错误状态,并且不会复制数据。

    • STOP_TASK – 任务停止,并且需要手动干预。

  • DataTruncationErrorPolicy – 决定在数据被截断时, Amazon DMS 执行的操作。默认值为 LOG_ERROR

    • IGNORE_RECORD – 任务继续,并且将忽略该记录的数据。DataErrorEscalationCount 属性的错误计数器将递增。因此,如果您为表设置错误数限制,则此错误将计入限制。

    • LOG_ERROR – 任务继续,并且错误将写入任务日志。

    • SUSPEND_TABLE – 任务继续,但带错误记录的表中的数据将移至错误状态,并且不会复制数据。

    • STOP_TASK – 任务停止,并且需要手动干预。

  • DataErrorEscalationPolicy – 决定在达到最大错误数(在 DataErrorEscalationCount 参数中设置)时, Amazon DMS 执行的操作。默认值为 SUSPEND_TABLE

    • SUSPEND_TABLE – 任务继续,但带错误记录的表中的数据将移至错误状态,并且不会复制数据。

    • STOP_TASK – 任务停止,并且需要手动干预。

  • DataErrorEscalationCount – 设置特定记录的数据可出现的错误的最大数目。当达到此数目时,将根据 DataErrorEscalationPolicy 中设置的策略来处理包含错误记录的表的数据。默认值是 0。

  • EventErrorPolicy— 确定 Amazon DMS 在发送与任务相关的事件时发生错误时采取的操作。可能的值包括

    • IGNORE – 任务继续,与该事件关联的所有数据都将被忽略。

    • STOP_TASK – 任务停止,并且需要手动干预。

  • TableErrorPolicy – 决定在处理特定表的数据或元数据时出错的情况下, Amazon DMS 执行的操作。此错误仅适用于常规表数据,而不是与特定记录相关的错误。默认值为 SUSPEND_TABLE

    • SUSPEND_TABLE – 任务继续,但带错误记录的表中的数据将移至错误状态,并且不会复制数据。

    • STOP_TASK – 任务停止,并且需要手动干预。

  • TableErrorEscalationPolicy – 决定在达到最大错误数(使用 TableErrorEscalationCount 参数设置)时, Amazon DMS 执行的操作。默认用户设置为 STOP_TASK,其中任务将停止,并且需要手动干预。

  • TableErrorEscalationCount – 特定表的常规数据或元数据可出现的错误的最大数目。当达到此数目时,将根据 TableErrorEscalationPolicy 中设置的策略处理表的数据。默认值是 0。

  • RecoverableErrorCount – 在出现环境错误时,可尝试重新启动任务的最大次数。在系统尝试重新启动任务指定次数时,任务将停止,并且需要手动干预。默认值为 -1,表示 Amazon DMS 尝试无限期地重新启动任务。当您将此值设置为 -1 时,DMS 尝试的重试次数会根据返回的错误类型而有所不同,如下所示:

    • 运行状态,可恢复错误:如果出现可恢复的错误,例如连接中断或目标应用失败,DMS 将重试任务九次。

    • 启动状态,可恢复错误:DMS 重试任务六次。

    • 运行状态,DMS 处理的致命错误:DMS 重试任务六次。

    • 运行状态,DMS 未处理致命错误:DMS 不会重试任务。

    将此值设置为 0 将从不尝试重新启动任务。

    我们建议您将RecoverableErrorCount和设置为值,RecoverableErrorInterval以便在足够的时间间隔内有足够的重试次数,以使您的 DMS 任务能够正常恢复。如果发生致命错误,则在大多数情况下,DMS 会停止尝试重启。

  • RecoverableErrorInterval— Amazon DMS 在两次尝试重启任务之间等待的秒数。默认值是 5。

  • RecoverableErrorThrottling – 启用后,尝试重启任务的间隔将根据 RecoverableErrorInterval 的值连续增加。例如,如果 RecoverableErrorInterval 设置为 5 秒,则下一次重试将在 10 秒后进行,然后是 20 秒,然后是 40 秒,依此类推。默认值为 true

  • RecoverableErrorThrottlingMax— 如果RecoverableErrorThrottling启用, Amazon DMS 在尝试重启任务之间等待的最大秒数。默认值是 1800。

  • RecoverableErrorStopRetryAfterThrottlingMax— 如果设置为true,则在达到恢复尝试之间 Amazon DMS 等待的最大秒数后停止重新启动任务。RecoverableErrorThrottlingMax

  • ApplyErrorDeletePolicy – 决定在与 DELETE 操作发生冲突时, Amazon DMS 执行的操作。默认值为 IGNORE_RECORD。可能的值包括:

    • IGNORE_RECORD – 任务继续,并且将忽略该记录的数据。ApplyErrorEscalationCount 属性的错误计数器将递增。因此,如果您为表设置错误数限制,则此错误将计入限制。

    • LOG_ERROR – 任务继续,并且错误将写入任务日志。

    • SUSPEND_TABLE – 任务继续,但带错误记录的表中的数据将移至错误状态,并且不会复制数据。

    • STOP_TASK – 任务停止,并且需要手动干预。

  • ApplyErrorInsertPolicy – 决定在与 INSERT 操作发生冲突时, Amazon DMS 执行的操作。默认值为 LOG_ERROR。可能的值包括:

    • IGNORE_RECORD – 任务继续,并且将忽略该记录的数据。ApplyErrorEscalationCount 属性的错误计数器将递增。因此,如果您为表设置错误数限制,则此错误将计入限制。

    • LOG_ERROR – 任务继续,并且错误将写入任务日志。

    • SUSPEND_TABLE – 任务继续,但带错误记录的表中的数据将移至错误状态,并且不会复制数据。

    • STOP_TASK – 任务停止,并且需要手动干预。

    • INSERT_RECORD – 如果存在带与插入的源记录相同的主键的现有目标记录,则更新该目标记录。

  • ApplyErrorUpdatePolicy – 决定在与 UPDATE 操作发生缺少数据的冲突时, Amazon DMS 执行的操作。默认值为 LOG_ERROR。可能的值包括:

    • IGNORE_RECORD – 任务继续,并且将忽略该记录的数据。ApplyErrorEscalationCount 属性的错误计数器将递增。因此,如果您为表设置错误数限制,则此错误将计入限制。

    • LOG_ERROR – 任务继续,并且错误将写入任务日志。

    • SUSPEND_TABLE – 任务继续,但带错误记录的表中的数据将移至错误状态,并且不会复制数据。

    • STOP_TASK – 任务停止,并且需要手动干预。

    • UPDATE_RECORD— 如果缺少目标记录,则会将缺失的目标记录插入到目标表中。 Amazon DMS 完全禁用对任务的 LOB 列支持。选择该选项要求在 Oracle 作为源数据库时为所有源表列启用完整补充日志记录。

  • ApplyErrorEscalationPolicy— 确定当达到最大错误数(使用ApplyErrorEscalationCount参数设置)时, Amazon DMS 将采取什么操作。默认值为 LOG_ERROR:

    • LOG_ERROR – 任务继续,并且错误将写入任务日志。

    • SUSPEND_TABLE – 任务继续,但带错误记录的表中的数据将移至错误状态,并且不会复制数据。

    • STOP_TASK – 任务停止,并且需要手动干预。

  • ApplyErrorEscalationCount – 该选项设置在更改处理操作期间,特定表可发生的 APPLY 冲突的最大次数。达到此数目时,将根据 ApplyErrorEscalationPolicy 参数中设置的策略处理表数据。默认值是 0。

  • ApplyErrorFailOnTruncationDdl – 如果将该选项设置为 true,则会导致在 CDC 期间对任何跟踪的表执行截断时任务失败。默认值为 false

    此方式不适用于 PostgreSQL 11.x 或以下版本,以及不复制 DDL 表截断的任何其他源端点。

  • FailOnNoTablesCaptured – 如果将该选项设置为 true,则会导致在任务启动时为任务定义的表映射找不到表时任务失败。默认值为 false

  • FailOnTransactionConsistencyBreached – 该选项适用于将 Oracle 作为 CDC 源的任务。默认值为 false。如果将该选项设置为 true,则会导致当事务的打开时间超出指定超时并可能删除时任务失败。

    当 CDC 任务从 Oracle 开始时,在启动 CDC 之前, Amazon DMS 等待最早的未平仓交易结束的有限时间。如果最早的未结交易直到达到超时后才关闭,则在大多数情况下, Amazon DMS 会启动 CDC,忽略该交易。如果将该选项设置为 true,则任务将失败。

  • FullLoadIgnoreConflicts— 将此选项设置为true在应用缓存事件时 Amazon DMS 忽略 “受影响的零行” 和 “重复” 错误。如果设置为false,则 Amazon DMS 报告所有错误而不是忽略错误。默认值为 true

请注意,STL_LOAD_ERRORS 中报告了 Redshift 作为目标的表加载错误。有关更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 STL_LOAD_ERRORS