- 文档首页
数据库传输服务
最佳实践
手动清理 PostgreSQL 数据传输任务的自建资源
最佳实践
手动清理 PostgreSQL 数据传输任务的自建资源
手动清理 PostgreSQL 数据传输任务的自建资源
在使用火山引擎 DTS 执行 PostgreSQL 数据库数据迁移或数据同步后,如果 DTS 异常终止任务后,可通过本文介绍的方法在 PostgreSQL 数据库中手动清理因迁移或同步任务创建的资源。
火山引擎 DTS 在执行 PostgreSQL 数据库数据迁移或数据同步时,自动在 PostgreSQL 源库中创建了以下 5 类资源。
说明
下表命名格式列中的 {task_id} 占位符即 DTS 任务 ID。
正常情况下,在数据传输任务结束后,DTS 会在源库中自动删除以上创建的 5 类资源;但在以下场景中,DTS 无法自动删除以上 5 类资源,此时则需要您手动清理以上资源。
- 已在火山引擎 DTS 中启动 PostgreSQL 数据库数据迁移或数据同步任务,且 DTS 无法自动删除 PostgreSQL 源或目标数据库中自建资源(事件触发器(Event Trigger)、函数(Function)、表(Table)、发布(Publication)和复制槽(Replication Slot))。
- 您已拥有 PostgreSQL 数据库的 Superuse 权限。
- 在 DTS 传输任务异常结束后,如果不清理 DTS 自建资源,会导致 DTS 自建资源中的数据越来越多,占用数据库空间,影响数据库性能。
- 在清理 DTS 自建资源时,务必按照清理步骤中的顺序,依次删除事件触发器(Event Trigger)> 函数(Function)> 表(Table)> 发布(Publication)> 复制槽(Replication Slot)。
- 当删除资源顺序有误,导致数据库无法正常执行 DDL 操作时,执行 DROP EVENT TRIGGER 命令,恢复数据库 DDL 操作的可用性。
注意
您需要按顺序依次删除事件触发器(Event Trigger)> 函数(Function)> 表(Table)> 发布(Publication)> 复制槽(Replication Slot)。
- 登录 PostgreSQL 数据库(源端或目标端)。
说明
下面执行命令中的 {task_id} 占位符请替换为 DTS 的任务 ID。
- 如果存在,在确保没有客户端连接目标复制槽情况下,执行以下命令删除目标复制槽。
说明
如果有客户端正连接着目标复制槽,先中断复制槽连接,否则可能删除失败。
Q1:DTS 任务结束后,如果 DTS 没有自动清理为传输任务创建的事件触发器、函数、表、发布和逻辑复制槽资源,必须要手动清理吗?
- A:是的,必须要手动清理 DTS 自建的以上 5 类资源。如果不手动清理以上资源,这些资源会在数据库中一直运行。
- 发布和逻辑复制槽会一直记录数据库中新增的数据日志,随着时间的增长,发布和逻辑复制槽中的数据量越来越大,会占用大量存储空间,并影响数据库性能。
- 触发器、函数和表:触发器会一直捕获 DDL 执行事件,并通过函数将 DDL 执行数据记录到表中。
Q2:在手动清理 DTS 自建资源时,如果没有按照清理顺序删除资源,会有什么影响?
- 如背景信息中所述,DTS 自建资源之间存在依赖关系,如果删除资源的顺序有误,可能会出现报错,并影响数据库业务运行。请务必按照清理步骤删除 DTS 自建资源。
最近更新时间:2026.09.02 11:04:03