PostgreSql 9.1具有主从同步复制。假设主设备是机器 A,从机是机器 B。
如果主站失败了,PostgreSQL怎么知道什么时候让从站成为主站?如果从站错误地认为主站因主站上的临时网络故障而关闭,客户端程序仍然可以联系主站怎么办?
此外,我的客户端程序如何知道新主站中的从站,更重要的是准备好接受写入。从站是否向客户端发送消息?
检查 repmgr,它的工作之一就是处理这个问题。
通常,您希望使用促销管理系统,如repmgr或patroni。 然后,您希望使用某种高可用性代理(可以是pgbouncer或haproxy)来处理实际的抽象,这样您的应用程序就不需要知道哪个系统是主系统。
在回答您的问题时,这些系统中的大多数都使用心跳来确定是否存在问题。 守护神在蚀刻的心跳上出去了。 Repmgr 有自己的心跳检查。 使用 Repmgr,您需要编写钩子脚本来处理 stonith,等等。