Postgres 10 逻辑复制而不截断现有表

Red*_*ack 6 replication postgresql-10

我一直在玩弄 Postgres 10 逻辑复制,试图了解它并可能将它应用到几个项目中。我观察到了一些我想知道的事情,但我不确定我是否知道足够的术语来正确搜索答案。考虑以下:

我有两台运行 postgres 的机器,它们可以相互访问,并且我有从机器 1(发布者)到机器 2(订阅者)的逻辑复制。然而,我希望改变这种关系——我想让 2 个发布者和 1 个订阅者。

我在它们各自的机器上删除订阅和发布,并在相反的机器上创建它们,所以现在 2 有一个发布,1 有订阅。一切似乎只是花花公子。

问题是,当我在 2 上插入一些东西时,它没有发布到 1。订阅/发布配置正确,似乎正在接收彼此的消息。

我玩了一会儿,发现如果我将要复制的表从 2 截断到 1,那么复制会准确地按预期恢复。这似乎是一个问题。我正在执行此操作的数据库非常小,只有 8 个条目,因此截断表并重新加载它不是问题。但是没有这个可以恢复复制吗?

假设我在初始化发布/复制时可以保证两台机器上的两个表具有完全相同的数据,那么它是否可以正常运行而不必截断订阅者节点上的表?