文档首页/ 数据治理中心 DataArts Studio/ 常见问题/ 数据集成(实时作业)/ PostgreSQL/GaussDB作为源端时,作业启动失败且报错信息包含“replication slot "xxx" is already active”怎么办?
更新时间:2025-08-05 GMT+08:00

PostgreSQL/GaussDB作为源端时,作业启动失败且报错信息包含“replication slot "xxx" is already active”怎么办?

问题描述

PostgreSQL/GaussDB作为源端时,实时作业启动失败且报错信息包含“replication slot "xxx" is already active”。

原因分析

PostgreSQL/GaussDB量同步依赖逻辑复制槽,如果一个复制槽已被用于某个实时作业的同步任务,那么它将不能再用于其他作业。

解决方案

  1. 根据复制槽名称后缀的作业id找到对应正在使用该槽的作业,如果确认作业可以停止,则可以先停止此作业,然后恢复报错的作业。

    复制槽命名规则:migration_作业ID,作业ID可以在实时集成作业监控中查看。

    • 方式一
      图1 查看作业作业ID
    • 方式二
      图2 查看作业作业ID
  1. 使用空闲的复制槽,通过命令查询复制槽的状态,或者使用一个新的复制槽。
    • 查询复制槽状态的命令。
      select slot_name, active from pg_replication_slots

      如果active为false,则是空闲状态,反之为工作状态。

      正常情况下,因为每个作业的ID不同,默认使用的复制槽也不同,但是如果使用自定义的复制槽就需要考虑冲突的问题。

    • 自定义复制槽的方法。
      图3 自定义复制槽