问题描述
我正在尝试删除两个处于失败状态的 AWS DMS 数据库“迁移”任务。从控制台尝试超过 30 次后,它会显示一个绿色横幅并显示任务已删除 - 任务仍然存在。我还尝试使用 aws cli 删除 dms 任务并获得相同的结果。 DMS 的事件日志显示以下内容:
dms-copy-task replication-task May 3,2021,22:48:37 (UTC-04:00) Failed to clean task resources for task dms-copy-task during task deletion
dms-copy-task replication-task May 3,22:47:06 (UTC-04:00) Replication task has been deleted.
有人可以告诉我现在如何摆脱这些任务吗?我的目标是清理整个 DMS 复制实例,但我不能不先删除任务。
解决方法
无法删除 DMS 任务,因为无法访问源 PostgreSQL 数据库。当具有 PostgreSQL 兼容源的 DMS 任务尝试并且无法删除源上的复制槽时会发生这种情况,要解决此问题,请考虑将以下修改更改为 DMS 任务设置:
Change:
> "FailTaskWhenCleanTaskResourceFailed": true
to
> "FailTaskWhenCleanTaskResourceFailed": false
请注意,参数“FailTaskWhenCleanTaskResourceFailed”默认设置为 true,以避免源数据库 (Aurora Postgres) 上的复制槽处于活动状态,这会导致 WAL 文件的增长。因此,建议手动检查源复制槽并确认已将其移除,以免由于未使用的复制槽而导致源 RDS 实例中的空间增加。
一旦完成,请按照以下步骤将“FailTaskWhenCleanTaskResourceFailed”更新为 false,这将导致 DMS 以不同方式评估删除过程,从而允许 DeleteReplicationTask API 调用完成而不会遇到“手动删除插槽”错误。
修改任务 JSON:
1. Select the DMS Task
2. Choose Modify
3. Scroll to the "Task settings" section
4. Choose the "JSON editor"
5. Scroll towards the bottom and set the following:
"FailTaskWhenCleanTaskResourceFailed": false
6. Save the Task settings
7. Delete the DMS task.
来源和信用:
AWS 技术支持团队
,见上面的评论。我能够通过重新配置将 DMS 任务移回工作状态,然后停止并删除它们来清理 DMS。