MongoDB 分片操作

添加分片

use admin

//添加分片节点,每个分片都是一个副本集【allowLocal:true仅仅开发时才将分片配置到本地,生产时不能这样】

db.runCommand({addshard:"localhost:9335",allowLocal:true})

db.runCommand({addshard:"localhost:9336",allowLocal:true})

db.runCommand({addshard:"localhost:9337",allowLocal:true,”maxSize”:20000})   注意:还可以为不同分片设置大小”maxSize”:20000(20gb)

//要分片的数据库

db.runCommand({enablesharding:"mydb"})

//设置要分片的集合:users集合,name字段为key来分片

db.runCommand({shardcollection:"mydb.users",key:{name:1}})

db.runCommand({shardcollection:"mydb.users",key:{_id:1,name:1,name:1}})      【如果出现"errmsg" : "please create an index that starts with the shard key before sharding.",请创建索引】

查看分片结果

//查看分区情况

use mydb

db.users.getShardDistribution()

db.users.stats();

向已经分片的数据中,再次添加分片

db.runCommand({addshard:"localhost:9337",allowLocal:true})     会自动平衡数据

删除分片

db.runCommand({removeshard:"localhost:9335"})

db.runCommand({removeshard:"localhost:9336"})

db.runCommand({removeshard:"localhost:9337"})

//【如果删除的是主节点,还需要】

db.runCommand({"moveprimary" : "mydb","to" : "localhost:9336"})

//【删除完后还需要在执行一次db.runCommand({removeshard:"localhost:xxxx"})   才能完整删除】

//【观察删除情况:】

use admin

db.printShardingStatus()

//【这种方式不能删除所有分片,最后一个分片是不能删除的】

MongoDB 分片操作

时间: 2024-11-07 17:16:14

MongoDB 分片操作的相关文章

MongoDB分片存储的集群架构实现

MongoDB分片存储的集群架构实现 如果需要存储大量数据,或者系统的读写吞吐量很大的时候,单个server就很难满足需求了.这个时候我们可以使用MongoDB的分片机制来解决这些问题. 分片的基本概念 分片(sharding)是一种水平扩展(horizontal scaling)的方式,把一个大的数据集分散到多个片服务器上,所有的片服务器将组成一个逻辑上的数据库来存储这个大的数据集.分片对用户(应用层)是透明的,用户不会知道数据很被存放到哪个片服务器上. 这种方式有两个好处: 分片之后,每个片

Mongodb分片(Sharding)功能实现

MongoDB 分片概述 分片 在Mongodb里面存在另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求. 当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量.这时,我们就可以通过在多台机器上分割数据,使得数据库系统能存储和处理更多的数据. 为什么使用分片 复制所有的写入操作到主节点 延迟的敏感数据会在主节点查询 单个副本集限制在12个节点 当请求量巨大时会出现内存不足. 本地磁盘不足 垂直扩展价格昂贵 MongoDB分片 下图展

Bugsnag的MongoDB分片集群使用经验

Bugsnag是一家为移动应用开发者提供实时的Bug追踪及检测服务的创业公司,Bugsnag已经使用MongoDB存储超过TB级的文档数据.从Bugsnag的第一个版本开始他们就使用MongoDB存储业务数据.近日,Bugsnag的工程师Simon Maynard在博客上分享了他们的MongoDB分片集群经验,并开源了几个他们常使用的脚本. 带标签的分片(Tag Aware Sharding) 带标签的分片是MongoDB 2.2版本中引入的新特性,此特性支持人为控制数据的分片方式,从而使数据存

MongoDB 分片

分片 在Mongodb里面存在另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求. 当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量.这时,我们就可以通过在多台机器上分割数据,使得数据库系统能存储和处理更多的数据. 为什么使用分片 复制所有的写入操作到主节点 延迟的敏感数据会在主节点查询 单个副本集限制在12个节点 当请求量巨大时会出现内存不足. 本地磁盘不足 垂直扩展价格昂贵 MongoDB分片 下图展示了在MongoDB中使用

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

1.分片介绍 分片(sharding)是将数据拆分,将其分散存到不同机器上的过程.MongoDB 支持自动分片,可以使数据库架构对应用程序不可见.对于应用程序来说,好像始终在使用一个单机的 MongoDB 服务器一样,另一方面,MongoDB 自动处理数据在分片上的分布,也更容易添加和删除分片. 请记住:复制是让多台服务器拥有同样的数据副本,每一台服务器都是其他服务器的镜像,而每一个分片都与其他分片拥有不同的数据子集. 通常,分片可以用来: 增加可用的内存 增加可用的磁盘空间 减轻单台服务器的负

NoSql数据库初探-mongoDB读操作

MongoDB以文档的形式来存储数据,此结果类似于JSON键值对.文档类似于编程语言中将键和值关联起来的结构(比如:字典.Map.哈希表.关联数组).MongoDB文档是以BOSN文档的形式存在的.BSON是JSON附加了类型信息的一种二进制的表现形式. 文档中的字段可以是任何BSON类型,比如(文档类型.数组.文档数组) MongoDB将所有文档存储在collection中,collection是一组相关的文档集合,这一组文档集合拥有共同的索引,collection类似于关系型数据库中的表.

【MangoDB分片】配置mongodb分片群集(sharding cluster)

配置mongodb分片群集(sharding cluster) Sharding cluster介绍 这是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建monodb系统. 要构建一个 MongoDB Sharding Cluster,需要三种角色: Shard Server: mongod 实例,用于存储实际的数据块,实际生产环境中一个shard server角色可由几台机器组个一个relica set承担,防止主机单点故障 Config Server: m

MongoDB分片集群

Mongodb Sharding分片集群 OS                      CentOS6.5 192.168.3.100 server1 configport=27017 192.168.3.100 server1 mongosport=27018 192.168.3.101 node1 mongodport=27018 192.168.3.102 node2 mongodport=27018 #CentOS安装mongo软件包 yum -y install mongodb mo

搭建mongodb分片

搭建mongodb分片 http://gong1208.iteye.com/blog/1622078 Sharding分片概念 这是一种将海量的数据水平扩展的数据库集群系统,数据分表存储在sharding的各个节点上,使用者通过简单的配置就可以很方便地构建一个分布式MongoDB集群. MongoDB 的数据分块称为 chunk.每个 chunk 都是 Collection 中一段连续的数据记录,通常最大尺寸是 200MB,超出则生成新的数据块. 要构建一个 MongoDB Sharding C