配置非投票副本集节点
无投票权的节点允许您添加,最多有七名投票成员之外进行阅读分发。
要将节点配置为无投票权,请使用 replSetReconfig
命令或mongosh
rs.reconfig()
将其 members[n].votes
和members[n].priority
值设置为0。非投票副本集节点priority
必须 为0
NOTE
从 MongoDB 4.4 开始,副本重新配置一次只能添加或删除一个投票副本集节点。要修改多个节点的投票,发出一系列
replSetReconfig
或rs.reconfig()
操作以一次修改一个节点。有关详细信息,请参阅 重新配置一次最多只能添加或删除一个投票节点。
程序
以下过程将单个从节点 副本集节点配置为非投票。要将主节点转换为无投票权节点,您必须首先使用replSetStepDown
或其shell帮助程序成功降低主节点,rs.stepDown()
然后再执行此过程。
1)连接到副本集主节点
连接
mongosh
到副本集primary :mongosh --host "<hostname>:<port>"
将<hostname>
和替换<port>
为副本集主副本的主机名和端口。包括部署所需的任何其他参数。2) 检索副本配置
在 shell 中发出
rs.conf()
方法并将结果分配给变量cfg
:cfg = rs.conf();
返回的文档包含一个members
数组,其中数组中的每个元素都包含单个副本集节点的配置。3) 将节点配置为无投票权
要将副本节点更改为无投票权,请将其
votes
和priority
设置为0
。cfg.members[n].votes = 0;cfg.members[n].priority = 0;
替换n
为要修改的成员的数组索引位置。该members
数组是零索引的,其中数组中的第一个元素的索引位置为0
。数组中节点的数组索引位置 不同于特定节点的members
数组索引位置。不要使用来引用 中任何成员的数组索引 位置。members[n]._id
_id
members
4) 使用新配置重新配置副本集
使用
rs.reconfig()
方法使用更新的副本集配置文档重新配置副本集。rs.reconfig(cfg);
WARNING
- shell 方法可以强制当前
rs.reconfig()
primary 下台,从而导致选举。当主要步骤关闭时,mongod
关闭所有客户端连接。虽然这通常需要 10-20 秒,但请尝试在计划的维护期间进行这些更改。- 避免重新配置包含不同 MongoDB 版本成员的副本集,因为验证规则可能因 MongoDB 版本而异。
相关文件
← Configure a Delayed Replica Set MemberConvert a Secondary to an Arbiter →
原文链接 - https://docs.mongodb.com/manual/tutorial/configure-a-non-voting-replica-set-member/
译者:陆文龙