PostgreSQL 大型 Table 逻辑复制无限同步

PostgreSQL Large Table Logical Replication Infinite Sync

我有一个大型且快速增长的 PostgreSQL table(166GB 索引和 72GB 数据库)。我想设置此 table 的逻辑复制。双方版本 11.4.

我尝试这样做 2 周,但我唯一拥有的是无限同步和增加副本的 table 大小(已经有 293 Gb 索引和 88Gb table,更多比原来的,并且日志中没有错误)。 我也尝试过进行转储,恢复它并开始同步 - 但现有主键出现错误。 Backend_xmin 复制统计值每周更改一次,但同步状态仍为 "startup"。这些服务器之间的网络连接根本没有使用(它们在同一个数据中心),实际速度大约 300-400Kb(看起来它主要是复制过程的流式传输部分)。

所以问题是如何正确设置大型且快速增长的逻辑复制 table,是否可能?谢谢。

I'm trying to do it for 2 weeks, but the only thing I have is infinite syncing and growing table size on the replica (already 293 Gb index and 88Gb table, more than original, and there are no errors in the log).

在同步完成之前删除副本上的非身份索引。

问题完全一样 查看日志发现如下错误:

ERROR:  could not receive data from WAL stream: ERROR:  canceling statement due to statement timeout

由于表很大,复制因超时而中断 通过增加超时,问题消失了

PS理想情况下,为复制和主基地设置单独的超时会更酷。