文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

CentOS7上的mongodb分片群集

2024-04-02 19:55

关注

CentOS7的mongodb分片群集

简介

高数据量和吞吐量的数据库应用会对单机的性能造成较大的压力,大的查询量会将单机的CPU耗尽,大的数据量对单机的存储压力较大,最终会耗尽系统的内存而将压力转移到磁盘IO上。
mongodb分片是使用多个服务器存储数据的方法,以支持巨大的数据存储和对数据进行操作。分片技术可以满足Mongodb数据量大量增长的需求。,当一台mongodb服务器不足以存储海量数据或不足以提供可接受的读写吞吐量时,就可以通过在多台服务器上分割数据,使得数据库系统能存储和处理更多的数据。

分片的优势

分片群集的组成

  1. Shard:分片服务器,用于存储实际的数据块
  2. configserver:配置服务器,存储整个分片群集的配置信息
  3. routers:路由服务器

分片群集管理的实验

CentOS7上的mongodb分片群集

实验配置图如上

下面开始实验,这里我在一台机器上开启多个实例来代替多台服务器

安装mongodb3.2版本(手工编译安装)

yum -y install openssl-devel

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,4}

mkdir /data/mongodb/logs

touch /data/mongodb/logs/mongodb{1,2,3,4}.log

chmod -R 777 /data/mongodb/logs/*.log

CentOS7上的mongodb分片群集

当mongodb处于频繁访问的状态,如果shell启动进程所占用的资源设置过低,将会产生错误导致无法连接mongodb实例,所以这里需要设置ulimit -n和ulimit -u 的值大于20000
ulimit -n 25000
ulimit -u 25000

CentOS7上的mongodb分片群集

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

port=37017           #端口
dbpath=/data/mongodb/mongodb1    #数据存储位置
logpath=/data/mongodb/logs/mongodb1.log    #日志存储位置
logappend=true   #错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件     
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

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

CentOS7上的mongodb分片群集

vim mongodb2.conf

port=47017               #修改端口号 
dbpath=/data/mongodb/mongodb2       #修改数据存放目录
logpath=/data/mongodb/logs/mongodb2.log      #修改日志存放目录
logappend=true
  fork=true
maxConns=5000
storageEngine=mmapv1
shardsvr=true          #指定分片服务器的模式

vim mongodb3.conf

port=47018
dbpath=/data/mongodb/mongodb3
logpath=/data/mongodb/logs/mongodb3.log
logappend=true
fork=true
maxConns=5000
storageEngine=mmapv1
shardsvr=true

mongod -f mongodb2.conf
mongod -f mongodb3.conf

CentOS7上的mongodb分片群集

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

CentOS7上的mongodb分片群集

这里关于mongos命令不知道该怎么使用,可以查看帮助信息

CentOS7上的mongodb分片群集

mongo

CentOS7上的mongodb分片群集

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

添加分片服务器之后再次查看

CentOS7上的mongodb分片群集

CentOS7上的mongodb分片群集

sh.enableSharding("kgc")

CentOS7上的mongodb分片群集

db.users.createIndex({"id":1}) #对users表创建索引
sh.shardCollection("kgc.users",{"id":1}) #表分片
sh.status() #此时再次查看,就可以已经进行分片处理了

CentOS7上的mongodb分片群集

CentOS7上的mongodb分片群集

到这里mongodb分片群集管理的介绍就全部完成了,如果觉得有帮助记得点赞、打赏下小弟哦!!!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯