我有Postgresql 14,我为3个节点进行了流复制(remote_apply)。
当两个备用节点关闭时,如果我尝试执行一个insert命令,这将显示如下:
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.
INSERT 0 1我不想把它放在本地。我想拒绝事务并显示一个错误。
有可能这样做吗?
发布于 2022-07-12 15:23:02
不,用同步复制是无法做到这一点的。
发布于 2022-07-12 15:25:22
我认为你没有考虑过你想要的东西的含义。如果它没有首先在本地提交,那么如果主服务器在将事务发送到副本后崩溃,但在返回到那里应用的消息之前,会发生什么情况?如果它在副本上被提交,但在主服务器上被拒绝,那么它们将如何恢复同步?
发布于 2022-07-13 10:09:40
我创建了一个脚本,它检查备用节点的数量,然后在备用节点关闭时使主节点只读。
https://stackoverflow.com/questions/72953936
复制相似问题