分片(即sharding)是将数据拆分至不同数据节点的方式。

1、在mongoDB中提供了自动分片的方式,它会根据数据块(chunk)大小的设定,对片键进行拆分;

2、mongoDB配置分片,要配置三类节点,包括:

  2.1 配置节点:存储分片的配置信息,包括由哪些分片、chunk信息等;

  2.2 路由节点:配置完分片后,所有的SQL操作都通过该路由节点,由该路由节点路由至不同的数据节点;

  2.3 分片节点:即数据节点,存储拆分后的数据;分片节点可以使一个普通的数据节点也可以使一个副本集;

下文记录在单机下,配置一个基本的sharding,

配置环境,操作系统: windows 7, mongodb版本: 2.6.4

1、创建文件夹目录 ../dbs/config ../dbs/shard1 ../dbs/shard2

2、启动配置节点  mongod.exe --dbpath ../dbs/config --port 10000

3、启动路由节点 mongod.exe --port 20000 --configdb localhost:10000 --chunksize 1

备注:此处将路由节点与配置节点关联,同时设置chunksize大小,为测试起见设置为1M

4、启动分片节点

mongod.exe --dbpath ../dbs/shard1 --port 30000

mongod.exe --dbpath ../dbs/shard2 --port 40000

5、登陆路由节点,进行配置

mongo.exe localhost:20000

use admin

db.runCommand({"addshard":“localhost:30000”})

db.runCommand({"addshard":"localhost:40000"})//增加分片

db.runCommand({"enablesharding":"test"}); //设置test库为可分片

db.runCommand({"shardcollection":"test.user","key":{"age":1}}); //设置test库中的user集合中age字段为片键

6、测试

登陆路由节点,在该节点中插入大量数据,如20000条use记录,

此时登陆两个数据节点,可以发现皆有数据。

在路由节点中输入命令db.user.stats(),可以查看具体状态,如下:

备注:

一、在实际测试中,我发现该状态是改变的,

1、当未有数据插入时,shards中只有shard0000;此时shard0001中无test数据库;

2、当插入数据到一定量时,shards中有shard0000和shard0001,但此时实际的shard0001的数据库只是建立了test库和user集合,无数据;

3、当再次插入数据时,shard0001中的test库开始可以查到数据;

个人理解如下:

mongodb在shard时会有一个预留量,即当第一个chunk快用完时,会提前准备新的chunk。

二、登陆config节点可以查找相关的配置表,在其config数据库下:

转载于:https://www.cnblogs.com/Fredric-2013/p/4536216.html

mongodb(分片)相关推荐

  1. mongodb分片扩展架构

    目录 一.简介 二.分片集群 三.数据分布策略 四.Mongos访问模式 五.Config元数据 六.分片均衡 参考文档 一.简介 MongoDB目前3大核心优势:『灵活模式』+ 『高可用性』 + 『 ...

  2. 搭建mongodb分片

    搭建mongodb分片 http://gong1208.iteye.com/blog/1622078 Sharding分片概念 这是一种将海量的数据水平扩展的数据库集群系统,数据分表存储在shardi ...

  3. 搭建MongoDB分片集群

    在部门服务器搭建MongoDB分片集群,记录整个操作过程,朋友们也可以参考. 计划如下: 用5台机器搭建,IP分别为:192.168.58.5.192.168.58.6.192.168.58.8.19 ...

  4. MongoDB 分片的原理、搭建、应用

    一.概念: 分片(sharding)是指将数据库拆分,将其分散在不同的机器上的过程.将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处理更大的负载.基本思想就是将集合切成小块,这 ...

  5. mongodb 分片群集配置 及数据迁移

    配置mongodb分片群集(sharding cluster) Sharding cluster介绍 这是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建monod ...

  6. mongodb 启动_精心总结--mongodb分片集群启动与关闭

    概述 网上教程有点坑啊,很多bug,今天刚好涉及到所以抽空整理了下mongodb分片集群启动与关闭方面的教程.希望对大家有点帮助. 基础环境配置 192.168.240.145 测试Nosql服务器1 ...

  7. MongoDb分片集群认证

    本文主要基于已经搭建好的未认证集群,结合上篇Mongodb副本集分片集群模式环境部署(https://www.cnblogs.com/woxingwoxue/p/9875878.html), Mong ...

  8. MongoDB 分片

    MongoDB 分片 高数据量(消耗内存)和高吞吐量(消耗CPU)的数据库应用会对单机的性能造成较大压力,为了解决这些问题,一般采用两种方法:水平扩展(将数据集分布在多个服务器上)和垂直扩展(增加更多 ...

  9. mongodb分片概念和原理-实战分片集群

    一.分片 分片是一种跨多台机器分发数据的方法.MongoDB使用分片来支持具有非常大的数据集和高吞吐量操作的部署. 问题: 具有大型数据集或高吞吐量应用程序的数据库系统可能会挑战单个服务器的容量.例如 ...

  10. 实战:MongoDB 分片集群Shard Cluster 搭建(1台路由节点,3台配置节点,9台分片节点)

    MongoDB 分片集群搭建(分片集群安全认证+SpringBoot访问) 一.搭建要求 一台路由节点 IP地址:192.168.80.110 端口:11111 三套复制集(每个分片节点中的复制集 都 ...

最新文章

  1. 网络推广是什么浅析网站内的链接优化技巧有哪些?
  2. Android之怎么隐藏EditText光标和自动显示键盘
  3. pat 乙级 1041 考试座位号(C++)
  4. 【JS 逆向百例】某易支付密码 MD5+AES 加密分析
  5. 【CCF】201903-1小中大
  6. 深度学习笔记(26) 卷积神经网络
  7. c语言根据变量作用域不同分为,C语言中不同变量的访问方式
  8. Java集合系列之四大常用集合(ArrayList、LinkedList、HashSet、HashMap)的用法
  9. [JavaScript]如何安全地嵌入第三方js – FBML/caja/sandbox/ADsafe简介
  10. mysql主从复制巡检脚本_mysql主从复制监控shell脚本
  11. Biztalk中Host Instance线程控制
  12. C语言汇编-函数调用栈
  13. Android 面(被)试(锤)现场还原~
  14. 径向基神经网络与多层感知器的比较
  15. HTML5超级链接、图片与多媒体
  16. 国内首个“新基建”安全大赛启动了!
  17. 基于Java实现(APP)智能停车场管理系统【100010044】
  18. Python的print输出对齐
  19. 机器人瓦力漫威_章节目录 86、机器人瓦力
  20. 电话号码正则表达式手机固话分机

热门文章

  1. 揭秘:原来腾讯、网易、阿里竟是这样招人的……
  2. 春招冷淡,跳槽无望?
  3. nginx tcp代理_小猿圈linux教程之Nginx负载均衡TCP/UDP流
  4. Go语言学习笔记(八)
  5. d3.js(v5.7)的node与数据匹配(自动匹配扩展函数)
  6. Makefile--伪目标 (三)
  7. 谈谈Java中的集合
  8. HDU 5608 function(莫比乌斯反演 + 杜教筛)题解
  9. Numpy学习笔记(三)
  10. 12)hInstance和hWnd写进子类