mongo 搭建 replica set

来源:互联网 发布:go开头的软件 编辑:程序博客网 时间:2024/05/17 04:13

1、安装docker环境

2、下载mongo镜像

3、通过mongo镜像运行三个mongo容器

docker run -itd -p 30001:27017 --name mongo1 mongo:3.4 mongod --replSet my-mongo-set  // 172.17.0.2
docker run -itd -p 30002:27017 --name mongo2 mongo:3.4 mongod --replSet my-mongo-set  // 172.17.0.3

docker run -itd -p 30003:27017 --name mongo3 mongo:3.4 mongod --replSet my-mongo-set  // 172.17.0.4

注:docker exec -it mongo1 mongo 进去mongo控制台


4、配置replica 信息

config = {
    "_id" : "my-mongo-set",
    "members" : [
        {
            "_id" : 0,
            "host" : "172.17.0.2:27017"
        },
        {
            "_id" : 1,
            "host" : "172.17.0.3:27017"
        },
        {
            "_id" : 2,
            "host" : "172.17.0.4:27017"
        }
    ]
  }

或者:

  1. cfg={ _id:"rs1", members:[ {_id:0,host:'192.168.159.135:27017',priority:2}, 
  2. {_id:1,host:'192.168.159.136:27017',priority:1}, {_id:2,host:'192.168.159.137:27017',arbiterOnly:true}] };    
  3. rs.initiate(cfg)   

rs.initiate(config)

db.isMaster()

5、4已经完成后,集群已经创建成功,但是从primary插入数据,secondary查询会失败,原因是没有在secondary执行db.setSlaveOk()