我有 2 台物理服务器,每台包含 2 个虚拟机;运行 Postgres (9.2) 的虚拟机,以及运行某些 Python 软件的虚拟机(将连接到 Postgres 服务器)。在故障转移工具的类型等方面,我不受任何限制。鉴于我只有 2 台物理服务器,是否有办法避免出现脑裂问题?
我目前的理解是,当我的主 Postgres 服务器(或它所在的机器)死机时,从数据库将恢复主服务器的角色。如果 master 服务器再次打开,它会认为它仍然是 master...这个问题是由现代 Postgres 版本处理的,还是仍然是一个严重的问题,如果是这样,为什么没有更多的人谈论它?似乎很难找到有关它的任何信息。
解耦您的物理/虚拟服务器问题,更多地关注理解 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 )