配置非投票副本集节点
无投票权的节点允许您添加,最多有七名投票成员之外进行阅读分发。
要将节点配置为无投票权,请使用 replSetReconfig命令或mongoshrs.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_idmembers4) 使用新配置重新配置副本集
使用
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/
译者:陆文龙