MongoDB脑裂恢复

MongoDB脑裂恢复

  • 故障现象
  • 故障处理

故障现象

此环境为3台MongoDB搭建副本集,其中两台mongodb由于外部原因导致服务异常,目前副本集只存活一台,且为从库。

故障处理

将已经宕机或暂时无法恢复的mongodb节点,优先级和投票权都设置为0,然后执行下面命令强制重新更新集群配置。
或者执行rs.conf 输出集群配置内容,拷贝到本地文档,从members中去掉已经宕机的节点,保留正常的节点,把内容拷贝赋值给cfg=变量,再重新执行下面命令强制重新配置。

cfg=rs.conf()
cfg.members[0].priority=0
cfg.members[0].votes=0
cfg.members[1].priority=0
cfg.members[1].votes=0

序号请根据现场环境修改;

执行下面命令强制重新配置:


rs.reconfig(cfg,{force:true})

退出数据库然后重新连接,接着会发现这台变成了主库,
接着就可以直接add添加了

rs.add("hostname:27017")

副本集搭建完成后再根据环境修改每台mongodb的优先级和投票权。

你可能感兴趣的:(数据库,运维,MongoDB,mongodb,数据库)