MongoDb集群中当多台服务器down掉恢复

  当MongoDb集群中的多台服务器down掉后我们可以通过Mongodb提供的命令重新修复集群关系.当我们的集群中还存在一半以上的服务器结点我们可以方便的重新选择primary node.在Mongodb1.8版本以上我们可以用下面的命令来重新选择primary node.运行下面命令必须在primary node

   cfg = rs.conf() //得到副本集的配置对象

   cfg.members[0].priority = 2给当前第一个结点设置优先级以便让它能去竞选primary node

    rs.reconfig(cfg)//让配置生效

当我们的副本集中超过一半的结点服务器已经down掉,我们就不能使用上面的命令恢复副本集,必须使用下面的命令:

cfg = rs.conf() //得到副本集的配置对象

     //把down掉的结点从cfg.members中去掉,留下处于活动的结点

     config.members = [config.members[1], config.members[3], config.members[4]]

     rs.reconfig(config, {force : true})//让配置生效,因为现在没有呢primary node必须添加强 制更新(force:true)

如果刚才down掉的结点要重新加入该副本集那么需要使用下面的命令:

      cfg = rs.conf() //得到副本集的配置对象

     //把down掉的结点重新加入进来并且原来的结点也要加入进来(这里注意down的结点原来的—id是什么这里就填什么不然会出现很多意象不到的问题)

     config.members = [{_id:0,host:"172.27.1.216:2000"}, config.members[3], config.members[4]]

     rs.reconfig(config)//让配置生效,这里不需要加强制更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值