一、关于分片1、什么是分片
高数据量和吞吐量的数据库应用会对单机的性能造成较大压力,大的查询会将单机的CPU耗尽,大的数据量对单机的存储压力比较大,最终会耗尽系统的内存而将压力转移到磁盘IO上。 2、MongoDB分片优势
(1)分配为应对高吞吐量与大数据量提供了方法。 3、MongoDB分片群集的组成
MongoDB分片群集主要有如下三个主要组件: 二、简单部署MongoDB群集
系统环境: 1、源码编译安装MongoDB3.2 yum install openssl-devel -y //安装依赖包 tar zxvf mongodb-linux-x86_64-3.2.1.tgz -C /opt/ //解压源码包 mv mongodb-linux-x86_64-3.2.1/ /usr/local/mongodb //将源码包移动到本地安装软件目录 mkdir -p /data/mongodb/mongodb{1,2,3} //创建多实列库 mkdir /data/mongodb/logs touch /data/mongodb/logs/mongodb{1,2,3}.log //创建对应的日志文件 chmod -R 777 /data/mongodb/logs/*.log //提权 ulimit -n 25000 //设置每个进程可打开的文件数 ulimit -u 25000 //设置最大进程数
2、部署配置服务器(config server) port=37017 //配置服务器的端口号 dbpath=/data/mongodb/mongodb1 //实列库的路径 logpath=/data/mongodb/logs/mongodb1.log //日志路径 logappend=true //开启日志功能 fork=true //开启守护进程 maxConns=5000 //最大端口连接数量 storageEngine=mmapv1 //指定存储引擎 configsvr=true //开启配置服务功能
对配置服务器做优化: sysctl -w vm.zone_reclaim_mode=0 echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag 做对mongodb/bin下的常用命令做一个软件链接 ln -s /usr/local/mongodb/bin/mongo /usr/bin/mongo ln -s /usr/local/mongodb/bin/mongod /usr/bin/mongod
开启配置服务器的实列 cp -p mongodb1.conf mongodb2.conf //复制主配置文件对应第一台shard实列 cp -p mongodb2.conf mongodb3.conf //对应第二台实列 vi mongodb2.conf //修改对应的端口号和相应的路径
mongod -f mongodb2.conf //分别开启分片服务器实列 mongod -f mongodb3.conf
mongo //进入实列,默认端口27017 show dbs //查看配置的大小
sh.addShard("192.168.80.100:47017") //添加分片服务器 sh.addShard("192.168.80.100:47018")
use kgc for(var i=1;i<=50000;i++)db.users.insert({"id":i,"name":"jerry"+i}) //插入数据 注意:ulimit指定了每个进程的文件数量25000,因此要插入大于25000的数据才能体现出分片功能 db.users.find().limit(5) //查看是否创建成功 sh.enableSharding("kgc") //启用数据库分片 sh.status()
db.users.createIndex({"id":1}) //创建索引 sh.shardCollection("kgc.users",{"id":1}) //对数据集合分片id=n就是数据以n为单位分块 sh.status()
sh.addShardTag("shard0000","sales00") sh.addShardTag("shard0001","sales01") 连接配置服务器 db.chunks.findOne() //查看分块信息 db.collections.find() //查看分片集合信息 db.databases.find() //查看分片数据库信息 添加分片服务器 mkdir -p /data/mongodb/mongodb4 touch /data/mongodb/logs/mongodb4.log chmod -R 777 /data/mongodb/logs/*.log cp -p mongodb3.conf mongodb4.conf vi mongodb4.conf
mongod -f mongodb4.conf //开启实例 mongo //进入前端路由服务器 sh.addShard("192.168.80.100:47019") //添加分片服务器 sh.status() //查看分片状态
use admin //进入管理模块 db.runCommand({"removeshard":"192.168.80.100:47019"})
(责任编辑:IT) |