Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

配置无投票权的自管理副本集成员

在此页面上

  • 步骤
  • 相关文档

无投票权成员允许您在最多七个投票成员之外添加其他成员以进行读取分布。

要将节点配置为无投票权,请使用 replSetReconfig命令或其 mongosh辅助方法rs.reconfig()设立其members[n].votesmembers[n].priority值设置为0 。 无投票权的副本集节点的 必须 priority0

注意

副本重新配置一次只能添加或删除不超过一个投票副本集节点。要修改多个节点的投票,请发出一系列 replSetReconfigrs.reconfig() 操作,一次修改一个节点。要了解更多信息,请参阅重新配置一次最多可以添加或删除一个投票节点

以下过程将单个副本集从节点配置/转换为无投票权。要将主节点转换为无投票权,在执行该过程之前,必须先使用 replSetStepDown 或其 Shell 助手 rs.stepDown() 成功将主节点降级。

1) 连接到副本集主节点

mongosh 连接到副本集主节点

mongosh --host "<hostname>:<port>"

<hostname><port> 替换为副本集主节点的主机名和端口。包括部署所需的任何其他参数。

2) 检索副本配置

在 Shell 中发出 rs.conf() 方法,并将结果分配给 cfg 变量:

cfg = rs.conf();

返回的文件包含一个 members 数组,数组中的每个元素都包含单个副本集成员的配置。

3) 将节点配置为无投票权

要将副本节点更改为无投票权,请将其 votespriority 设置为 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);

警告

  • rs.reconfig() shell 方法可以强制当前的主节点下台,从而导致选举。当主服务器向下运行时,mongod 会关闭所有客户端连接。 虽然这通常需要 10-20 秒,但请尝试在计划维护期间进行这些更改。

  • 避免重新配置包含不同 MongoDB 版本节点的副本集,因为验证规则可能因 MongoDB 版本而异。

后退

延迟成员

在此页面上