【问题标题】:Add Member to MongoDB Replica Set, from the member's side从成员方将成员添加到 MongoDB 副本集
【发布时间】:2018-02-27 05:24:30
【问题描述】:

假设我有一个副本集(主人和一群奴隶)!我想自动化一个新的 mongodb 节点可以 selfRegistered 到 ReplicaSet 的事实,而无需知道谁是主节点,也无需连接到它。

是否可以在不执行 rs.add() shell 命令(从主节点一侧)的情况下将新成员添加到 MongoDB 副本集?

成员是否可以使用一些特殊参数将自己注册到副本集?也许是某种身份验证!

【问题讨论】:

    标签: mongodb replication master-slave replicaset


    【解决方案1】:

    是否可以在不执行 rs.add() shell 命令(从主节点端)的情况下将新成员添加到 MongoDB 副本集?

    有可能,您可以使用secondary member 中的force 选项执行rs.reconfig()。虽然请注意,将rs.reconfig() 与{ force: true } 一起使用会导致rollback 的已提交写入。还要考虑一种情况,由于网络分区,您连接到的成员无法看到大多数副本集成员。

    更安全的方法是连接到任何副本集成员,通过rs.status() 确定主成员,并通过副本集的主成员执行rs.add()。

    另见database command isMaster()

    成员是否可以使用一些特殊参数将自己注册到副本集?

    从 MongoDB v3.4.x 开始,这目前是不可能的。由于各种原因,确保只有主要成员可以更改 Replica Set Configuration 以实现成员之间的一致性,这一点很重要。

    【讨论】:

      猜你喜欢
      • 2017-01-03
      • 1970-01-01
      • 2021-11-16
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多