副本: 副本集集群基础配置

环境介绍

系统版本

服务器ip地址

MongoDB版本

端口号

CentOS Linux release 7.6.1810 (Core)

192.168.0.92

mongodb-linux-x86_64-rhel62-3.6.5.tgz

27017

CentOS Linux release 7.6.1810 (Core)

192.168.0.93

mongodb-linux-x86_64-rhel62-3.6.5.tgz

27017

CentOS Linux release 7.6.1810 (Core)

192.168.0.94

mongodb-linux-x86_64-rhel62-3.6.5.tgz

27017

正式开始

本实践其中有使用ansible工具便于快速部署。

1、安装MongoDB

$ wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.2.22.tgz
$ ansible -i inventory mongocluster -m copy -a 'src=/Users/jinxiaozhang/mongodb-linux-x86_64-rhel62-3.6.5.tgz dest=/usr/local/'
$ ansible -i inventory mongocluster -m shell -a 'tar zxvf /usr/local/mongodb-linux-x86_64-rhel62-3.6.5.tgz -C /usr/local/

2、创建我们所需要的目录

$ ansible -i inventory mongocluster -m shell -a 'mkdir /usr/local/mongodb-linux-x86_64-rhel70-3.2.22/data' 
$ ansible -i inventory mongocluster -m shell -a 'mkdir /usr/local/mongodb-linux-x86_64-rhel70-3.2.22/shard1' 
$ ansible -i inventory mongocluster -m shell -a 'mkdir /usr/local/mongodb-linux-x86_64-rhel70-3.2.22/logs' 
$ ansible -i inventory mongocluster -m shell -a 'mkdir /usr/local/mongodb-linux-x86_64-rhel70-3.2.22/config' 
$ ansible -i inventory mongocluster -m shell -a 'mkdir /usr/local/mongodb-linux-x86_64-rhel70-3.2.22/key'

3、创建配置文件

[root@node92 mongodb-linux-x86_64-rhel70-3.2.22]# cat shard1.conf
systemLog:
  destination: file
  path: "/usr/local/mongodb-linux-x86_64-rhel70-3.2.22/logs/shard1.log"
  logAppend: true
storage:
  dbPath:   /usr/local/mongodb-linux-x86_64-rhel70-3.2.22/data/shard1
  engine: wiredTiger
#  oplogSize: 51200
processManagement:
  fork: true
net:
  bindIp: 192.168.0.92 #其他两台机器分别改为192.168.0.93 ; 192.168.0.94
  port: 27017
replication:
  replSetName:  shard1

4、启动服务

[root@node92 mongodb-linux-x86_64-rhel70-3.2.22]# bin/mongod -f config/shard1.conf
[root@node93 mongodb-linux-x86_64-rhel70-3.2.22]# bin/mongod -f config/shard1.conf
[root@node94 mongodb-linux-x86_64-rhel70-3.2.22]# bin/mongod -f config/shard1.conf

5、初始化副本集群

[root@node92 mongodb-linux-x86_64-rhel70-3.2.22]# bin/mongo 192.168.0.92:27017
> rs.initiate() #初始化一个副本集群

6、向副本集群添加节点成员

[root@node92 mongodb-linux-x86_64-rhel70-3.2.22]# bin/mongo 192.168.0.92:27017
> rs.add("192.168.0.93:27017")
> rs.add("192.168.0.94:27017")

7、查看副本集群状态

shard1:PRIMARY> rs.status()
{
    "set" : "shard1",
    "date" : ISODate("2019-04-29T06:48:45.798Z"),
    "myState" : 1,
    "term" : NumberLong(5),
    "heartbeatIntervalMillis" : NumberLong(2000),
    "members" : [
        {
            "_id" : 0,
            "name" : "192.168.0.92:27017",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",
            "uptime" : 10961,
            "optime" : {
                "ts" : Timestamp(1556509844, 1),
                "t" : NumberLong(5)
            },
            "optimeDate" : ISODate("2019-04-29T03:50:44Z"),
            "lastHeartbeat" : ISODate("2019-04-29T06:48:44.593Z"),
            "lastHeartbeatRecv" : ISODate("2019-04-29T06:48:45.714Z"),
            "pingMs" : NumberLong(1),
            "syncingTo" : "192.168.0.94:27017",
            "configVersion" : 3
        },
        {
            "_id" : 1,
            "name" : "192.168.0.93:27017",
            "health" : 1,
            "state" : 1,
            "stateStr" : "PRIMARY",
            "uptime" : 10988,
            "optime" : {
                "ts" : Timestamp(1556509844, 1),
                "t" : NumberLong(5)
            },
            "optimeDate" : ISODate("2019-04-29T03:50:44Z"),
            "electionTime" : Timestamp(1556509548, 1),
            "electionDate" : ISODate("2019-04-29T03:45:48Z"),
            "configVersion" : 3,
            "self" : true
        },
        {
            "_id" : 2,
            "name" : "192.168.0.94:27017",
            "health" : 1,
            "state" : 2,
            "stateStr" : "SECONDARY",
            "uptime" : 10988,
            "optime" : {
                "ts" : Timestamp(1556509844, 1),
                "t" : NumberLong(5)
            },
            "optimeDate" : ISODate("2019-04-29T03:50:44Z"),
            "lastHeartbeat" : ISODate("2019-04-29T06:48:45.700Z"),
            "lastHeartbeatRecv" : ISODate("2019-04-29T06:48:44.725Z"),
            "pingMs" : NumberLong(0),
            "syncingTo" : "192.168.0.93:27017",
            "configVersion" : 3
        }
    ],
    "ok" : 1
}

Last updated

Was this helpful?