mongodb副本集配置问题

时间:2018-09-26 14:12:49

标签: mongodb

尝试以下操作时遇到一些问题:

具有一个三节点的MongoDB 4.0集群,没有分片,一个mongodb实例作为主要实例,其余为次要实例。当我关闭主数据库时,其中一个辅助数据库成为主数据库,而当我关闭新的主数据库(以前的辅助数据库)时,另一个仍保持原状态,其余的子数据库则不成为主数据库,因此群集保持不工作状态

我一直按照文档指示执行步骤,因此应该进行一些忘记的配置。我什至更改了创建顺序,总是得到相同的结果

我在做什么错了?

谢谢。

2 个答案:

答案 0 :(得分:1)

MongoDB无法自动故障转移到单个成员,这是由于elections的工作方式。

如果从逻辑上考虑这一问题,如果主节点和辅助节点之间都存在网络分区,那么他们中的任何一个都将如何知道一个或另一个是否已关闭……因此他们都下台成为次要节点,直到一个或另一个被断开为止。另一个可以看到大部分节点。

https://docs.mongodb.com/manual/core/replica-set-elections/#network-partition

  

网络分区可以将主节点隔离到具有少数节点的分区中。当主节点检测到只能看到副本集中的少数节点时,该主节点将降为主节点并成为辅助节点。独立地,可以与大多数节点(包括自身)进行通信的分区中的成员进行选举以成为新的主节点。

答案 1 :(得分:0)

选举过程需要“多数”来选举PRIMARY,例如当您的节点数从3个减少到2个时,将没有大多数节点可以选举新的PRIMARY,因此第3个节点将保持在SECONDARY状态,直到您至少启动其他一个成员为止。