Postgres奴隶导致大师进入一个糟糕的状态

时间:2016-08-21 23:53:44

标签: postgresql database-replication master-slave postgresql-9.5

我在Docker容器内的不同ubuntu EC2实例上运行postgres 9.5.2主/从流式转发集群,WAL-E从主节点流式传输到S3存储桶。奴隶是同步的。一个同步从站在今天用完磁盘空间的EC2实例上(该盒子上运行了其他服务/ docker容器)。这导致奴隶停止工作并自然地进入坏状态。当我意识到它已经失效时,主人已经删除了特定奴隶需要赶上的沃尔玛片段。所以暂时我关闭了奴隶运行的docker容器。我没想到检查主人,因为一个奴隶下来不应该导致主人的任何问题。但它似乎引起了某种类型的问题。这是我在日志中看到的唯一错误

WARNING:  canceling the wait for synchronous replication and terminating connection due to administrator command
DETAIL:  The transaction has already committed locally, but might not have been replicated to the standby.
FATAL:  terminating connection due to administrator command
FATAL:  terminating connection due to administrator command

WAL和复制conf。其他一切都是sys default

wal_level = hot_standby
checkpoint_timeout = 10min
checkpoint_completion_target = 0.9
archive_mode = on
archive_command = 'envdir /etc/wal-e.d/env /usr/local/bin/wal-e wal-push %p'
archive_timeout = 60
max_wal_senders = 5
wal_keep_segments = 8
hot_standby = on

这导致主服务器挂起新连接,然后不会终止连接。在使用所有连接之前,它们只会萎缩。

有谁知道为什么当一个奴隶离开集群时,主人会像这样进入一个糟糕的状态?这似乎不对。我认为奴隶应该对能够执行其工作的主人产生影响。如果从机坏了或从集群中掉线,主机就不应该关心并继续做它正在做的事情。为什么会这样?

1 个答案:

答案 0 :(得分:0)

@CraigRinger提供的答案