如何修改 AWS DMS 任务的错误处理任务设置?

上次更新时间:2019 年 9 月 27 日

什么是 AWS Database Migration Service (AWS DMS) 的错误处理任务设置? 如何修改我的复制任务的错误处理任务设置?

简短描述

使用错误处理设置来更改复制任务在更改数据捕获 (CDC) 期间遇到错误时的行为。错误处理设置可以根据数据操作语言 (DML) 或者根据环境错误,在数据级别或表级别管理错误。环境错误包括复制实例与源或目标之间的连接问题、复制实例上的资源争用导致的任务失败、源/目标不可用等等。由于环境问题可能存在间歇性,因此 AWS DMS 保留了出现故障时自动恢复的功能。

请参阅下面的处理任务设置常见错误示例及其使用案例:

  • TableErrorPolicy 定义了出现与一般数据或特定表的元数据有关的错误时 AWS DMS 采取的操作。此设置的默认值为 SUSPEND_TABLE。例如,如果您使用 AWS DMS 将 10 个表从源迁移到目标,而其中一个表存在元数据错误,则 AWS DMS 会暂停存在错误的表。然后,该任务将继续迁移剩余的九个表。如果存在错误,修改此设置以使用 STOP_TASK 停止任务。
  • DataTruncationErrorPolicy 定义了迁移期间数据被截断时 AWS DMS 采取的操作。此设置的默认值为 LOG_ERROR,这意味着错误被记录在任务日志中,表迁移继续。您可以修改此设置以使用 IGNORE_RECORDLOG_ERRORSUSPEND_TABLESTOP_TASKIGNORE_RECORDLOG_ERROR 之间的不同在于 IGNORE_RECORD 将使 DataErrorEscalationCount 增加。这是触发 DataErrorEscalationPolicy 之前,表或任务的数据中可能发生的错误的最大数量。
  • RecoverableErrorCount 定义了发生环境错误时 AWS DMS 尝试自动恢复任务的最大次数。此设置的默认值为 -1,这样允许 AWS DMS 无限期地尝试重新启动该任务。如果您绝不希望 AWS DMS 尝试重新启动任务,请将此项设置为 0

有关可用设置的完整列表,请参阅错误处理任务设置

解决方法

使用 AWS 命令行界面 (AWS CLI) 修改错误处理任务设置:

1.    打开 AWS DMS 控制台

2.    从导航窗格中选择数据库迁移任务

3.    如果您要修改的任务正在运行,选中该任务,选择操作,然后选择停止

4.    任务停止后,选择您的任务名称。

5.    在概述详细信息部分中,展开任务设置 (JSON) 部分。

6.    复制任务设置并将其粘贴到 JSON 编辑器中。

7.    编辑 ErrorBehavior 下的设置。下面的示例设置将 FailOnTransactionConsistencyBreached 设置为 trueRecoverableErrorCount 设置为 10

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

8.    保存 JSON 文件,并记下任务 ARN 和文件路径以供稍后使用。

9.    如果尚未进行,则安装和配置最新版本的 AWS CLI

10.    使用您在第 8 步中记下的任务 ARN 和文件路径运行 modify-replication-task 命令。

Linux 示例

aws dms modify-replication-task --replication-task-arn arn:aws:dms:us-east-1:112345679012:task:123eadf45gtJCVU2IBPzasetg5 --replication-task-settings file://your-task-settings.json

Windows 示例

aws dms modify-replication-task --replication-task-arn arn:aws:dms:us-east-1:112345679012:task:123eadf45gtJCVU2IBPzasetg5 --replication-task-settings file://"c:\temp\your-task-settings.json"

11.    返回 AWS DMS 控制台,然后从导航窗格中选择数据库迁移任务

12.    确认任务状态为正在修改

13.    选择任务的名称。

14.    在任务的概述详细信息部分中,展开任务设置 (JSON),并确认 ErrorBehavior 设置已更新。


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?