AWS DMS 任务不会删除

问题描述

我正在尝试删除两个处于失败状态的 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

请注意,参数“FailTask​​WhenCleanTaskResourceFailed”默认设置为 true,以避免源数据库 (Aurora Postgres) 上的复制槽处于活动状态,这会导致 WAL 文件的增长。因此,建议手动检查源复制槽并确认已将其移除,以免由于未使用的复制槽而导致源 RDS 实例中的空间增加。

一旦完成,请按照以下步骤将“FailTask​​WhenCleanTaskResourceFailed”更新为 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。