“文档” 菜单
文档首页
/
MongoDB Manual
/ /

对副本集成员进行维护

在此页面上

  • 概述
  • 步骤

副本集支持 MongoDB 部署在维护窗口的大部分时间保持可用。

本文档概述对副本集各成员执行维护的基本过程。此外,此特定序列还能最大限度地减少主节点不可用的时间,并控制对整个部署的影响。

使用这些步骤作为常见副本集操作的基础,尤其是升级到最新版本的 MongoDB 等过程。

对于副本集的各成员,从从节点开始,执行以下事件序列,到主节点结束:

1

mongosh中,关闭mongod实例:

db.shutdownServer()
2

在操作系统 Shell 提示符下,将 mongod 作为独立实例重启。

警告

在绑定到非本地主机(例如可公开访问)IP 地址之前,请确保您已保护集群免受未经授权的访问。有关安全建议的完整列表,请参阅安全检查清单。至少应考虑启用身份验证强化网络基础设施。

即使将副本集成员作为独立实例重新启动,也应始终使用同一个用户启动 mongod

3

当节点为独立节点时,使用mongosh执行维护:

mongo --port 27218

重要

虽然该节点是独立的,但不会将任何写入复制到此节点,也不会将此节点上的写入复制到副本集的其他成员。

确保该独立节点上的任何写入都不会与成员重新加入副本集时应用于该成员的 oplog 写入发生冲突。

4

执行所有维护任务后,请使用以下过程,在常用端口上将 mongod 作为副本集成员重启。

mongosh中,完成维护后关闭独立服务器:

use admin
db.shutdownServer()

以副本集成员身份重启 mongod 实例,并保留其原始配置,即撤销以独立成员启动时对配置所做的变更。

提示

请务必删除 disableLogicalSessionCacheRefresh 参数。

对于分片或配置服务器节点,请务必删除 skipShardingConfigurationChecks 参数。

启动后,将mongosh连接到重新启动的实例。

从节点需要时间才能赶上主节点。从mongosh开始,使用以下命令验证该成员是否已从RECOVERING状态赶上SECONDARY状态。

rs.status()
5
  1. 要在完成所有从节点的维护任务后对主节点进行维护,请将 mongosh 连接主节点,并使用 rs.stepDown() 降级主节点,让其中一个从节点选举成为新的主节点。指定 300 秒等待时间,防止该成员在五分钟内再次被选举为主节点:

    rs.stepDown(300)

    在主节点降级后,副本集将选举新的主节点

  2. mongod 作为独立实例重启,更新以下配置。

  1. 在新的独立实例上执行维护任务。

    重要

    虽然该节点是独立的,但不会将任何写入复制到此节点,也不会将此节点上的写入复制到副本集的其他成员。

    确保该独立节点上的任何写入都不会与成员重新加入副本集时应用于该成员的 oplog 写入发生冲突。

  2. 在执行所有维护任务后,以副本集成员身份重启 mongod 实例,并保留其原始配置,即撤销以独立成员启动时对配置所做的变更。

    提示

    请务必删除 disableLogicalSessionCacheRefresh 参数。

    对于分片或配置服务器节点,请务必删除 skipShardingConfigurationChecks 参数。

← 更改 oplog 的大小

在此页面上