硬件故障两台服务器无法启动,原本规划表中现存好的机器其实是主节点,但不知何时变成了副节点,现在登录服务器进行数据查询时,提示无法找到主节点报错。求大佬赐教,万分感谢。
minipig_2018 选择最佳答案
这个时候只能把备库强制激活为主库。
可以参考我的公众号文章《Mongodb只读副本集如何切换到读写模式(下)》https://mp.weixin.qq.com/s/QKU151eTCbVsBuNNagkkLw
其中步骤很简单:
xiaoxu:SECONDARY> config=rs.config(); xiaoxu:SECONDARY> config.members[1].priority=0 0 xiaoxu:SECONDARY> config.members[1].votes=0 0 xiaoxu:SECONDARY> config.members[2].votes=0 0 xiaoxu:SECONDARY> config.members[2].priority=0
xiaoxu:SECONDARY> rs.reconfig(config); { "ok" : 0, "errmsg" : "replSetReconfig should only be run on PRIMARY, but my state is SECONDARY; use the \"force\" argument to override", "code" : 10107, "codeName" : "NotMaster" } xiaoxu:SECONDARY> rs.reconfig(config,{force:true}); { "ok" : 1 } xiaoxu:SECONDARY> 等几秒钟secondary会变成primary xiaoxu:PRIMARY> rs.status();
xiaoxu 发表新评论
errmsg:Arbiter must vote(connot have 0votes),code:103
仲裁节点votes不能设置为0。
是的。已经在公众号留言里面更新处理方案。
老师您好,我根据文章执行到 rs.reconfig(config,{force:true});这个的时候出现ok是0,errmsg:Arbiter must vote(connot have 0votes),code:103