OPTIONS
翻译或纠错本页面

对复制集节点进行维护

概述

Replica sets 的存在,使得MongoDB在维护计划的时候也可以保持可用。

本文是对复制集中各个成员的维护过程进的概述。此外,可以通过节点维护的顺序来减少 primary 主节点不可用的时间和控制受影响的时间。

Use these steps as the basis for common replica set operations, particularly for procedures such as upgrading to the latest version of MongoDB and changing the size of the oplog.

流程

如果要维护复制集中每个节点,我们应该先从从节点开始,然后依次维护完所有从节点,最后在对主节点进行维护:

  • Restart the mongod instance as a standalone.
  • 在单节点实例上执行任务。

  • 重新将 mongod 实例以复制集成员启动。

1

关闭一个从节点。

mongo 窗口中关闭 mongo 实例:

db.shutdownServer()
2

在其他端口上讲该从节点以单节点模式启动。

在操作系统中将 mongo 实例以单节点模式启动在别的端口上(不使用 --replSet 参数):

mongod --port 37017 --dbpath /srv/mongodb
3

在从节点上进行维护操作。

以单节点启动后,进入 mongo 窗口中进行维护:

mongo --port 37017
4

mongod 以复制集节点重新启动。

在进行完维护操作后,通过如下操作将 mongod 实例在原来的端口上以复制集成员重启。

在完成维护后,进入 mongo 窗口中用如下命令关闭单节点实例:

db.shutdownServer()

mongod 实例以复制集节点启动。

下面的时间需要 catch up to the primary 。在 mongo 窗口中,使用如下命令来查看节点是否从 RECOVERING`状态变成了 :replstate:`SECONDARY

rs.status()
5

最后在主节点上进行维护。

在所有其他从节点上维护完毕后,来对主节点进行维护。通过 rs.stepDown() 命令来使得主节点降级,让其他从节点选举为新的主节点。且指定300秒使得该节点在300秒内不会再次成为主节点:

rs.stepDown(300)

当主节点降级后,复制集会重新选举出一个主节点。具体请参见 复制集选举