广告
返回顶部
首页 > 资讯 > 数据库 >CentOS7上的mongodb分片群集
  • 606
分享到

CentOS7上的mongodb分片群集

2024-04-02 19:04:59 606人浏览 泡泡鱼
摘要

Centos7的mongoDB分片群集 简介 高数据量和吞吐量的数据库应用会对单机的性能造成较大的压力,大的查询量会将单机的CPU耗尽,大的数据量对单机的存储压力较大,最终会耗尽系统的内存而将压力转移到磁

Centos7的mongoDB分片群集

简介

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

分片的优势

  • 使用分片减少了每个分片需要处理的请求数,通过水平扩展,群集可以提高自己的存储容量和吞吐量。

  • 使用分片减少了每个分片存储的数据

分片群集的组成

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

分片群集管理的实验

CentOS7上的mongodb分片群集

实验配置图如上

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

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

  • 安装软件环境包

yum -y install openssl-devel

  • 解压缩mongodb软件包

tar zxvf mongodb-linux-x86_64-3.2.1.tgz -C /opt

  • 移动软件包至系统识别的目录下

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

  • 创建mongodb的数据存储(/data/mongodb1、2、3、4、)和日志存储目录(/data/logs)

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分片群集

  • 设置ulimit -n和ulimit -u 的值

当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分片群集

  • 配置分片服务器的实例
    复制生成配置文件

    cp -p mongodb1.conf mongodb2.conf #复制配置服务器的配置文件生成实例2的配置文件
    cp -p mongodb1.conf mongodb3.conf #复制配置服务器的配置文件生成实例2的配置文件

  • 修改实例2、3的配置文件

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分片群集

  • 测试分片功能

    mongos> show dbs
    config 0.031GB
    mongos> use kGC #进入并创建一个use的集合
    switched to db kgc
    mongos> db.users.insert({"id":1,"name":"zhangsan"}) #添加一条数据
    WriteResult({ "nInserted" : 1 })
    mongos> for(var i=2;i<=20000;i++)db.users.insert({"id":i,"name":"zyc"+i}) #使用for循环添加20000条数据
    WriteResult({ "nInserted" : 1 })
    mongos> show dbs #查看表空间就会有一个kgc
    config 0.031GB
    kgc 0.078GB
    mongos> show tables #查看表信息也可以看到users表
    system.indexes
    users

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分片群集管理的介绍就全部完成了,如果觉得有帮助记得点赞、打赏下小弟哦!!!

您可能感兴趣的文档:

--结束END--

本文标题: CentOS7上的mongodb分片群集

本文链接: https://www.lsjlt.com/news/44497.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • CentOS7上的mongodb分片群集
    CentOS7的mongodb分片群集 简介 高数据量和吞吐量的数据库应用会对单机的性能造成较大的压力,大的查询量会将单机的CPU耗尽,大的数据量对单机的存储压力较大,最终会耗尽系统的内存而将压力转移到磁...
    99+
    2022-10-18
  • 在CentOS7上部署MongoDB分片群集
    概述 MongoDB分片是使用多个服务器存储数据的方法,以支持巨大的数据存储和对数据进行操作。分片技术可以满足MongoDB数据量大量增长的需求,当一台MongoDB服务器不足以存储海量数据或不足以提供可接...
    99+
    2022-10-18
  • MongoDB分布式集群分片
    MongoDB高可用集群搭建 一、环境准备 # 启动时需要使用非root用户,所有创建一个mongo用户: useradd mongo # 为mongo用户添加密码: echo 123456 | pass...
    99+
    2022-10-18
  • Mongodb 分片集群部署
    Mongodb分片集群介绍       分片(sharding)是指将数据库拆分,将其分散在不同的机器上的过程。将数据分散到不同的机器上,不需要功...
    99+
    2022-10-18
  • mongodb 分片集群搭建
    环境介绍:...
    99+
    2022-10-18
  • MongoDB分片集群部署
    一、环境说明 1、我们prod环境MongoDB的集群架构是做的分片集群的部署,但是目前我们没有分片,即所有数据都在一个分片上,后期如果数量大,需要分配,集群随时可以分片,对业务方透明2、各个角色的部署情况...
    99+
    2022-10-18
  • 2.MongoDB Sharding Cluster分片集群
    原文:https://www.cnblogs.com/fengyuanfei/p/14495513.html...
    99+
    2018-07-08
    2.MongoDB Sharding Cluster分片集群 数据库入门 数据库基础教程
  • MongoDB分片集群部署详解
     一、环境说明 1、我们prod环境MongoDB的集群架构是做的分片集群的部署,但是目前我们没有分片,即所有数据都在一个分片上,后期如果数量大,需要分配,集群随时可以分片,对业务方透明 2、各...
    99+
    2022-10-18
  • mongodb分片集群怎么搭建
    要搭建一个MongoDB分片集群,您需要遵循以下步骤: 安装MongoDB:在每个节点上安装MongoDB。您可以从MongoD...
    99+
    2023-10-26
    mongodb
  • mongodb 中怎么利用分片集群创建分片集合
    mongodb 中怎么利用分片集群创建分片集合,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.创建数据库,直接use 即可,没有的话,如果你...
    99+
    2022-10-18
  • 搭建高可用MongoDB集群(分片)
    MongoDB基础请参考:https://blog.51cto.com/kaliarch/2044423MongoDB(replica set)请参考:https://blog.51cto.com/kali...
    99+
    2022-10-18
  • mongodb+分片集群+ycsb测试一例
    简介mongodb是很出名的nosql数据库了,属于集合-文档型的特有架构nosql数据库,也是被誉为最像关系型数据库的非关系型数据库,但是不支持事务.由于mongodb原生就支持分布式架构,所以部署简单,...
    99+
    2022-10-18
  • MongoDB 3 分片集群安装配置
    操作系统:CentOS 6   x86_64MongoDB版本:3.4.3集群主机拓扑:主机mongo shardsvr & ReplSetNamemongo configsvr ...
    99+
    2022-10-18
  • MongoDB中怎么搭建分片集群
    本篇文章为大家展示了MongoDB中怎么搭建分片集群,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。MongoDB分片集群基本组件介绍mongos:数据库集群请求的入...
    99+
    2022-10-18
  • mongodb 中怎么设置分片集群
    今天就跟大家聊聊有关mongodb 中怎么设置分片集群,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、先enable sharding,开启数据库...
    99+
    2022-10-18
  • MongoDB中怎么实现分片与集群
    这期内容当中小编将会给大家带来有关MongoDB中怎么实现分片与集群,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、 mongodb分片与集群拓扑图二、分片与集群的部署...
    99+
    2022-10-18
  • centos7下mongodb分片配置
    服务器架构: 序号 角色 ip地址 备注 1 服务器 1...
    99+
    2022-10-18
  • mongodb分片集群生产环境怎么配置
    要配置MongoDB分片集群的生产环境,您需要执行以下步骤:1. 设计分片策略:确定如何划分数据片段和选择分片键。分片键是用于将数据...
    99+
    2023-08-23
    mongodb
  • 深入剖析MongoDB的复制集与分片集群的搭建与优化
    深入剖析MongoDB的复制集与分片集群的搭建与优化概述在大规模应用程序中,数据存储和管理是至关重要的。MongoDB作为一种非关系数据库解决方案,广泛用于处理大规模数据集和高负载应用程序的需求。MongoDB的数据复制和分片功能让用户能够...
    99+
    2023-11-04
    - MongoDB - 复制集 - 分片集群
  • Redis分片集群的实现
    目录1 搭建分片集群1.1 集群结构1.2 准备实例和配置1.3 启动1.4 创建集群1.5 测试2 散列插槽3 集群伸缩3.1 创建节点并添加到集群3.2 转移插槽4 故障转移4....
    99+
    2023-01-30
    Redis 分片集群 Redis 分片
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作