跳至内容

为什么我停止的 AWS DMS 任务不重试?

1 分钟阅读
0

我想解决我的 AWS Database Migration Service (AWS DMS) 任务停止并且不重试的问题。

解决方法

AWS DMS 是一项专为自我修复而设计的托管服务。出现问题时,AWS DMS 会尝试修复问题,然后恢复运行。如果迁移停止且不重试,则可能会出现致命或可恢复的错误。

致命错误

如果 AWS DMS 遇到停止 AWS DMS 迁移的错误,则任务将停止并进入 FAILED(失败)状态。您可能会因以下问题之一收到致命错误:

  • 您尚未配置源端点。源端点是迁移的先决条件。
  • AWS DMS 复制实例不从源数据库提取源对象。

在任务日志中,您可能会收到类似于以下内容的错误消息:

“2022-05-28T16:07:35 [TASK_MANAGER ]E: 任务‘K7YJOFK7GYXIK44C2KLGFNG7ZONLZGPWPD5RWHA’遇到致命错误”

当 AWS DMS 遇到致命错误时,AWS DMS 会尝试重启 6 次。如果您的任务没有重试,则 AWS DMS 完成了 6 次重启。

可恢复的错误

对于 AWS DMS,所有环境错误都是可恢复的错误。如果任务或复制实例遇到环境错误,则任务会中断。任务恢复,然后重试。以下是可恢复错误的示例:

  • AWS DMS 复制实例与源或目标数据库的连接中断。
  • 复制实例已重启以进行维护。

在任务日志中,您可能会收到类似于以下内容的错误消息:

“从子任务 0、线程 0 [reptask/replicationtask.c:2673] [1022502] 收到的上次错误任务错误通知,停止原因 RECOVERABLE_ERROR,错误级别 RECOVERABLE”

默认情况下,出现可恢复错误的任务会尝试重启。RecoverableErrorCount 参数用于设置在 AWS DMS 遇到环境错误时尝试重启任务的最大次数。在系统尝试按指定次数重启任务后,任务将停止,需要手动干预。有关详细信息,请参阅错误处理任务设置

如果可恢复的错误导致任务停止且该任务不再重试,请检查 RecoverableErrorCount 是否设置为自定义值。

**注意:**如果 RecoverableErrorCount 设置为值 0,则任务将不会重启。

另外,检查复制实例是否已关闭。

如果以下值设置与默认值不同,则 AWS DMS 任务可能不会重试:

"ErrorBehavior": {        
        "FailOnNoTablesCaptured": false,
        "ApplyErrorUpdatePolicy": "LOG_ERROR",  
        "FailOnTransactionConsistencyBreached": false,
        "RecoverableErrorThrottlingMax": 1800,
        "DataErrorEscalationPolicy": "SUSPEND_TABLE",  
        "ApplyErrorEscalationCount": 0,
        "RecoverableErrorStopRetryAfterThrottlingMax": false,
        "RecoverableErrorThrottling": true,
        "ApplyErrorFailOnTruncationDdl": false,
        "DataTruncationErrorPolicy": "LOG_ERROR",
        "ApplyErrorInsertPolicy": "LOG_ERROR",
        "EventErrorPolicy": "IGNORE",
        "ApplyErrorEscalationPolicy": "LOG_ERROR",
        "RecoverableErrorCount": -1,     
        "DataErrorEscalationCount": 0,
        "TableErrorEscalationPolicy": "STOP_TASK",
        "RecoverableErrorInterval": 5,
        "ApplyErrorDeletePolicy": "IGNORE_RECORD",
        "TableErrorEscalationCount": 0,
        "FullLoadIgnoreConflicts": true,
        "DataErrorPolicy": "LOG_ERROR",
        "TableErrorPolicy": "SUSPEND_TABLE"
    },

**注意:**具有 STOP_TASK 值的设置需要手动干预。

相关信息

对 AWS Database Migration Service 中的迁移任务进行故障排除

AWS 官方已更新 1 年前