6

我有一个两个成员的副本集(在一个分片集群内),没有仲裁器。我知道推荐的设计是拥有三台服务器(或奇数台),但现在我必须坚持这种设计。

问题是当主服务器关闭时,辅助服务器不会被选为临时主服务器(因为两台服务器的优先级都是 1 并且我没有仲裁器)。

有什么方法可以实现自动故障转移(从设备变为主设备-> 主设备重新联机-> 默认主设备恢复其先前的状态)?

谢谢!

4

2 回答 2

7

您必须在副本集中至少有 3 个成员,拥有 2 个成员比只有一个节点更糟糕(永远不要这样做!!)。您的问题比您想象的要严重,主要问题是,如果您的辅助服务器出现故障,您的主服务器将降级为辅助服务器,并且由于您没有更多的主服务器而有效地下降。我不知道您为什么必须坚持使用此配置,但这不是解决方案。

解决方案是创建一个arbiter节点,它只是副本集的一个轻量级成员,没有实际数据,如果其他成员之一出现故障,它只是在那里参与新主节点的选举。

于 2013-10-07T08:14:36.690 回答
0

Unfortunatly to get an elected primary a majority of the set must be online.

使用的选举过程类型有一个特定的词,但据我所知,MongoDB 的文档已被简化以删除这些信息,这根本没有帮助;事实上我相信它是http://en.wikipedia.org/wiki/Quorum

50% 的成员还不够。

于 2013-10-07T08:21:32.193 回答