千家信息网

MongoDB分片管理

发表于:2026-10-30 作者:千家信息网编辑
千家信息网最后更新 2026年10月30日,目录概念基本思想适用场景角色介绍实验环境实验过程一、概念分片(sharding)是指将数据库拆分,将其分散在不同的机器上的过程。将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处
千家信息网最后更新 2026年10月30日MongoDB分片管理

目录

  1. 概念
  2. 基本思想
  3. 适用场景
  4. 角色介绍
  5. 实验环境
  6. 实验过程
    一、概念
    分片(sharding)是指将数据库拆分,将其分散在不同的机器上的过程。将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处理更大的负载。
    二、基本思想
    将集合切成小块,这些块分散到若干片里,每个片只负责总数据的一部分,最后通过一个均衡器来对各个分片进行均衡(数据迁移)。通过一个名为mongos的路由进程进行操作,mongos知道数据和片的对应关系(通过配置服务器)。大部分使用场景都是解决磁盘空间的问题,对于写入有可能会变差,查询则尽量避免跨分片查询。
    三、适用场景

    ① 使用分片解决磁盘空间的问题。
    ②通过分片让写压力分散到各个分片上面,使用分片服务器自身的资源。
    ③想把大量数据放到内存里提高性能。和上面一样,通过分片使用分片服务器自身的资源。

四、角色介绍
① 配置服务器。是一个独立的mongod进程,保存集群和分片的元数据,即各分片包含了哪些数据的信息。最先开始建立,启用日志功能。像启动普通的mongod一样启动配置服务器,指定configsvr选项。当服务不可用,则变成只读,无法分块、迁移数据。
② 路由服务器。即mongos,起到一个路由的功能,供程序连接。本身不保存数据,在启动时从配置服务器加载集群信息,开启mongos进程需要知道配置服务器的地址,指定configdb选项。
③ 分片服务器。是一个独立普通的mongod进程,保存数据信息。可以是一个副本集也可以是单独的一台服务器。
原理拓扑图

实验环境:
版本:MongoDB 3.2.1
安装包:链接:https://pan.baidu.com/s/1Dfy6Ria49Dc_oMKOBUNY1g 密码:fnwv

主机虚拟机IP地址端口
配置服务器CentOS-7-x86_64192.168.37.128 实例137017
路由服务器CentOS-7-x86_64192.168.37.128 实例137017
分片服务器1CentOS-7-x86_64192.168.37.128 实例247017
分片服务器2CentOS-7-x86_64192.168.37.128 实例347018

实验过程:
1、解压mongodb安装包

mkdir /opt/abc
mount.cifs //192.168.37.1/SHARE /opt/abc
cd /opt/abc
tar zxvf mongodb-linux-x86_64-3.2.1.tgz -C /opt

2、将mongodb文件移动到/usr/local目录下

cd /opt
mv mongodb-linux-x86_64-3.2.1/ /usr/local/mongodb


3、将mongo、mongod做快捷引用

ln -s /usr/local/mongodb/bin/mongo /usr/bin/mongo
ln -s /usr/local/mongodb/bin/mongod /usr/bin/mongod

4、创建实例(4个实例:验3个,1个备用)的数据存放目录及日志存放目录

mkdir -p /data/mongodb/mongodb{1,2,3,4} #数据存放目录
cd /data/mongodb/
mkdir logs
touch logs/mongodb{1,2,3,4}.log #日志存放文件
chmod 777 logs/*.log


5、优化

ulimit -u 25000 #放大进程数
ulimit -n 25000 #放大打开文件数

配置服务器
6、编辑配置服务器文件

cd /usr/local/mongodb/bin
vim mongodb1.conf

port=37017dbpath=/data/mongodb/mongodb1logpath=/data/mongodb/logs/mongodb1.loglogappend=truefork=truemaxConns=5000storageEngine=mmapv1configsvr=true            ** #配置服务器模式**

7、节点内存不足时,从其他节点分配内存

sysctl -w vm.zone_reclaim_mode=0
echo never > /sys/kernel/mm/transparent_hugepage/enabled #禁止大页面内存出现
echo never > /sys/kernel/mm/transparent_hugepage/defrag

8、开启配置服务器

mongod -f mongodb.conf
mongo --port 37017


片服务器
9、复制实例1配置文件(实例2)

cp -p mongodb.conf mongodb2.conf

10、修改配置文件(实例2)

vim mongodb2.conf

port=47017dbpath=/data/mongodb/mongodb2logpath=/data/mongodb/logs/mongodb2.logshardsvr=true             #分片服务器模式

11、复制实例2配置文件(实例3)
cp -p mongodb2.conf mongodb3.conf

10、修改配置文件(实例3)

vim mongodb3.conf

port=47018dbpath=/data/mongodb/mongodb3logpath=/data/mongodb/logs/mongodb3.log

11、开启分片服务器

mongod -f mongodb2.conf
mongo --port 47017
mongod -f mongodb3.conf
mongo --port 47018


路由服务器
12、开启路由服务

./mongos --port 27017 --fork --logpath=/usr/local/mongodb/bin/route.log --configdb 192.168.37.128:37017 --chunkSize 1

--port 27017:路由配置服务器入口--fork:后台运行logpath:日志文件存储路径--configdb:指定真正处理请求的服务器(配置服务器)--chunkSize 1 :不加也可,默认200MB


启用分片服务
13、登录数据库

mongo


14、查看分片服务器是否存在

sh.status() #shards下为空,无分片服务器


15、添加分片服务器

sh.addShard("192.168.37.128:47017")
sh.addShard("192.168.37.128:47018")


验证分片服务功能
16、创建数据库kgc---集合users---添加数据

use kgc
for(var i=1;i<=10000;i++)db.users.insert({"id":1,"name":"tom"+i}) #写入数据
mongos> show dbs

config  0.031GBkgc     0.078GB


17、查看是否进行分片处理

sh.status()


18、启用数据库分片

sh.enableSharding("kgc")
sh.status()

19、创建索引,根据索引进行分片

db.users.createIndex({"id":1}) #对user表创建索引
sh.shardCollection("kgc.users",{"id":1}) #表分片
sh.status()

20、到此,实验已完成。另外,可依照上述步骤添加实例4,又会重新进行分片处理。

服务 服务器 数据 配置 实例 文件 路由 目录 进程 实验 内存 功能 数据库 日志 处理 信息 场景 索引 过程 不同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网络科技 互联网科技工作委员会主任 齐家互联网科技有限公司 科技大学互联网专业好不好 汉立互联网科技有限公司联系电话 创业天下互联网科技有限公司 崇明区互联网教育科技售后服务 南博望互联网科技有限公司 烟台灵鸽互联网科技有限公司 工业互联网展湾科技股份有限公司 无锡工业互联网科技有限公司 美国互联网科技实力 互联网企业科技类企业如何做账 城市宝互联网科技有限公司 半导体行业属于互联网高科技类吗 互联网时代科技型公司的机会 陕西九四连强互联网科技有限公司 艺电能源互联网科技有限公司招聘 互联网科技和医药行业 互联网科技对化妆品行业 科技服务与互联网 上海万想互联网科技 深圳艾佳互联网科技 青海省互联网新科技 中国科技互联网公司收入 互联网和黑科技的看法 广州新华互联网科技学校电竞方面 每天都有哪些好的互联网科技 互联网安防科技感 互联网科技包装股份有限公司上市
0