分片,指的就是把数据拆分,将其分散到不同机器上的过程。MongoDB支持自动分片,对应用而言,好像始终和一个单机的服务器交互一样。

分片和复制
复制是让多台服务器拥有相同的数据副本,而分片是每个分片都拥有整个数据集的一个子集,且相互是不同的数据,多个分片的数据合起来构成整个数据集。

配置服务器

配置服务器就是普通的mongod服务器,保存整个集群和分片的元数据:集群中有哪些分片,分片的是哪些集合,以及数据块的分布。它极其重要,必须启用日志功能。

在大型的集群中,建议配置3台配置服务器,就足够用了。启动配置服务器的方式:

1、先创建几个存放数据的文件夹,比如在前面的dbs下面创建confdb文件夹,然后在confdb下面创建confdb1,confdb2,confdb3文件夹;
同理在前面的logs下面创建conflogs文件夹

2、然后分别启动这三个配置服务器,使用—configsvr指明是配置服务器,如下:

./mongod --configsvr --dbpath ../dbs/confdb1 --logpath ../logs/conflogs/conflog1 --fork --port 

3、--configsvr默认的端口为27019,默认的数据目录为/data/configdb,可以使用--dbpath 和--port自己定义。

启动mongos进程

./mongos --configdb localhost:,localhost:,localhost: --logpath ../logs/conflogs/mongoslog --fork

将副本集转换成为分片

4、如果没有副本集,按照前面讲的创建并初始化一个;如果有一个副本集,就打开相应的服务器,把副本集运行起来

5、连接到mongos,use admin 也就是切换到使用admin的数据库

6、把副本集转换成为分片,不用把所有副本集的成员都写出来,mongos会自动检查整个副本集

sh.addShard("myrepl/127.0.0.1:20001");

7、使用sh.status() 察看状态,

8、重复步骤,创建一个新的副本集,加入到分片中来。

数据分片

9、对数据库启用分片

sh.enableSharding(“数据库名”);

10、然后指定分片的集合,还有分片的键,如果对已经存在的集合进行分片,那么指定的这个
分片键上必须有索引;如果集合不存在,mongos会自动在分片键上创建索引。例如:

sh.shardCollection("rep1.users",{"userId":});

删除分片
通常来说,不应从集群中删除分片,即使加多了,也可以留在那儿,以后会用得上,如果非要删除分片的话,可以按照如下操作:
1、首先保证均衡器是打开的,因为删除分片的时候,均衡器会负责将待删除分片的数据迁移至其它分片
2、执行removeShard命令,示例如下:
use admin 最好切换到mongos的admin数据库再操作,然后:

db.runCommand({"removeShard":"myrep2"});

如需要查看删除情况,再次执行上一条命令,直到remaining的chunks为0。
3、所有块完成转移过后,如果仍有数据库将该分片作为主分片,需要在删除分片前将这
些数据库移除掉,通常会提示:“note” : “you need to drop or movePrimary these databases”,示例如下:

db.adminCommand({"movePrimary":"mydb2","to":"myrep1"});

4:然后再次执行removeShard命令,直到状态显示completed

Mongo DB分片的更多相关文章

  1. Mongo DB 2.6 需要知道的一些自身限定

    在现实的世界中,任何事情都有两面性,在程序的世界中,亦然! 我们不论是在使用一门新的语言,还是一门新的技术,在了解它有多么的让人兴奋,让人轻松,多么的优秀之余,还是很有必要了解一些他的局限性,方便你在 ...

  2. Java从入门到精通——数据库篇Mongo DB GridFS文件系统

    一.概述    GridFS是MongoDB的一种存储机制,用来存储大型二进制文件. 优点: 1.使用GridFS能够简化你的栈.如果已经在使用MongoDB,那么可以使用GridFS来代替独立的文件 ...

  3. Mongo db 简单介绍及命令笔记

    首先来了解下什么是MongoDB ? MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为W ...

  4. mongo DB for C#

    (1)Download the MongoDB C#驱动. http://www.nuget.org/packages/mongocsharpdriver/. (2) Add Reference to ...

  5. Mongo DB Study: first face with mongo DB

    Mongo DB Study: first face with mongo DB 1.  study methods: 1.  Translate: I am the mongo DB organiz ...

  6. mongo db 分享 ppt

    在公司内部的mongo db的ppt.初步进阶 http://files.cnblogs.com/files/yuhan-TB/mongoDB.pptx

  7. Mongo DB 安装-及分布式集群部署(初稿)

    一.安装步骤, 1, 下载最新的Mongo DB数据库:http://www.mongodb.org/downloads?_ga=1.44426535.2020731121.1421844747\ 下 ...

  8. mongo db 使用方法

    1 下载 mogodb http://www.mongodb.org/display/DOCS/Downloads 2 打开服务 我安装在e盘下了 可以指定数据文件位置 到 E:\mongoDB\mo ...

  9. mysql 和 mongo db 语法对比

    本文描述了MySQL中的常用SQL语句在MongoDB中的写法,如果你长期使用MySQL而对MongoDB跃跃欲试,这篇简单的文章可以帮助你更快的进入角色.查询:MySQL:SELECT * FROM ...

随机推荐

  1. PaintCode 教程:矢量图轻松转换成CoreGraphics代码

    本文译自Ranwenderlich的这篇:http://www.raywenderlich.com/100281/paintcode-for-designers-getting-started Pai ...

  2. 切换node版本,node-sass安装报错

    一.问题 经常在开发过程中,会遇到切换node环境的情况,这时候切换之后,npm安装不了node-sass,有可能是之前把node-sass安装地址修改了,导致翻墙翻不了,所以安装不了. 二.解决 1 ...

  3. HTML中调用带有SoapHeader头的WebService的两种方法

    第一种: function CallWebMethodWithHeader() { var soapXML = "<soap:Envelope xmlns:xsi='http://ww ...

  4. Cross-Site Request Forgery (CSRF)

    https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF) Overview Cross-Site Request Forger ...

  5. LTDC/DMA2D——液晶显示

    1.显示器的基本参数 (1) 像素像素是组成图像的最基本单元要素,显示器的像素指它成像最小的点. (2) 分辨率一些嵌入式设备的显示器常常以“行像素值 x列像素值”表示屏幕的分辨率.如分辨率 800x ...

  6. 制作A4纸打印的网页像素大小设置(转)

    公司内做系统,要用A4纸打印东西,A4纸标准时mm,换算成像素不知道.网上找找,找到一篇文章,转一下,备用. A4纸的尺寸是210mm*297mm,也就是21.0cm*29.7cm,而1英寸=2.54 ...

  7. [Java复习] 缓存Cache part1

    1. 在项目中是如何使用缓存的?为什么要用?不用行不行?用了可能会有哪些不良后果? 结合项目业务,主要两个目的:高性能和高并发.缓存走内存,天然支持高并发. 不良后果: 缓存与DB双写不一致 缓存雪崩 ...

  8. java调用科大讯飞流式(websocket)语音识别接口

    要使用讯飞的能力,需先注册讯飞开发平台账号(讯飞官网参见https://www.xfyun.cn/). 再创建应用,点击右上角的控制台 -> 创建新应用: 每个应用都有一个appId,由这个ap ...

  9. 【422】Insert often-used pieces of text in gedit

    Ref: Snippets Enable Snippets Plugin Browse Snippets Using Snippets To insert a nippet into your cur ...

  10. PAT 甲级 1051 Pop Sequence (25 分)(模拟栈,较简单)

    1051 Pop Sequence (25 分)   Given a stack which can keep M numbers at most. Push N numbers in the ord ...