在沒有複製的情況下,我如何仍然能夠寫入主 postgresql?

在沒有複製的情況下,我如何仍然能夠寫入主 postgresql?

事實證明,reload由於身份驗證錯誤,我的腳本無法運行 postgresql。所以下面的一切都是假問題PostgreSQL 的。修復 bug 後,postgresql 允許我毫不費力地寫入單獨的主伺服器。感謝 Nikita Kipriyanov 的幫助,但您可以省略下面的文字。


我的目標是讓主伺服器在備用伺服器發生故障時仍然能夠處理寫入請求。我注意到synchronous_commit =可以手動設定off然後重新加載主伺服器。

其他配置repmgr.conf包括repmgruse_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 凍結)這意味著複製設定的臨時變更無法達到我的目標,即防止主資料庫在備用資料庫遇到問題時發生「罷工」!

有沒有辦法繞過這個凍結?謝謝。

相關內容