Postgresql

PostgreSQL (TimescaleDB) 非同步複製 (WAL) 不起作用

  • February 28, 2022

我正在嘗試設置 PostgreSQL (TimescaleDB) 數據庫的非同步複製。我一直在遵循許多指南,即使在嘗試了文件中的內容之後,它似乎也不起作用。我在 main 和 db 上配置所有內容。然後我去那裡的副本設置,我可以進行手動備份,但自動 straming 永遠不會發生。日誌中沒有關於“WAL”的資訊。我不得不設置錯誤,但這很奇怪,因為正如我所說的手動備份有效。

我檢查了所有內容並嘗試了幾次。並且 main 上的副本插槽永遠不會處於活動狀態。我錯過了什麼?

這是來自副本的日誌 來自副本的日誌

可以做手動血壓 手動血壓

在主插槽上未啟動 主節點

數據庫系統已準備好接受連接

沒錯accept connections,不是

數據庫系統已準備好接受只讀連接

這意味著您啟動了一個新的主伺服器,而不是複制。也沒有entering standby mode消息。

您需要進行另一個基本備份並以待機模式啟動:將空standby.signal文件放在數據目錄中。pg_basebackupwith 選項-R可以放置這個文件並寫入primary_conninfo對應postgresql.auto.conf

正如 Melkij 所描述的,您沒有做任何事情將其置於流模式,因此您所擁有的只是一個分離的複製,而不是副本。將其配置為流式傳輸的最簡單方法是 give -Rto pg_basebackup,儘管您可以根據需要手動修改新目錄。

同樣,這些插槽沒有被使用,因為你沒有做任何事情來使用它們。如果您添加了pg_basebackup -R另一個選項,要求它使用命名插槽,它將使用它來進行備份本身和(通過對 postgresql.auto.conf 所做的更改)來執行副本。

引用自:https://dba.stackexchange.com/questions/308050