作者介绍:简历上没有一个精通的运维工程师,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

数据库是一个系统(应用)最重要的资产之一,所以我们的数据库将从以下几个数据库来进行介绍。
MySQL
PostgreSQL
Redis
Etcd
上个小节,我们介绍了分片集群的相关概念,今天这个小节我们就来完成分片集群的部署。
部署架构
服务器IP | 配置服务器 | 分片服务器 | 路由服务器 |
|---|---|---|---|
192.168.31.211 | Config Server | Shard Server | Mongos |
192.168.31.212 | Config Server | Shard Server | Mongos |
192.168.31.213 | Config Server | Shard Server | Mongos |
部署方案
1.目录创建(所有节点执行)
#具体目录可以根据实际情况调整,只要和下面的配置文件对应即可。
# 创建数据和日志目录
mkdir -p /mongodb/{config,shard,mongos}/{data,logs}
mkdir -p /mongodb/config/{cfg1,cfg2,cfg3}
mkdir -p /mongodb/shard/{shard1,shard2,shard3}2.配置服务器部署(所有节点执行)
vi /etc/mongod-config.conf# 配置服务器配置
systemLog:
destination: file
path: /mongodb/config/logs/config.log
logAppend: true
storage:
dbPath: /mongodb/config/data
wiredTiger:
engineConfig:
cacheSizeGB: 1
net:
bindIp: 0.0.0.0
port: 27019
processManagement:
pidFilePath: /run/config.pid
sharding:
clusterRole: configsvr
replication:
replSetName: configReplSet#具体看你的二进制文件位置
mongod -f /etc/mongod-config.conf3.初始化配置副本集
# 连接到任意配置服务器
mongosh --host 192.168.31.211 --port 27019
# 初始化副本集
test> rs.initiate({
... _id: "configReplSet",
... members: [
... { _id: 0, host: "192.168.31.211:27019"},
... { _id: 1, host: "192.168.31.212:27019" },
... { _id: 2, host: "192.168.31.213:27019" }
... ]
... })
{ ok: 1 }
configReplSet [direct: other] test> 4.分片服务器配置(所有节点执行)
vi /etc/mongod-shard.confsystemLog:
destination: file
path: /mongodb/shard/logs/shard.log
logAppend: true
storage:
dbPath: /mongodb/shard/data
wiredTiger:
engineConfig:
cacheSizeGB: 2
net:
bindIp: 0.0.0.0
port: 27018
processManagement:
pidFilePath: /run/shard1.pid
sharding:
clusterRole: shardsvr
replication:
replSetName: shard#具体看你的二进制文件位置
mongod -f /etc/mongod-shard.conf5.初始化分片服务器
# 连接到第一个分片
mongosh --host 192.168.31.211 --port 27018
# 初始化副本集
test> rs.initiate({
... _id: "shard",
... members: [
... { _id: 0, host: "192.168.31.211:27018"},
... { _id: 1, host: "192.168.31.212:27018"},
... { _id: 2, host: "192.168.31.213:27018"}
... ]
... })
{ ok: 1 }
shard [direct: other] test>
6.路由服务器配置
vi /etc/mongos.confsystemLog:
destination: file
path: /mongodb/mongos/logs/mongos.log
logAppend: true
net:
bindIp: 0.0.0.0
port: 27017
processManagement:
pidFilePath: /run/mongos.pid
sharding:
configDB: configReplSet/192.168.31.211:27019,192.168.31.212:27019,192.168.31.213:27019#注意这里和上面使用的二进制不是一个
mongos -f /etc/mongo.conf7.检查进程及端口


这样我就完成了MongoDB的分片集群的部署。