事實證明,reload
由於身份驗證錯誤,我的腳本無法運行 postgresql。所以下面的一切都是假問題PostgreSQL 的。修復 bug 後,postgresql 允許我毫不費力地寫入單獨的主伺服器。感謝 Nikita Kipriyanov 的幫助,但您可以省略下面的文字。
我的目標是讓主伺服器在備用伺服器發生故障時仍然能夠處理寫入請求。我注意到synchronous_commit =
可以手動設定off
然後重新加載主伺服器。
其他配置repmgr.conf
包括repmgr
:
use_replication_slots=yes
因此,建立的備用伺服器會repmgr
請求主伺服器在其發生故障時為其保留 wal-log。事情並不完全按照預期進行 - 我能夠將寫入操作提交到主資料庫,並且備用資料庫能夠從主資料庫克隆該操作,但有一個錯誤 - 寫入命令總是卡在這裡:
postgres=# CREATE DATABASE ANYTHING;
Ctrl
直到我按+後,提示才再次出現D
,其中包含以下幾行:
^CCancel request sent
WARNING: canceling wait for synchronous replication due to user request
DETAIL: The transaction has already committed locally, but might not have been replicated to the standby.
CREATE DATABASE
postgres=#
因此,每當我嘗試向主節點寫入資料時,它總是會凍結synchronous_commit = off
。 (psql -c ...
也會導致 shell 凍結)這意味著複製設定的臨時變更無法達到我的目標,即防止主資料庫在備用資料庫遇到問題時發生「罷工」!
有沒有辦法繞過這個凍結?謝謝。