0

我在三个不同的 Amazon 服务器实例上有一个三节点副本集(1 个主节点、1 个辅助节点、1 个仲裁器)。托管它们的服务器需要内存升级,因此我还需要关闭 MongoDB 实例。

我按以下顺序关闭了 MongoDB 实例:

  1. 中学
  2. 仲裁者
  3. 基本的

我使用下面的过程来关闭每台服务器

use admin
db.shutdownServer() 

所有 MongoDB 实例都正确关闭,没有任何问题。到目前为止一切都很好。

亚马逊服务器升级后,我按以下顺序启动 MongoDB 实例:

  1. 仲裁者
  2. 中学
  3. 基本的

仲裁器处于仲裁器模式,辅助处于辅助模式,但令我惊讶的是,主机进入了“恢复”模式。

我不知道原因,为什么主机去“RECOVERING”。

我检查了日志。它显示没有要同步的成员...类似的东西

我的基本疑问是“PRIMARY 必须在 PRIMARY 中,直到副本集中发生重新配置”。

在服务器关闭期间我错过了一个步骤吗?或者我在重新启动服务器期间错过了一个步骤?

请对此有所了解,以便我如何克服这个问题。我需要经常关闭 MongoDB 服务器,因为亚马逊服务器正在进行大量升级。

4

1 回答 1

0

在您启动副本集后,您的“SECONDARY”变成了“PRIMARY”,并且您的“PRIMARY”可能在不久之后处于辅助状态。要在您的“PRIMARY”中保持主要状态,您必须给予它比您的“SECONDARY”更高的优先级。

检查 rs.conf() 命令。

在这里检查如何强制节点成为主要节点

于 2016-12-29T12:08:18.737 回答