MongoDB 4.2.3 Sharded Cluster部署

1、环境

本文基于MongoDB 4.2.3介绍如何搭建shard集群服务,环境如下表所示:

主机 configsvr mongos shard1 shard2 shard3
hdp06 27017 27018 27019 27020 27021
hdp07 27017 27018 27019 27020 27021
hdp08 27017 27018 27019 27020 27021

2、创建相关目录

在三个节点分别创建以下目录:

mkdir -p /db/mongodata/{config,router,shard}
mkdir -p /db/mongodata/config/{data,logs}
mkdir -p /db/mongodata/router/logs
mkdir -p /db/mongodata/shard/{data,logs}
mkdir -p /db/mongodata/shard/data/{shard1,shard2,shard3}
mkdir -p /db/mongodata/shard/logs/{shard1,shard2,shard3}
chown -R mongo:mongo /db

3、配置Configsvr服务

3.1 创建配置文件

[root@hdp06 ~]# vi /db/mongodata/config/mongodb.config 
net:
  bindIp: 0.0.0.0
  port: 27017
processManagement:
  fork: "true"
replication:
  replSetName: configRS
sharding:
  clusterRole: configsvr
storage:
  dbPath: /db/mongodata/config/data
systemLog:
  destination: file
  path: /db/mongodata/config/logs/mongodb.log
# network interfaces  IPV6配置
net:  
  port: 27017
  #  bindIp: 0.0.0.0  
  bindIpAll: true  
  ipv6: true


3.2 同步配置文件

[root@hdp06 ~]# scp /db/mongodata/config/mongodb.config hdp07:/db/mongodata/config
[root@hdp06 ~]# scp /db/mongodata/config/mongodb.config hdp08:/db/mongodata/config

3.3 启动configsvr服务

[root@hdp06 ~]# mongod -f /db/mongodata/config/mongodb.config 
[root@hdp07 ~]# mongod -f /db/mongodata/config/mongodb.config 
[root@hdp08 ~]# mongod -f /db/mongodata/config/mongodb.config 

3.4 初始化集群

在一个节点上执行集群初始化操作:
[root@hdp06 ~]# mongo
>rs.initiate(
  {
    _id: "configRS",
    configsvr: true,
    members: [
      { _id : 0, host : "hdp06:27017" },
      { _id : 1, host : "hdp07:27017" },
      { _id : 2, host : "hdp08:27017" }
    ]
  }
)
--输出结果如下
{
        "ok" : 1,
        "$gleStats" : {
                "lastOpTime" : Timestamp(1615860548, 1),
                "electionId" : ObjectId("000000000000000000000000")
        },
        "lastCommittedOpTime" : Timestamp(0, 0),
        "$clusterTime" : {
                "clusterTime" : Timestamp(1615860548, 1),
                "signature" : {
                        "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
                        "keyId" : NumberLong(0)
                }
        },
        "operationTime" : Timestamp(1615860548, 1)
}
--其他节点验证
[root@hdp07 ~]# mongo
......
configRS:SECONDARY> rs.status() 
{
        "set" : "configRS",
        "date" : ISODate("2021-03-16T02:10:07.503Z"),
        "myState" : 1,
        "term" : NumberLong(1),
        "syncingTo" : "",
        "syncSourceHost" : "",
        "syncSourceId" : -1,
        "configsvr" : true,
        "heartbeatIntervalMillis" : NumberLong(2000),
        "majorityVoteCount" : 2,
        "writeMajorityCount" : 2,
        "optimes" : {
                "lastCommittedOpTime" : {
                        "ts" : Timestamp(1615860600, 1),
                        "t" : NumberLong(1)
                },
                "lastCommittedWallTime" : ISODate("2021-03-16T02:10:00.285Z"),
                "readConcernMajorityOpTime" : {
                        "ts" : Timestamp(1615860600, 1),
                        "t" : NumberLong(1)
                },
                "readConcernMajorityWallTime" : ISODate("2021-03-16T02:10:00.285Z"),
                "appliedOpTime" : {
                        "ts" : Timestamp(1615860600, 1),
                        "t" : NumberLong(1)
                },
                "durableOpTime" : {
                        "ts" : Timestamp(1615860600, 1),
                        "t" : NumberLong(1)
                },
                "lastAppliedWallTime" : ISODate("2021-03-16T02:10:00.285Z"),
                "lastDurableWallTime" : ISODate("2021-03-16T02:10:00.285Z")
        },
        "lastStableRecoveryTimestamp" : Timestamp(1615860559, 2),
        "lastStableCheckpointTimestamp" : Timestamp(1615860559, 2),
        "electionCandidateMetrics" : {
                "lastElectionReason" : "electionTimeout",
                "lastElectionDate" : ISODate("2021-03-16T02:09:18.946Z"),
                "electionTerm" : NumberLong(1),
                "lastCommittedOpTimeAtElection" : {
                        "ts" : Timestamp(0, 0),
                        "t" : NumberLong(-1)
                },
                "lastSeenOpTimeAtElection" : {
                        "ts" : Timestamp(1615860548, 1),
                        "t

你可能感兴趣的:(Mongodb,mongodb,数据库)