Mongo集群主从无法自动切换
Mongo集群主从无法自动切换
mongo版本2.0.3 系统版本 UbuntuLTS10.04
现象:集群主从状态无法自动切换
原因分析:PRIMARY> db.isMaster()
{
“setName” : “nfs”,
“ismaster” : true,
“secondary” : false,
“hosts” : [
“192.168.15.20:27017”
],
“passives” : [
“192.168.15.22:27017”,
“192.168.15.21:27017”
],
“arbiters” : [
“192.168.15.19:27017”
],
“primary” : “192.168.15.20:27017”,
“me” : “192.168.15.20:27017”,
“maxBsonObjectSize” : 16777216,
“ok” : 1
}
其中hosts代表集群主机,passives代表分布式主机,只参与投票不会作为主节点。arbiters投票机
使用PRIMARY> cfg=rs.conf()
{
“_id” : “nfs”,
“version” : 12,
“members” : [
{
“_id” : 0,
“host” : “192.168.15.20:27017”
},
{
“_id” : 3,
“host” : “192.168.15.22:27017”,
“priority” : 0
},
{
“_id” : 4,
“host” : “192.168.15.19:27017”,
“arbiterOnly” : true
},
{
“_id” : 1,
“host” : “192.168.15.21:27017”,
“priority” : 0
}
]
}
无法变为主节点其中之一就是另外两个节点变为分布式主机,分布式主机有一个特点就是主机带有priority一项,该项置为”0″默认添加主机hosts该项的值为”1″。若想恢复修改配置即可。
解决方法:
1.删除节点重新建立
首先rs.remove(“192.168.15.21:27017″)然后
在Primary上运行 rs.add({_id:1,host:”192.168.15.21:27017”,priority:1})
2.修改配置方法
cfg=rs.conf()
PRIMARY> cfg.members[1].priority = 1 ##*特别注意:members的数组是以0为起始并且顺序排列的,不是_id顺序。就是说我要修改_id:3实际命令是members[1],如果我想修改_id:1的主机反而members[3]
PRIMARY> rs.reconfig(cfg)
最后两部需要在primary主机上执行
检查方法:
rs.conf()
rs.status()
db.isMaster()