主从部署架构示意图

Master-Slaver(主从)
官方声明:主从模式不推荐使用,在生产环境中,通常是分片+副本集结合使用。
节点1配置 node-13151.conf
dbpath=/home/mongo/master-slave/node-13151/data
logpath=/home/mongo/master-slave/node-13151/log/node.log
port=13151
fork=true
replSet=replicationCluster # 在分片上,不同分片的副本集命名不能一样
节点2配置 node-13152.conf
dbpath=/home/mongo/master-slave/node-13152/data
logpath=/home/mongo/master-slave/node-13152/log/node.log
port=13152
fork=true
replSet=replicationCluster # 在分片上,不同分片的副本集命名不能一样
节点3配置 node-13153.conf
dbpath=/home/mongo/master-slave/node-13153/data
logpath=/home/mongo/master-slave/node-13153/log/node.log
port=13153
fork=true
replSet=replicationCluster # 在分片上,不同分片的副本集命名不能一样
分别启动三个节点并进入其中一个节点
mongod -f /home/mongo/master-slave/node-13151.conf
mongod -f /home/mongo/master-slave/node-13152.conf
mongod -f /home/mongo/master-slave/node-13153.conf
查看复制集群的帮助文档
rs.help()
rs.status()
添加配置
var cfg ={"_id":"replicationCluster","members":[
{"_id":0,"host":"127.0.0.1:13151"},
{"_id":0,"host":"127.0.0.1:13152"},
{"_id":0,"host":"127.0.0.1:13153"}
]}
rs.initiate(cfg)
rs.status()
默认从节点不能读数据。需在从节点上执行
rs.slaveOk()
插入新的复制节点
rs.add("127.0.0.1:13154")
删除slave 节点
rs.remove("127.0.0.1:27019")
查看节点状态
rs.status()
主从复制部署完毕,进入主节点即可插入数据;进入从节点即可查看数据,从节点无法插入数据。
var cfg ={"_id":"replicationCluster","members":[
{"_id":0,"host":"127.0.0.1:13151","priority":10},
{"_id":0,"host":"127.0.0.1:13152","priority":5},
{"_id":0,"host":"127.0.0.1:13153","arbiterOnly":true}
]}
rs.reconfig(cfg)
rs.status()

