MongoDB副本集:为什么最后剩下的服务器成为次要的?

我正在尝试使用MongoDB副本集来testing高可用性scheme。 我已经设置了3台服务器副本集。 当我停止主服务器时,其余2台服务器中的一台成为主服务器。 之后,当我停止新的主服务器时,最后剩下的服务器显示它的状态为次要状态。

最后的服务器不应该自动成为主要的? 或者我需要configuration一些设置发生?

每个MongoDB副本集最多只有一个主数据库,这个主数据库是按照仲裁方式选出的。 绝大多数副本集成员必须投票选举主要(即n / 2 + 1票,其中n是configuration副本集成员的数量)。

如果你有一个三人副本中的幸存成员,那么该成员不能被选为(或保持)主要,因为只有一个投票可用。

大多数选票的要求是避免在诸如networking分区的情况下有多个初选。 例如,如果所有3个副本集成员都在技术上“上”但由于networking问题而不能彼此通信,则只有具有大多数副本集成员的分区才能够维持主副本。

有关更多信息,请参阅MongoDB手册中的副本集选举 。