windows下MongoDb复制集部署
MongoDb复制集最少三个节点一个主一个从一个监控节点。
1:启动3个cmd
//主 mongod --port 29017 --dbpath E:\MongoDB\db29017\data --logpath E:\MongoDB\db29017\log\mongod.log --replSet rs0 //从 mongod --port 29018 --dbpath E:\MongoDB\db29018\data --logpath E:\MongoDB\db29018\log\mongod.log --replSet rs0 //监控 mongod --port 29019 --dbpath E:\MongoDB\db29019\data --logpath E:\MongoDB\db29019\log\mongod.log --replSet rs0
2:再启动3个cmd分别登录
//主 mongo --port 29017 //从 mongo --port 29018 //监控 mongo --port 29019
如此总共6个控制台
3:在29017里面操作,分别执行以下命令
//初始化 rs.initiate({"_id":"rs0",members:[{_id:0,host:"127.0.0.1:29017"},{_id:1,host:"127.0.0.1:29018"},{_id:2,host:"127.0.0.1:29019"}]}) //可以通过isMaster查看是否是主节点和使用rs.status查看状态 rs.isMaster() rs.status()
4:然后添加从节点和监控节点
//添加从节点 rs.add("127.0.0.1:29018") //添加监控节点 rs.addArb("127.0.0.1:29019")
5:将主节点服务关闭,过一会再29018上执行rs.isMaster() 、rs.status()都行会发现原先的从节点变成了主节点,而等29017回复之后会变成从节点
7:再做数据同步
主库执行:
db.userinfo.insert({"id":1,"name":"fanlin"});
然后在从库获取:
db.userinfo.find()
会发现报错
此时只需要在从库执行以下指令就行了
rs.slaveOk()
以上!