MongoDB基础(八)复制Ⅱ―部署仲裁节点(二)

2015-07-24 07:45:21 · 作者: · 浏览: 1
logpath=/var/log/mongodb/mongod.log bind_ip=192.168.1.13 dbpath=/var/lib/mongo/arbiter port=27019 logappend=false fork=true replSet=rs0

?

接着重启服务:
[root@mongodb13 ~]# service mongod restart

在192.168.1.11:27017(primary)中添加仲裁节点并查看结果:

?

rs0:PRIMARY> rs.addArb("mongodb13.kk.net:27019")
rs0:PRIMARY> 
rs0:PRIMARY> db.isMaster()
{
	"setName" : "rs0",
	"setVersion" : 16,
	"ismaster" : true,
	"secondary" : false,
	"hosts" : [
		"mongodb11.kk.net:27017",
		"mongodb12.kk.net:27018"
	],
	"arbiters" : [
		"mongodb13.kk.net:27019"
	],
	"primary" : "mongodb11.kk.net:27017",
	"me" : "mongodb11.kk.net:27017",
	"electionId" : ObjectId("555884dc41ecb76a9ab03676"),
	"maxBsonObjectSize" : 16777216,
	"maxMessageSizeBytes" : 48000000,
	"maxWriteBatchSize" : 1000,
	"localTime" : ISODate("2015-05-17T12:31:34.720Z"),
	"maxWireVersion" : 3,
	"minWireVersion" : 0,
	"ok" : 1
}
rs0:PRIMARY> 

至此,添加完成!~

?

再次测试,在192.168.1.11:27017(primary)中删除服务进程:

?

[root@redhat11 ~]# ps -ef | grep mong
mongod    4771     1  0 20:08 ?        00:00:09 /usr/bin/mongod -f /etc/mongod.conf
root      4827  2580  0 20:08 pts/0    00:00:00 mongo mongodb11.kk.net:27017
root      5255  2618  0 20:33 pts/1    00:00:00 grep mong
[root@redhat11 ~]# kill 4771


?

到192.168.1.12:27018(secondary)查看,primary切换为192.168.1.12

?

rs0:SECONDARY> db.isMaster()
{
	"setName" : "rs0",
	"setVersion" : 16,
	"ismaster" : true,
	"secondary" : false,
	"hosts" : [
		"mongodb11.kk.net:27017",
		"mongodb12.kk.net:27018"
	],
	"arbiters" : [
		"mongodb13.kk.net:27019"
	],
	"primary" : "mongodb12.kk.net:27018",
	"me" : "mongodb12.kk.net:27018",
	"electionId" : ObjectId("555889751e2e989b81963adc"),
	"maxBsonObjectSize" : 16777216,
	"maxMessageSizeBytes" : 48000000,
	"maxWriteBatchSize" : 1000,
	"localTime" : ISODate("2015-05-17T12:32:08.745Z"),
	"maxWireVersion" : 3,
	"minWireVersion" : 0,
	"ok" : 1
}
rs0:PRIMARY> 

primary能正常启动切换了!~

?

现在看看arbiter,连接到192.168.1.13:27019。

[root@mongodb13 ~]# mongo 192.168.1.13:27019

?

rs0:ARBITER> 
rs0:ARBITER> rs.slaveOk();
rs0:ARBITER> db.isMaster()

arbiter 最为仲裁者,没有数据副本存储在本地,能读取复制集的信息。

?