美文网首页
MongoDB 副本集部署

MongoDB 副本集部署

作者: awker | 来源:发表于2018-07-18 20:36 被阅读0次

1、配置 hosts

# cat /etc/hosts
10.3.20.14  mq1
10.3.20.51  mq2
10.3.20.54  mq3

2、修改 /etc/mongod.conf,以 10.3.20.14 为例,其他两台配置类似

配置集群 keyfile(3台机器用同一个key)
# openssl rand -base64 756 > mongo.key
# mv mongo.key /var/lib/mongo/
# chown mongod:mongod /var/lib/mongo/mongo.key
# chmod 600 /var/lib/mongo/mongo.key

配置文件如下
# egrep -v "^$|^#" /etc/mongod.conf 
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log
storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo
net:
  port: 27017
  bindIp: 127.0.0.1,10.3.20.14  # Listen to local interface only, comment to listen on all interfaces.
security:
  authorization: 'enabled'
  keyFile: /var/lib/mongo/mongo.key
replication:
  oplogSizeMB: 500
  replSetName: repdata

# /etc/init.d/mongod restart

3、在 10.3.20.14 上开启复制集

# mongo -u root -p 123456 10.3.20.14/admin
> cfg={ _id:"repdata", members:[ {_id:0,host:'10.3.20.14:27017',priority:2}, {_id:1,host:'10.3.20.51:27017',priority:1}, {_id:2,host:'10.3.20.54:27017',arbiterOnly:true}] }
> rs.initiate(cfg)
说明: 
// cfg 名字可选,只要跟 mongodb 参数不冲突,_id 为 Replica Set 名字,members 里面的优先级 priority 值高的为主节点,对于仲裁点一定要加上 arbiterOnly:true,否则主备模式不生效 
// priority 表示优先级别,数值越大,表示是主节点 
// arbiterOnly:true 表示仲裁节点 
// 使集群cfg配置生效 rs.initiate(cfg) 
// 查看是否生效 rs.status()
> rs.status()
{
    "set" : "repdata",
    "date" : ISODate("2018-07-17T07:49:30.307Z"),
    "myState" : 1,
    "term" : NumberLong(6),
    "syncingTo" : "",
    "syncSourceHost" : "",
    "syncSourceId" : -1,
    "heartbeatIntervalMillis" : NumberLong(2000),
    "optimes" : {
        "lastCommittedOpTime" : {
            "ts" : Timestamp(1531813766, 1),
            "t" : NumberLong(6)
        },
        "readConcernMajorityOpTime" : {
            "ts" : Timestamp(1531813766, 1),
            "t" : NumberLong(6)
        },
        "appliedOpTime" : {
            "ts" : Timestamp(1531813766, 1),
            "t" : NumberLong(6)
        },
        "durableOpTime" : {
            "ts" : Timestamp(1531813766, 1),
            "t" : NumberLong(6)
        }
    },
    "members" : [
        {
            "_id" : 0,
            "name" : "10.3.20.14:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 1018,
            "optime" : {
                "ts" : Timestamp(1531813766, 1),
                "t" : NumberLong(6)
            },
            "optimeDate" : ISODate("2018-07-17T07:49:26Z"),
            "syncingTo" : "",
            "syncSourceHost" : "",
            "syncSourceId" : -1,
            "infoMessage" : "",
            "electionTime" : Timestamp(1531812765, 1),
            "electionDate" : ISODate("2018-07-17T07:32:45Z"),
            "configVersion" : 37521,
            "self" : true,
            "lastHeartbeatMessage" : ""
        },
        {
            "_id" : 1,
            "name" : "10.3.20.51:27017",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",
            "uptime" : 1015,
            "optime" : {
                "ts" : Timestamp(1531813766, 1),
                "t" : NumberLong(6)
            },
            "optimeDurable" : {
                "ts" : Timestamp(1531813766, 1),
                "t" : NumberLong(6)
            },
            "optimeDate" : ISODate("2018-07-17T07:49:26Z"),
            "optimeDurableDate" : ISODate("2018-07-17T07:49:26Z"),
            "lastHeartbeat" : ISODate("2018-07-17T07:49:30.272Z"),
            "lastHeartbeatRecv" : ISODate("2018-07-17T07:49:30.275Z"),
            "pingMs" : NumberLong(0),
            "lastHeartbeatMessage" : "",
            "syncingTo" : "10.3.20.14:27017",
            "syncSourceHost" : "10.3.20.14:27017",
            "syncSourceId" : 0,
            "infoMessage" : "",
            "configVersion" : 37521
        },
        {
            "_id" : 2,
            "name" : "10.3.20.54:27017",
            "health" : 1,
            "state" : 7,
            "stateStr" : "ARBITER",
            "uptime" : 1015,
            "lastHeartbeat" : ISODate("2018-07-17T07:49:30.272Z"),
            "lastHeartbeatRecv" : ISODate("2018-07-17T07:49:29.750Z"),
            "pingMs" : NumberLong(0),
            "lastHeartbeatMessage" : "",
            "syncingTo" : "",
            "syncSourceHost" : "",
            "syncSourceId" : -1,
            "infoMessage" : "",
            "configVersion" : 37521
        }
    ],
    "ok" : 1,
    "operationTime" : Timestamp(1531813766, 1),
    "$clusterTime" : {
        "clusterTime" : Timestamp(1531813766, 1),
        "signature" : {
            "hash" : BinData(0,"v6vv5ejGutQJnR0t8z/egTzN6nE="),
            "keyId" : NumberLong("6579067222256254977")
        }
    }
}

4、Slave 启动读功能

repdata:SECONDARY> rs.slaveOk()

5、重置集群的方法

重置集群状态,指定 Replica Set 名字,members,
repdata:PRIMARY> cfg={ _id:"repdata", members:[ {_id:0,host:'10.3.20.14:27017',priority:2}, {_id:1,host:'10.3.20.51:27017',priority:1}, {_id:2,host:'10.3.20.54:27017',arbiterOnly:true}] };
{
    "_id" : "repdata",
    "members" : [
        {
            "_id" : 0,
            "host" : "10.3.20.14:27017",
            "priority" : 2
        },
        {
            "_id" : 1,
            "host" : "10.3.20.51:27017",
            "priority" : 1
        },
        {
            "_id" : 2,
            "host" : "10.3.20.54:27017",
            "arbiterOnly" : true
        }
    ]
}
repdata:PRIMARY> rs.reconfig(cfg, {force: true})
{
    "ok" : 1,
    "operationTime" : Timestamp(1531811275, 1),
    "$clusterTime" : {
        "clusterTime" : Timestamp(1531811275, 1),
        "signature" : {
            "hash" : BinData(0,"0uUEH9rS5Ogao1IuIxscZ0UPdzQ="),
            "keyId" : NumberLong("6579067222256254977")
        }
    }
}
repdata:PRIMARY> rs.conf()
{
    "_id" : "repdata",
    "version" : 37521,
    "protocolVersion" : NumberLong(1),
    "members" : [
        {
            "_id" : 0,
            "host" : "10.3.20.14:27017",
            "arbiterOnly" : false,
            "buildIndexes" : true,
            "hidden" : false,
            "priority" : 2,
            "tags" : {
                
            },
            "slaveDelay" : NumberLong(0),
            "votes" : 1
        },
        {
            "_id" : 1,
            "host" : "10.3.20.51:27017",
            "arbiterOnly" : false,
            "buildIndexes" : true,
            "hidden" : false,
            "priority" : 1,
            "tags" : {
                
            },
            "slaveDelay" : NumberLong(0),
            "votes" : 1
        },
        {
            "_id" : 2,
            "host" : "10.3.20.54:27017",
            "arbiterOnly" : true,
            "buildIndexes" : true,
            "hidden" : false,
            "priority" : 0,
            "tags" : {
                
            },
            "slaveDelay" : NumberLong(0),
            "votes" : 1
        }
    ],
    "settings" : {
        "chainingAllowed" : true,
        "heartbeatIntervalMillis" : 2000,
        "heartbeatTimeoutSecs" : 10,
        "electionTimeoutMillis" : 10000,
        "catchUpTimeoutMillis" : -1,
        "catchUpTakeoverDelayMillis" : 30000,
        "getLastErrorModes" : {
            
        },
        "getLastErrorDefaults" : {
            "w" : 1,
            "wtimeout" : 0
        },
        "replicaSetId" : ObjectId("5b4d8ac676326213278e0ac2")
    }
}

相关文章

  • mongo4.0复制集

    MongoDB中的副本集是一组维护相同数据集的mongod进程。副本集提供冗余和高可用性,是所有生产部署的基础。本...

  • MongoDB复制集

    1、MongoDB复制集(副本集)简介 复制集模式(replicaSet mode),也叫副本集模式,指两个及以上...

  • MongoDB副本集群部署

    MongoDB副本集群部署 1、MongoDB单机版的安装 提前准备MongoDB安装包 添加环境变量 常用命令 ...

  • MongoDB - 副本集

    Docker部署MongoDB副本集 1.创建docker桥接网络 2.启动3个MongoDB实例,注意要指定上一...

  • springboot mongodb事务处理

    mongodb事务控制不能在单点模式下进行,需要在副本集环境下进行事务处理。docker 下部署mongo副本集,...

  • 1.副本集-Replica Sets

    1.1 简介 MongoDB中的副本集(Replica Set)是一组维护相同数据集的mongod服务。 副本集可...

  • mongodb副本集部署

    本文演示在1台服务器上部署3节点的Replica Sets,配置信息如下图所示。 分别创建3个节点各自的数据文件存...

  • MongoDB 副本集部署

    1、配置 hosts 2、修改 /etc/mongod.conf,以 10.3.20.14 为例,其他两台配置类似...

  • Mongodb副本集部署

    相关知识 MongoDB 的主从复制至少需要两个服务器或者节点。其中一个是主节点,负责处理客户端请求,其它的都是从...

  • MongoDB创建多节点实例实现高可用服务 (上)

    概述 MongoDB 的副本集(replica set)是一组维护同一份数据集的 mongod 进程。副本集保障了...

网友评论

      本文标题:MongoDB 副本集部署

      本文链接:https://www.haomeiwen.com/subject/aupapftx.html