前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB分片集群部署(三)

MongoDB分片集群部署(三)

原创
作者头像
堕落飞鸟
发布2022-02-24 14:53:17
2340
发布2022-02-24 14:53:17
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏
四、shard1安装配置
4.1、创建目录
代码语言:javascript
复制
mkdir -p /work/mongo-cluster/shard1/{bin,data,conf,logs,keys}
4.2、编辑启动脚本
代码语言:javascript
复制
vim /work/mongo-cluster/shard1/bin/start.sh

内容

代码语言:javascript
复制
docker run -d --name shard1 \
        --network=host \
        --log-opt max-size=10m \
        -v /etc/timezone:/etc/timezone \
        -v /etc/localtime:/etc/localtime \
        -v /work/mongo-cluster/shard1/data:/data \
        -v /work/mongo-cluster/shard1/keys:/keys \
        -v /work/mongo-cluster/shard1/logs:/var/log/mongodb \
        -v /work/mongo-cluster/shard1/conf/mongod.conf:/etc/mongo/mongod.conf \
        mongo:4.2.5 --config /etc/mongo/mongod.conf \
代码语言:javascript
复制
chmod 755  /work/mongo-cluster/shard1/bin/start.sh
4.3、编辑配置文件
代码语言:javascript
复制
vim /work/mongo-cluster/shard1/conf/mongod.conf

内容

代码语言:javascript
复制
# mongod.conf
​
# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/
​
# Where and how to store data.
storage:
  dbPath: /data
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:
​
# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongo.log
​
# network interfaces
net:
  port: 27019
  bindIp: 0.0.0.0
​
​
# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo
​
#security:
security:
  keyFile: /keys/mongo-cluster.key
​
#operationProfiling:
​
#replication:
replication:
    replSetName: shard1
​
#sharding:
sharding:
    clusterRole: shardsvr
​
## Enterprise-Only Options:
​
#auditLog:
​
#snmp:
4.4、复制keyfile
代码语言:javascript
复制
cp ~/mongo-cluster.key /work/mongo-cluster/shard1/keys/
sudo chown 999 /work/mongo-cluster/shard1/keys/mongo-cluster.key
sudo chmod 400 /work/mongo-cluster/shard1/keys/mongo-cluster.key
4.5、设置目录权限
代码语言:javascript
复制
sudo chown 999 /work/mongo-cluster/shard1/data/ /work/mongo-cluster/shard1/logs/
4.6、启动应用
代码语言:javascript
复制
/work/mongo-cluster/shard1/bin/start.sh
4.7、初始化副本集

连接172.30.3.231节点

代码语言:javascript
复制
docker exec -it shard1 mongo --port 27019

初始化副本集

代码语言:javascript
复制
rs.initiate(
  {
    _id : "shard1",
    members: [
      { _id : 0, host : "172.30.3.231:27019" },
      { _id : 1, host : "172.30.3.234:27019" },
      { _id : 2, host : "172.30.3.238:27019" , arbiterOnly: true }
    ]
  }
)

返回值

代码语言:javascript
复制
{ "ok" : 1 }
4.8、查询状态
代码语言:javascript
复制
rs.status()

返回值

代码语言:javascript
复制
{
        "set" : "shard1",
        "date" : ISODate("2020-04-11T07:11:39.182Z"),
        "myState" : 1,
        "term" : NumberLong(1),
        "syncingTo" : "",
        "syncSourceHost" : "",
        "syncSourceId" : -1,
        "heartbeatIntervalMillis" : NumberLong(2000),
        "majorityVoteCount" : 2,
        "writeMajorityCount" : 2,
        "optimes" : {
                "lastCommittedOpTime" : {
                        "ts" : Timestamp(1586589098, 1),
                        "t" : NumberLong(1)
                },
                "lastCommittedWallTime" : ISODate("2020-04-11T07:11:38.642Z"),
                "readConcernMajorityOpTime" : {
                        "ts" : Timestamp(1586589098, 1),
                        "t" : NumberLong(1)
                },
                "readConcernMajorityWallTime" : ISODate("2020-04-11T07:11:38.642Z"),
                "appliedOpTime" : {
                        "ts" : Timestamp(1586589098, 1),
                        "t" : NumberLong(1)
                },
                "durableOpTime" : {
                        "ts" : Timestamp(1586589098, 1),
                        "t" : NumberLong(1)
                },
                "lastAppliedWallTime" : ISODate("2020-04-11T07:11:38.642Z"),
                "lastDurableWallTime" : ISODate("2020-04-11T07:11:38.642Z")
        },
        "lastStableRecoveryTimestamp" : Timestamp(1586589088, 1),
        "lastStableCheckpointTimestamp" : Timestamp(1586589088, 1),
        "electionCandidateMetrics" : {
                "lastElectionReason" : "electionTimeout",
                "lastElectionDate" : ISODate("2020-04-11T07:10:28.612Z"),
                "electionTerm" : NumberLong(1),
                "lastCommittedOpTimeAtElection" : {
                        "ts" : Timestamp(0, 0),
                        "t" : NumberLong(-1)
                },
                "lastSeenOpTimeAtElection" : {
                        "ts" : Timestamp(1586589018, 1),
                        "t" : NumberLong(-1)
                },
                "numVotesNeeded" : 2,
                "priorityAtElection" : 1,
                "electionTimeoutMillis" : NumberLong(10000),
                "numCatchUpOps" : NumberLong(0),
                "newTermStartDate" : ISODate("2020-04-11T07:10:28.640Z"),
                "wMajorityWriteAvailabilityDate" : ISODate("2020-04-11T07:10:29.302Z")
        },
        "members" : [
                {
                        "_id" : 0,
                        "name" : "172.30.3.231:27019",
                        "health" : 1,
                        "state" : 1,
                        "stateStr" : "PRIMARY",
                        "uptime" : 555,
                        "optime" : {
                                "ts" : Timestamp(1586589098, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2020-04-11T07:11:38Z"),
                        "syncingTo" : "",
                        "syncSourceHost" : "",
                        "syncSourceId" : -1,
                        "infoMessage" : "could not find member to sync from",
                        "electionTime" : Timestamp(1586589028, 1),
                        "electionDate" : ISODate("2020-04-11T07:10:28Z"),
                        "configVersion" : 1,
                        "self" : true,
                        "lastHeartbeatMessage" : ""
                },
                {
                        "_id" : 1,
                        "name" : "172.30.3.234:27019",
                        "health" : 1,
                        "state" : 2,
                        "stateStr" : "SECONDARY",
                        "uptime" : 80,
                        "optime" : {
                                "ts" : Timestamp(1586589088, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDurable" : {
                                "ts" : Timestamp(1586589088, 1),
                                "t" : NumberLong(1)
                        },
                        "optimeDate" : ISODate("2020-04-11T07:11:28Z"),
                        "optimeDurableDate" : ISODate("2020-04-11T07:11:28Z"),
                        "lastHeartbeat" : ISODate("2020-04-11T07:11:38.619Z"),
                        "lastHeartbeatRecv" : ISODate("2020-04-11T07:11:37.274Z"),
                        "pingMs" : NumberLong(0),
                        "lastHeartbeatMessage" : "",
                        "syncingTo" : "172.30.3.231:27019",
                        "syncSourceHost" : "172.30.3.231:27019",
                        "syncSourceId" : 0,
                        "infoMessage" : "",
                        "configVersion" : 1
                },
                {
                        "_id" : 2,
                        "name" : "172.30.3.238:27019",
                        "health" : 1,
                        "state" : 7,
                        "stateStr" : "ARBITER",
                        "uptime" : 80,
                        "lastHeartbeat" : ISODate("2020-04-11T07:11:38.618Z"),
                        "lastHeartbeatRecv" : ISODate("2020-04-11T07:11:38.886Z"),
                        "pingMs" : NumberLong(0),
                        "lastHeartbeatMessage" : "",
                        "syncingTo" : "",
                        "syncSourceHost" : "",
                        "syncSourceId" : -1,
                        "infoMessage" : "",
                        "configVersion" : 1
                }
        ],
        "ok" : 1
}
4.9、创建shard本地管理用户

该用户在集群中不可见,用于管理shard节点

代码语言:javascript
复制
admin = db.getSiblingDB("admin")
admin.createUser(
  {
    user: "shard1admin",
    pwd: "q1w2e3r4", 
    roles: [ { role: "root", db: "admin" } ]
  }
)

返回值类似

代码语言:javascript
复制
Successfully added user: {
        "user" : "shard1admin",
        "roles" : [
                {
                        "role" : "root",
                        "db" : "admin"
                }
        ]
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 四、shard1安装配置
    • 4.1、创建目录
      • 4.2、编辑启动脚本
        • 4.3、编辑配置文件
          • 4.4、复制keyfile
            • 4.5、设置目录权限
              • 4.6、启动应用
                • 4.7、初始化副本集
                  • 4.8、查询状态
                    • 4.9、创建shard本地管理用户
                    相关产品与服务
                    容器镜像服务
                    容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档