配置非投票副本集成员

在本页面

非投票成员允许您添加最多七个投票成员之外的其他成员以进行阅读分发。

Important

在 3.2 版中进行了更改:-非投票成员的priority必须为 0.

要将成员配置为不投票,请将其votespriority值都设置为0

Example

以下示例将第四,第五和第六副本集成员配置为非投票成员。

  • 在连接到主要数据库的mongo shell 中,运行rs.conf()方法并将结果分配给变量:
cfg = rs.conf();

返回的文档包含一个members字段,该字段包含成员配置文档的零索引数组,副本集的每个成员一个文档。

cfg.members[3].votes = 0;
cfg.members[3].priority = 0;
cfg.members[4].votes = 0
cfg.members[4].priority = 0;
cfg.members[5].votes = 0
cfg.members[5].priority = 0;
  • 使用rs.reconfig()方法使用更新的副本集配置文档重新配置副本集。
rs.reconfig(cfg);

放置有投票权的成员,以使您希望充当主要对象的mongod实例在网络分区的情况下能获得多数表决权。

使用members[n].priority控制哪些成员更有可能成为主要成员。

更新副本配置对象时,请使用 array index 访问members数组中的副本集成员。数组索引以0开头。不要将此索引值与members数组中每个文档中members[n]._id字段的值混淆。

Warning

  • rs.reconfig() shell 方法可以强制当前主节点降级,从而导致election。当主服务器降级时,mongod关闭所有 Client 端连接。尽管这通常需要 10 到 20 秒,但请尝试在计划的维护期间进行这些更改。

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