PostgreSQL大表逻辑复制无限同步

时间:2019-08-28 08:23:26

标签: postgresql replication logical-replication

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

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

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

2 个答案:

答案 0 :(得分:1)

  

我正在尝试进行2周,但是我唯一要做的就是无限同步并增加副本上的表大小(已经有293 Gb索引和88 Gb表,比原始表还多,并且没有错误)。日志)。

删除副本上的非身份索引,直到完成同步为止。

答案 1 :(得分:1)

问题完全一样 检查日志我发现以下错误:

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

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

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