【问题标题】:A non-voting members of a MongoDB replica set can become a primary?MongoDB 副本集的非投票成员可以成为主要成员吗?
【发布时间】:2016-11-14 18:18:55
【问题描述】:

我正在尝试通过连接到主节点的 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 的文档配置文件

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()。此设置允许集合选择这些成员作为 初选,但不允许他们在选举中投票。

...

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

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

非常感谢

【问题讨论】:

  • 欢迎来到 SO。您的问题可能更适合dba.stackexchange.com,但请务必访问他们的Help Center 页面,以便了解该网站的内容
  • 您能否发布您的配置文件或更改成员 4 和 5 的配置部分

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多