开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flink cdc postgre sql ,每次重启就会报这个错误?

flink cdc postgre sql ,每次重启就会报这个错误,然后换一个soltname 又好了?Cannot obtain valid replication slot 'test1' for plugin 'pgoutput' and database 'crmdb' [during attempt 21 out of 900, concurrent tx probably blocks taking snapshot.

展开
收起
真的很搞笑 2023-09-28 10:29:20 186 0
1 条回答
写回答
取消 提交回答
  • 可能是由于 PostgreSQL 的 listen/notify 机制导致的。

    PostgreSQL 的 listen/notify 机制允许后台进程在数据库发生变更时发送通知,这可以用于实现实时数据订阅。

    Flink CDC 使用 PostgreSQL 的 listen/notify 机制来监听数据库的变更,并将变更转发给 Flink 集群。

    每次重启 Flink 集群时,都会创建一个新的 Flink 任务来监听数据库的变更。

    由于 PostgreSQL 的 listen/notify 机制只能由一个后台进程使用,因此新的 Flink 任务会阻塞旧的 Flink 任务,导致旧的 Flink 任务无法正常运行。

    解决这个问题的方法是,在 Flink 集群启动之前,先停止 PostgreSQL 的 listen/notify 机制。

    可以使用以下命令停止 PostgreSQL 的 listen/notify 机制:

    SELECT pg_notify_channel_drop(channel_name);
    其中 channel_name 是 PostgreSQL 的 listen/notify 机制使用的通道名称。

    在停止 PostgreSQL 的 listen/notify 机制之后,再次启动 Flink 集群,问题应该就解决了。

    2023-10-17 10:15:47
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 热门讨论

    热门文章

    相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载