在MongoDb和2中使用副本集的三个节点都已关闭

时间:2012-08-26 11:06:28

标签: mongodb replication

在3节点replicaSet中,为什么当2下降时,第三个变为SECONDARY而不是PRIMARY?

我希望在数据中心内有2个mongod,在外面有一个mongod,所以如果数据中心失败,我想第三个外部mongod成为主要。

没有和仲裁者可能吗?

2 个答案:

答案 0 :(得分:7)

好的,找到回复:

http://tebros.com/2010/11/mongodb-arbiters-with-only-two-replicas/

  

发生什么事了?!事实证明,当mongod实例被隔离时,它不能投票给自己是主要的。当你想到它时,这是有道理的。如果网络链接断开并将您的两个副本分开,您将不希望它们都选择自己作为主要副本。所以在我的情况下,当rep1-1注意到它与副本集的其余部分隔离时,它使自己成为次要的并且停止接受写入。

答案 1 :(得分:3)

总是以(cluster_participants / 2)+ 1个节点结束(假设您有奇数个参与者),群集进入只读模式。候选noDe需要将大多数节点选为主节点。

例如,如果你有5个noDe集群,3个节点被吹走,其他节点将继续作为次要节点,因为它们都不能获得3票。

有关详细信息:http://docs.mongodb.org/manual/core/replication-internals/#replica-set-election-internals