代码之家  ›  专栏  ›  技术社区  ›  JosMac

PostgreSQL逻辑复制-创建订阅挂起

  •  0
  • JosMac  · 技术社区  · 7 年前

    CREATE PUBLICATION 主控成功,但当我启动命令时 CREATE SUBSCRIPTION

    在主机上,我可以看到复制插槽已创建且处于活动状态,我可以看到新的walsender进程已创建并正在“等待”,在主机上的日志中,我可以看到以下几行:

    2019-01-14 14:20:39.924 UTC [8349] repl_user@db LOG:  logical decoding found initial starting point at 7B0/6C777D10
    2019-01-14 14:20:39.924 UTC [8349] repl_user@db DETAIL:  Waiting for transactions (approximately 2) older than 827339177 to end.
    

    但仅此而已。命令

    Master是一个具有大量插入的db,比如每分钟100秒,但它们都始终处于提交状态。因此,不应该有任何长时间未提交的事务。

    我试图用谷歌搜索这个问题,但什么也没找到。我错过了什么?

    1 回复  |  直到 7 年前
        1
  •  4
  •   Laurenz Albe    5 年前

    因为数据库在云中,所以你不知道它们到底在哪里。

    很可能它们实际上在同一个数据库集群中,这可以解释您看到的死锁: CREATE SUBSCRIPTION

    解决方案是在源数据库中显式创建逻辑复制插槽,并在创建订阅时使用该现有插槽。

    推荐文章