故障现象
此环境为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的优先级和投票权。