MongoDB副本集的无投票成员可以成为主要成员吗?

时间:2016-11-14 18:18:55

标签: mongodb replication mongodb-replica-set database nosql

我试图通过连接到主服务器的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 的doc conf

在此link,MongoDB的文档说:

  

...

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

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

     

...

但是返回的错误消息说我必须为非投票设置优先级= 0,但这表明该成员不能是主要成员。

我不明白或我在哪里做错了?

非常感谢

1 个答案:

答案 0 :(得分:0)

您的问题是当前的MongoDB版本不允许节点上的0票优先级> 0.使用“旧”MongoDB版本,你可以做到这一点..如果我记得正确的话,2.6就是你可以做到的最后一个版本......