replSetReconfig
¶该replSetReconfig
管理命令修改现有的副本集的配置。您可以使用此命令添加和删除成员,以及更改在现有成员上设置的选项。您必须admin
在主副本集成员的数据库上运行此命令。
该命令具有以下语法:
该命令带有以下可选字段:
领域 | 描述 |
---|---|
force |
默认为 如果副本集中没有当前主副本,请使用此选项,或者将副本集还原到具有不同主机名的新服务器。 |
您也可以replSetReconfig
使用shell的
rs.reconfig()
方法运行。
要在实施访问控制的部署上运行命令,用户必须replSetConfigure
对集群资源具有
特权操作。数据库中clusterManager
可用的内置角色admin
为该命令提供了必需的特权。
replSetReconfig
获得特殊的互斥锁,以防止replSetReconfig
同时发生多个
操作。
警告
避免重新配置包含不同MongoDB版本成员的副本集,因为验证规则可能在MongoDB版本之间有所不同。
集的大多数成员必须可操作,以使更改正确传播。
replSetReconfig
在某些情况下可以触发当前的主电源降级。初级降级触发选择新的
初级的选举:
假设为default,则集群选择新的主节点之前的中值时间通常不应超过12秒。这包括将主要节点标记为不可用并致电并完成选举所需的时间。您可以通过修改复制配置选项来调整此时间段
。网络延迟之类的因素可能会延长完成副本集选举所需的时间,进而影响您的群集在没有主数据库的情况下可以运行的时间。这些因素取决于您的特定群集体系结构。replica
configuration settings
settings.electionTimeoutMillis
在选择过程中,群集在选择新的主数据库之前不能接受写操作。
您的应用程序连接逻辑应包括对自动故障转移和后续选举的容忍度。从MongoDB 3.6开始,MongoDB驱动程序可以检测到主数据库的丢失,并可以一次自动 重试某些写入操作,从而提供了自动故障转移和选择的其他内置处理:
retryWrites=true
在连接字符串中包含来显式启用可重试的写入。为了进一步减少对生产集群的潜在影响,请仅在计划的维护期间重新配置。
{ force: true }
¶警告
强制执行该replSetReconfig
命令可能会导致
回滚情况。请谨慎使用。
使用replSetReconfig
删除副本集成员不会自动断开从其他副本集成员到删除成员的打开的传出连接。
默认情况下,副本集成员等待5分钟,然后再断开与已删除成员的连接。在分片副本集中,您可以使用ShardingTaskExecutorPoolHostTimeoutMS
server参数修改此超时
。
4.2版中的新增功能:若要立即将所有传出连接从副本集中删除到删除的成员,请dropConnections
对副本集上每个剩余的成员运行管理命令:
替换为<hostname>
并<port>
用卸下的成员的替换。