我有 2 台物理服务器,每台服务器包含 2 个虚拟机;一个运行 Postgres (9.2) 的虚拟机,另一个运行一些 Python 软件的虚拟机(将连接到 Postgres 服务器)。在故障转移工具类型等方面,我没有受到任何限制。鉴于我只有 2 台物理服务器,有没有办法避免出现裂脑问题?
我目前的理解是,当我的主 Postgres 服务器(或它所在的机器)死机时,从属数据库将恢复主服务器的角色。如果主服务器再次打开,它会认为它仍然是主服务器... 现代 Postgres 版本是否解决了这个问题,或者它仍然是一个严重的问题,如果是,为什么没有更多人谈论它?似乎很少找到有关它的任何信息。
答案1
分离您的物理/虚拟服务器问题并更多地关注理解 Postgres 中的故障转移。
我相信您已经阅读过以下内容,如果没有,请从高层次了解故障转移机制:http://www.postgresql.org/docs/9.0/static/warm-standby-failover.html
然后研究如何实现“向对方头部射击”和心跳,即使这仅仅意味着共享一个存储后端(参见:https://dba.stackexchange.com/tags/drbd/info,http://wiki.postgresql.org/wiki/Shared_Storage)