mongo-关于仲裁节点

mongo的仲裁节点用于主从节点之间的自动切换。 mongo的仲裁节点宕机后:

1. 无法再对主从副本集进行自动切换,但不影响primary节点的使用。

2. 若此时secondry节点宕机,则不影响primary节点的使用。 

3. 若此时primary节点宕机, mongo无法自动将secondry节点切换为primary节点,此时该副本集不可用。

#主节点2222宕机,从节点3333日志如下: 

Wed Oct 31 16:13:56 [ReplSetHealthPollTask] replSet info 127.0.0.1:2222 is down (or slow to respond): socket exception

Wed Oct 31 16:13:56 [rs Manager] replSet can't see a majority, will not try to elect self 

#主节点2222宕机,此时从节点3333无法自动切换

 

C:\>mongo 127.0.0.1:3333/test
MongoDB shell version: 1.8.3
connecting to: 127.0.0.1:3333/test
neu:SECONDARY> db.yctshard.find()
error: { "$err" : "not master and slaveok=false", "code" : 13435 }

#但可以手工启用3333从节点

neu:SECONDARY> db.getMongo().setSlaveOk() #也可以使用rs.slaveOk()
not master and slaveok=false
neu:SECONDARY> db.yctshard.find()
{ "_id" : ObjectId("5090bed6605f7a295d61f4ef"), "name" : "yct1", "age" : 31 }
{ "_id" : ObjectId("5090bed6605f7a295d61f4f0"), "name" : "yct2", "age" : 32 }

{ "_id" : ObjectId("5090bed6605f7a295d61f4f1"), "name" : "yct3", "age" : 33 } 

... 

{ "_id" : ObjectId("5090bed6605f7a295d61f502"), "name" : "yct20", "age" : 50 }
has more

neu:SECONDARY> 

 

posted @ 2012-10-31 16:20  醇酒醉影  阅读(3387)  评论(0编辑  收藏  举报