复制升级版的主从复制,它实现了故障自动转移功能,同时从节点支持读

一,节点类型:

a)    主节点:支持读写

b)    从节点:支持读(需设置)

c)    仲裁节点:参与投票同时也支持读(需设置)

二,实验

主节点:192.168.129.47

从节点:192.168.129.48

仲裁节点:192.168.129.49

 

1.主节点配置如下:

vi  /etc/rc.local

rm /usr/mongodb/log/mongodb.log

/usr/mongodb/bin/mongod --dbpath=/usr/mongodb/data/ --logpath=/usr/mongodb/log/mongodb.log --port 27017  --replSet test/192.168.129.48:27017 --maxConns=2000 --fork –logappend

 

从节点配置如下:

vi /etc/rc.local

rm /usr/mongodb/log/mongodb.log

/usr/mongodb/bin/mongod --dbpath=/usr/mongodb/data/ --logpath=/usr/mongodb/log/mongodb.log --port 27017  --replSet test/192.168.129.47:27017 --maxConns=2000 --fork –logappend

 

仲裁节点配置如下:

vi /etc/rc.local

rm /usr/mongodb/log/mongodb.log

 /usr/mongodb/bin/mongod --dbpath=/usr/mongodb/data/ --logpath=/usr/mongodb/log/mongodb.log  --port 27017 --replSet test/192.168.129.47:27017,192.168.129.48:27017 --fork –logappend

 

配置完成之后启动mongod服务

2.启动之后在主节点执行(192.168.129.47)

use admin

db.runCommand({"replSetInitiate" : {

"_id" : "test",

"members" : [

{

"_id" : 0,

"host" : "192.168.129.47:27017"

},

{

"_id" : 1,

"host" : "192.168.129.48:27017"

} ,

{

"_id" : 2,

"host" : "192.168.129.49:27017"

//,arbiteronly=true

}

]}})

 

#查看复制集状态
rs.status()
rs.isMaster()
rs.conf()

 

#查看从库状态
db.printSlaveReplicationInfo()

 

#设置从库可查询
db.getMongo().setSlaveOk()
rs.setSlaveOk()

 

 

#增加复制集节点
1.锁定已有的一个从库,并将缓存中的数据写入到磁盘
use admin
db.runCommand({"fsync":1, "lock":1})
2.拷贝被锁定从库的数据文件到新建从库的数据目录
3.解锁从库
db.$cmd.sys.unlock.findOne()
db.currentOp()
4.启动新从库
./mongod --replSet rs1 --keyFile /data/set/key/r4 --fork --port 28014 --dbpath /data/set/r4 --logpath=/data/set/log/r4.log --logappend --fastsync
5.rs.add("localhost:27017")

6.删除节点:

  主节点上面执行 rs.remove(“ip:port”)