首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MongoDB-分片(Sharding)部署

MongoDB-分片(Sharding)部署

作者头像
运维小路
发布2026-01-26 12:51:24
发布2026-01-26 12:51:24
840
举报
文章被收录于专栏:运维小路运维小路

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

数据库是一个系统(应用)最重要的资产之一,所以我们的数据库将从以下几个数据库来进行介绍。

MySQL

PostgreSQL

MongoDB(本章节)

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.目录创建(所有节点执行)

代码语言:javascript
复制
#具体目录可以根据实际情况调整,只要和下面的配置文件对应即可。 

# 创建数据和日志目录
mkdir -p /mongodb/{config,shard,mongos}/{data,logs}
mkdir -p /mongodb/config/{cfg1,cfg2,cfg3}
mkdir -p /mongodb/shard/{shard1,shard2,shard3}

2.配置服务器部署(所有节点执行)

代码语言:javascript
复制
vi /etc/mongod-config.conf
代码语言:javascript
复制
# 配置服务器配置
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
代码语言:javascript
复制
#具体看你的二进制文件位置 
mongod -f /etc/mongod-config.conf

3.初始化配置副本集

代码语言:javascript
复制
# 连接到任意配置服务器
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.分片服务器配置(所有节点执行)

代码语言:javascript
复制
vi /etc/mongod-shard.conf
代码语言:javascript
复制
systemLog:
  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
代码语言:javascript
复制
#具体看你的二进制文件位置 
mongod -f /etc/mongod-shard.conf

5.初始化分片服务器

代码语言:javascript
复制
# 连接到第一个分片
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.路由服务器配置

代码语言:javascript
复制
vi /etc/mongos.conf
代码语言:javascript
复制
systemLog:
  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
代码语言:javascript
复制
#注意这里和上面使用的二进制不是一个 
mongos -f /etc/mongo.conf

7.检查进程及端口

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-12-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MongoDB(本章节)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档