我有两个服务器,每个服务器都有一个mongo实例。
在第一台服务器上,我将mongo实例设置为主要,而第二个mongo设置为辅助实例。
我还没有机会让另一台服务器成为仲裁者。
我如何只用两台服务器来使用mongodb?
如果主要失败,则辅助变为自动主要?
谢谢!
答案 0 :(得分:1)
我如何只用两台服务器来使用mongodb?
如果你真的想走这条路,我可能会添加一条非常糟糕的道路然后你可以设置你的主要没有投票,在这种情况下,唯一的投票成员将是故障转移事件中的次要成员然而,这会导致另一个问题。如果发生辅助故障转移,则无法选择主要(任何成员的故障转移都会触发选举)。
因此,即使有2名成员,您也可以考虑一次故障转移,但您无法平等地解释这两种情况。
答案 1 :(得分:1)
在副本集中拥有偶数会员并不是一个好习惯,因为这会导致选举问题。为了被选举,节点需要获得多数票。如果你有两个成员,你需要获得两票,如果至少有一个节点失效,这是不可能的。有几种选择:
将轻量级仲裁节点添加到第一个或第二个服务器到replicaSet,因此副本集中有三个成员。在网络分区的情况下,它不会阻止您恢复,但它比仅设置两个节点副本要好一些。
在主从模式下使用副本设置,即没有自动恢复,您可以通过设置投票来实现它:2为主要模式。如果主服务器已关闭,则需要重新配置副本集并设置选票:2表示辅助服务器,然后辅助服务器将被选为主服务器。所以你可以选择手动恢复。