Docker Mongo数据库主从同步配置方法
主服务器172.17.1.32从服务器172.17.1.24一、启动容器主docker run -d -p 27018:27017 --name="mongo_master" -v /ruoyi/mongo hub.c.163.com/library/mongo --noprealloc --smallfiles --replSet rs从docker run -d -p 27018:27017
主服务器172.17.1.32
从服务器172.17.1.24
一、启动容器
主
docker run -d -p 27018:27017 --name="mongo_master" -v /ruoyi/mongo hub.c.163.com/library/mongo --noprealloc --smallfiles --replSet rs
从
docker run -d -p 27018:27017 --name="mongo_slave1" -v /ruoyi/mongo hub.c.163.com/library/mongo --noprealloc --smallfiles --replSet rs
docker run -d -p 27019:27017 --name="mongo_slave2" -v /ruoyi/mongo hub.c.163.com/library/mongo --noprealloc --smallfiles --replSet rs
二、配置主服务器
登陆
docker exec -it mongo_master bash
mongo --port 27017
初始化配置文件
myconf = {"_id":"rs","members":[{"_id":0,"host":"172.17.1.32:27018"},{"_id":1,"host":"172.17.1.24:27018"},{"_id":2,"host":"172.17.1.24:27019"}]}
执行初始化配置
rs.initiate(myconf)
三、设置从服务器节点
docker exec -it mongo_slave1 bash
mongo --port 27017
rs.slaveOk(); //承认自己是Secondary
docker exec -it mongo_slave2 bash
mongo --port 27017
rs.slaveOk(); //承认自己是Secondary
四、查看主节点状态
rs.isMaster(); //查看主节点配置信息
rs.status(); //查看状态
rs.conf(); //查看配置
五、查看从节点状态
rs.isMaster(); //查看主节点配置信息
rs.status(); //查看状态
rs.conf(); //查看配置
六、测试
mongo_master有读写权力,数据同步mongo_slave1和mongo_slave2
mongo_slave1和mongo_slave2只读
如果mongo_master宕机,mongo_slave1切换为主服务器
参考:
https://www.cnblogs.com/jinjiangongzuoshi/p/9301062.html
https://www.jianshu.com/p/9008fc35f182
https://www.jianshu.com/p/cfd424a3c5d3
springboot连接mongodb集群
https://blog.csdn.net/qq_35418518/article/details/100797259
强制切换为主节点
查看要切为主节点的id
rs.status()
然后
cfg=rs.conf()
cfg.members=[cfg.members[0]]
rs.reconfig(cfg, {force: true});
参考:
http://blog.chinaunix.net/uid-20785090-id-5664554.html
更多推荐
所有评论(0)