0

我運行一個postgres 9.5.2主/從串流repl集羣在docker容器內的單獨的ubuntu EC2實例中,WAL-E流式傳輸到主節點的S3存儲桶。從屬是同步的。一個同步從站位於當前磁盤空間不足的EC2實例上(該盒上還有其他服務/ docker容器正在運行)。這導致該奴隸停止工作,並自然地進入一個不良狀態。當我意識到這是失敗的時候,主人已經刪除了特定奴隸需要趕上的wal部分。所以暫時關閉了奴隸運行的碼頭集裝箱。我沒有考慮檢查主人,因爲奴隸下去不應該對主人造成任何問題。但它似乎導致了一些類型的問題。這是我在日誌中看到的唯一錯誤Postgres奴隸導致主進入一個壞的狀態

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。其他一切都是系統默認的

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 

這造成主機有新的連接掛起,然後不會終止連接。直到所有的連接都被使用,它們纔會衰敗。

有沒有人知道爲什麼當奴隸離開集羣時,主人會進入這樣的糟糕狀態?這看起來不正確。我認爲奴隸應該對主人能夠完成工作產生影響。如果奴隸變壞或從羣集中掉落,那麼主人不應該在乎並繼續做它正在做的事情。爲什麼會發生?使用

+0

提供您可以發佈您複製設置 – e4c5

+0

我已經添加在postgresql.conf複製設置,我有。 –

+0

您正在使用第三方軟件包進行歸檔。我只能假設這是由於該問題導致的一些問題。 – e4c5

回答

0

答案,是由@CraigRinger