文档菜单
文档首页
/
MongoDB 手册
/ / /

配置非投票自管理副本集成员

本页内容

  • 过程
  • 相关文档

非投票成员允许您添加额外的成员进行读取分发,数量超过最大七位投票成员。

要将成员配置为非投票成员,请使用replSetReconfig 命令 mongosh 辅助方法 rs.reconfig(),将 members[n].votesmembers[n].priority 的值设置为 0。非投票副本集成员 必须 有一个 优先级0

注意

副本集重新配置每次只能添加或删除 最多一位 投票副本集成员。要修改多个成员的投票数,请依次发出一系列 replSetReconfigrs.reconfig() 操作来修改每个成员。有关更多信息,请参阅每次最多只能添加或删除一位投票成员

以下步骤将单个 次要 副本集成员配置为非投票成员。要将 主要 成员配置为非投票成员,您必须首先使用 replSetStepDown 或其壳辅助 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 替换为要修改的成员的数组索引位置。数组的索引位置是 零索引,其中数组的第一个元素的索引位置为 0

数组中成员的索引位置与 members 数组中的 members[n]._id 是不同的。请勿使用 _id 来引用任何成员的数组索引位置。

4) 使用新的配置重新配置副本集

使用 rs.reconfig() 方法使用更新的副本集配置文档重新配置副本集。

rs.reconfig(cfg);

警告

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

  • 避免重新配置包含不同 MongoDB 版本成员的副本集,因为验证规则可能在不同的 MongoDB 版本之间有所不同。

返回

延迟成员

本页内容