代码改变世界

【MongoDB】复制集添加新成员

2023-03-01 13:42  abce  阅读(87)  评论(0编辑  收藏  举报

前提条件:

1.一个活跃状态的复制集
2.要增加的新节点

 

1.启动要添加的mongodb实例
  启动过程要指定好复制集名称。


2.确认已有复制集的状态,登录到主节点


3.添加新的成员

rs.add( { host: "mongodb4.example.com:27017", priority: 0, votes: 0 } )

添加新的成员的时候,如果将votes、priority设置为非0,在初始化同步的时候,新加节点也是投票成员,虽然它还不支持读或变成主节点,因为数据还不一致。
这样,可能会导致满足大多数的投票节点在线,但是不能选出新的主节点。为了避免这种情况发生,可以将votes、priority设置为0。
在新加节点数据追上后(状态变成SECONDARY),再使用rs.reconfig()修改其优先级和投票权。

 

4.查看新成员状态

rs.status()


5.重置priority和votes属性

var cfg = rs.conf();
cfg.members[4].priority = 1
cfg.members[4].votes = 1
rs.reconfig(cfg)