如何修改 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_RECORD、LOG_ERROR、SUSPEND_TABLE 和 STOP_TASK。IGNORE_RECORD 与 LOG_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 设置为 true,RecoverableErrorCount 设置为 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 设置已更新。