我想设置一个HA postgres数据库。 我在不同的物理服务器上使用同步stream复制来设置主从数据库。 当复制出现错误时,从属数据库会触发一个脚本,将从站数据库切换到主数据库。
两台服务器都configuration了一个额外的虚拟IP地址,在正常的操作中,这个接口在从数据库服务器上closures。 如果发生故障,脚本将closures主数据库服务器上的该接口,并在从数据库服务器上启动相应的接口。 然后脚本执行一些arp命令让局域网知道IP地址映射已经改变了。 当数据库客户端重新连接,他们连接到从属服务器上运行知道作为主人在相同的IP。
这个工作做得很好,但有些情况下会遇到麻烦。
如果我拔出主机的networking插头,故障切换机制将会触发。 从站数据库成为同一IP上的主数据库。 但是,由于networkingclosures,脚本无法closures(旧)主设备上虚拟IP的接口。 如果我再把networking插回去,虚拟IP上会有一个IP地址冲突。
还有什么概念来处理这种情况?
我觉得心跳是你正在寻找的东西。 我发现一个简单的IP故障转移与HeartBeat应该给你一种解决问题的方法。
我相信这种设置被称为使用浮动VIP(如在虚拟IP)
HTH