当没有复制时,我怎样才能仍然能够写入主 postgresql?

当没有复制时,我怎样才能仍然能够写入主 postgresql?

结果是,我的脚本reload由于身份验证错误而无法连接到 postgresql。因此,下面的所有内容都是虚假问题postgresql。修复错误后,postgresql 允许我毫不费力地写入单独的主服务器。感谢 Nikita Kipriyanov 的帮助,但您可以忽略下面的文字。


我的目标是让主服务器在备用服务器发生故障时仍能处理写入请求。我注意到synchronous_commit =可以手动设置off为然后重新加载主服务器。

其他配置repmgr.conf包括repmgruse_replication_slots=yes

因此,通过请求主服务器在发生故障时为其保留 wal-log,创建的备用服务器repmgr会这样做。事情并不像预期的那样 - 我能够将写入操作提交给主服务器,并且备用服务器能够从主服务器克隆该操作,但有一个错误 - 写入命令总是卡在这里:

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 冻结)这意味着这种复制设置的临时更改无法达到我的目标,即在备用服务器遇到问题时防止主服务器“罢工”!

有没有什么办法可以解决这个冻结问题?谢谢。

相关内容