1

我正在尝试通过连接到主节点的 mongo shell 将副本集成员的投票数设置为 0,但是当我调用时出现错误:

rstest:PRIMARY> rs.reconfig(conf)
{
  "ok" : 0,
  "errmsg" : "priority must be 0 when non-voting (votes:0)",
  "code" : 103
}

我要做的是:

rstest:PRIMARY> conf = rs.conf()
   ...     //the conf document
rstest:PRIMARY> conf.members[0].votes = 0 
rstest:PRIMARY> rs.reconfig(conf)

其中conf.members[0]SECONDARY的文档 conf

在这个链接MongoDB 的文档说:

...

cfg = rs.conf()
cfg.members[3].votes = 0
cfg.members[4].votes = 0
cfg.members[5].votes = 0
rs.reconfig(cfg)

该序列根据 rs.conf() 输出中成员数组的顺序,对集合的第四、第五和第六个成员给予 0 票。此设置允许集合将这些成员选举为主要成员,但不允许他们在选举中投票。

...

但是返回的错误消息说我必须为non-voting设置 priority=0 ,但这意味着该成员不能是主要成员。

我不明白什么或我做错了什么?

非常感谢

4

1 回答 1

0

您的问题是当前的 MongoDB 版本不允许对节点进行 0 投票,优先级 > 0。使用“旧”MongoDB 版本,您可以做到这一点。如果我没记错的话,2.6 是您可以做到的最后一个版本......

于 2016-11-16T11:49:43.780 回答