分片(即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数据库下:

mongodb(分片)的更多相关文章

  1. MongoDB 分片管理(不定时更新)

    背景: 通过上一篇的 MongoDB 分片的原理.搭建.应用 大致了解了MongoDB分片的安装和一些基本的使用情况,现在来说明下如何管理和优化MongoDB分片的使用. 知识点: 1) 分片的配置和 ...

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

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

  3. MongoDB分片简单实例

    分片 在Mongodb里面存在另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求. 当MongoDB存储海量的数据时,一台机器可能不足以存储数据也足以提供可接受的读写吞吐量.这时,我 ...

  4. (转)MongoDB分片实战 集群搭建

    环境准备 Linux环境 主机 OS 备注 192.168.32.13 CentOS6.3 64位 普通PC 192.168.71.43 CentOS6.2 64位 服务器,NUMA CPU架构 Mo ...

  5. 搭建mongodb分片

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

  6. mongodb分片

    在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的.而mongodb主打的就是海量数据架构,他不能解决海量数据怎么行!不行!“分片”就用这个来 ...

  7. mongodb 分片群集(sharding cluster)

    实际环境架构 分别在3台机器运行一个mongod实例(称为mongod shard11,mongod shard12,mongod shard13)组织replica set1,作为cluster的s ...

  8. MongoDB基础教程系列--第九篇 MongoDB 分片

    1.分片介绍 分片(sharding)是将数据拆分,将其分散存到不同机器上的过程.MongoDB 支持自动分片,可以使数据库架构对应用程序不可见.对于应用程序来说,好像始终在使用一个单机的 Mongo ...

  9. mongodb分片部署

    Mongodb 分片部署 配置mongodb集群,比如 在3个server上配置 3 shard的Mongodb集群: 架构: 1.每片数据需要3个mongod server,2个为主从数据节点:1个 ...

  10. MongoDB分片原理篇

    MongoDB分片 为什么需要Sharded cluster? MongoDB目前3大核心优势:『灵活模式』+ 『高可用性』 + 『可扩展性』,通过json文档来实现灵活模式,通过复制集来保证高可用, ...

随机推荐

  1. 提交ajax验证用户名是否已存在

    前端页面 <tr> <td class="p_label"><span class="notnull"></span& ...

  2. 读 《.Net 之美》解析.Net Remoting (应用程序域)-- Part.1

    读 <.Net 之美>解析.Net Remoting (应用程序域)-Part1 理解 .Net Remoting 前言: 看张子阳老师的文章,总是给自己很大的信心,这个专题基本上以张老师 ...

  3. javascript eval和JSON之间的联系

    原出处:http://www.jb51.net/article/21688.htm eval函数的工作原理 eval函数会评估一个给定的含有JavaScript代码的字符串,并且试图去执行包含在字符串 ...

  4. Docker-3:Data Volume

    Sometimes,  applications need to share access to data or persist data after a container is deleted. ...

  5. survey on Time Series Analysis Lib

    (1)I spent my 4th year Computing project on implementing time series forecasting for Java heap usage ...

  6. js打开新页面

    var PostNewPage=function (url, params) { var temp_form = document.createElement("form"); t ...

  7. 关于HTTP session随笔

    1).访问*.html的静态资源因为不会被编译为Servlet,也就不涉及session的问题. 2).当JSP页面没有显式禁止session的时候,在打开浏览器第一次请求该jsp的时候,服务器会自动 ...

  8. 在DW 5.5+PhoneGap+Jquery Mobile下搭建移动开发环境

    移动设备应用开发有多难,只要学会HTML5+Javascript就可以.用Dreamweaver5.5+PhoneGap+Jquery Mobile搭建移动开发环境,轻轻松松开发你自己的应用.让你用普 ...

  9. spring官网改版后,如何下载jar包

    http://repo.springsource.org/libs-release-local/org/springframework 通过以上地址,可树型查看所有发布的包 问题是,官网页面上为何找不 ...

  10. emmet插件快捷键:

    概念:emmet插件是用在编辑器里面的一个可以快速编写代码的插件,比如sublime text中,就可以用它来快速创建代码,本文主要是在sublime text的编辑器中做的测试代码. 一.html ...