我在Streaming Replication中设置了一个postgreSQL集群,其中有一个主服务器和两个从属服务器。
我创建了一些数据库,然后看到将其复制到从属服务器。
然后,我执行了COPY命令以在master上导入大数据集(3GB)。当COPY命令完成并显示以下消息:COPY 43928933
时,我观察到一种奇怪的行为。从csv导入的数据不会复制到从属服务器,流复制也不再起作用。我在没有复制到从属服务器的主节点上创建了一个数据库。
我用
看到一个从站上的日志tail -f 100 /var/log/postgresql/postgresql-9.4-main.log
我看到了:
2019-06-27 14:12:48.919 UTC [13099]日志:从以下位置开始流式传输WAL 主要时间轴1的0/20000000时间2019-06-27 14:12:48.919 UTC [13099]严重:无法从WAL流接收数据:错误: 请求的WAL段000000010000000000000020已经 删除
2019-06-27 14:12:53.931 UTC [13104]日志:开始流式传输 在时间轴1上从主要时间0/20000000处获得WAL的消息2019-06-27 14:12:53.931 UTC [13104]严重:无法从WAL流接收数据:错误: 请求的WAL段000000010000000000000020已经 删除
2019-06-27 14:12:58.943 UTC [13113]日志:从以下位置开始流式传输WAL 主要时间轴1的0/20000000时间2019-06-27 14:12:58.943 UTC [13113]严重:无法从WAL流接收数据:错误:
请求的WAL段000000010000000000000020已经 删除
有人知道如何解决此问题吗?我不了解这种行为。
答案 0 :(得分:0)
对于PostgreSQL 9.4,您需要增加wal_keep_segments或使用replication slots,以便主要服务器在从属服务器接收WAL之前不会覆盖它们。