对副本集成员执行维护

概述

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

本文档概述了对副本集的每个节点执行维护的基本过程。此外,这个特定的序列力求最大限度地减少 主节点服务器不可用的时间,并控制对整个部署的影响。

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

程序

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

  • mongod作为独立实例重新启动实例。
  • 在独立实例上执行任务。
  • mongod作为副本集的成员重新启动实例。

关闭从节点。

mongosh, 关闭mongod实例:

db.shutdownServer()

在不同的端口上以独立方式重新启动从节点。

在操作系统 shell 提示符mongod 下作为独立实例重新启动。

配置文件命令行选项

如果您使用的是配置文件,请进行以下配置更新:

例如,如果对 shard/config server 副本集成员进行维护以进行维护,则更新后的配置文件将包含如下示例的内容:

net:
   bindIp: localhost,<hostname(s)|ip address(es)>
   port: 27218
#   port: 27018
#replication:
#   replSetName: shardA
#sharding:
#   clusterRole: shardsvr
setParameter:
   skipShardingConfigurationChecks: true
   disableLogicalSessionCacheRefresh: true

WARNING

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

始终从mongod同一用户开始,即使在将副本集成员作为独立实例重新启动时也是如此。

对从节点执行维护操作。

当节点是单个节点时,使用mongosh执行维护:

mongo --port 27218

IMPORTANT

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

确保这个独立的任何写入都不会与重新加入副本集时将应用于该节点的oplog写入冲突。

mongod作为副本集的节点重新启动。

执行所有维护任务后,使用以下过程mongod在其常用端口上作为副本集的成节点重新启动。

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

use admin
db.shutdownServer()

mongod使用其原始配置将实例重新启动为副本集节点;也就是说,撤消作为独立启动时所做的配置更改。

TIP

请务必删除该disableLogicalSessionCacheRefresh 参数。

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

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

secondary 需要时间来赶上 primary。从mongosh,使用以下命令验证节点是否从 RECOVERING状态到SECONDARY状态赶上了。

rs.status()

对主主节点进行维护。

  1. 要在完成所有从节点的维护任务后对节点执行维护,请连接 mongosh到主节点并用于 rs.stepDown()降低主要并允许其中一个从节点被选为新的主节点。指定 300 秒的等待时间以防止节点在五分钟内再次被选为主节点:

    rs.stepDown(300)
    

在主节点下台后,副本集将选举一个新的主节点

  1. mongod作为独立实例重新启动,进行以下配置更新。

配置文件命令行选项

如果您使用的是配置文件,请进行以下配置更新:

例如,如果对 shard/config server 副本集成员进行维护以进行维护,则更新后的配置文件将包含如下示例的内容:

net:
   bindIp: localhost,<hostname(s)|ip address(es)>
   port: 27218
#   port: 27018
#replication:
#   replSetName: shardA
#sharding:
#   clusterRole: shardsvr
setParameter:
   skipShardingConfigurationChecks: true
   disableLogicalSessionCacheRefresh: true

WARNING

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

  1. 在现在独立的设备上执行维护任务。

    IMPORTANT

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

    确保这个独立的任何写入都不会与重新加入副本集时将应用于该节点的 oplog 写入冲突。

  1. 执行完所有维护任务后, mongod以其原始配置作为副本集节点重启实例;也就是说,撤消作为独立启动时所做的配置更改。

TIP

请务必删除该disableLogicalSessionCacheRefresh 参数。

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

改变 Oplog 的大小强制成员成为主要成员

原文链接 - https://docs.mongodb.com/manual/tutorial/perform-maintence-on-replica-set-members/

译者:陆文龙

Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-09-01 17:10:26

results matching ""

    No results matching ""