我在三个不同的Amazon服务器实例上有一个三节点副本集(1个主节点,1个副节点,1个仲裁器)。托管它们的服务器需要内存升级,因此我也需要关闭MongoDB实例。
我按以下顺序关闭MongoDB实例:
我使用以下过程关闭每台服务器
use admin
db.shutdownServer()
所有MongoDB实例都正确关闭,没有任何问题。到目前为止一切都很好。
在亚马逊服务器升级之后,我按以下顺序启动了MongoDB实例:
仲裁器处于仲裁模式,辅助处于辅助模式,但令我惊讶的是主机已进入“恢复”模式。
我不知道原因,为什么主要机器去了“RECOVERING”。
我检查了日志。它没有显示任何成员同步...像那样的东西
我的基本疑问是“PRIMARY必须处于主要状态,直到在副本集中发生重新配置”。
我在服务器关机期间错过了一步吗?或者我在重启服务器时错过了一步?
请详细说明这一点,以便我如何克服这个问题。我需要经常关闭MongoDB服务器,因为亚马逊服务器上发生了很多升级。
答案 0 :(得分:0)
在你开始制作副本之后,你" SECONDARY"成为"主要"而你" PRIMARY"不久之后可能处于次要状态。要将主要状态保留在您的主要状态",您必须将其优先级高于您的" SECONDARY"有
使用rs.conf()命令检查。