NoSql之MongoDB(系列六)

今天讲的是分片技术.当然我们首先得了解什么是分片技术,以下几个网址大致说明了分片的技术概念,其中有一篇还包括了数据库分片(sharding)和数据库分区(Partition)的区别,大家可以先了解下.

http://blog.sina.com.cn/s/blog_541896910100n81d.html

http://blog.csdn.net/galaft/article/details/4059792

http://hi.baidu.com/1babyo/item/236ece6ef25880106995e67f

 

MongoDB分片技术也是一种集群,即Sharding Cluster.

要构建一个 MongoDB Sharding Cluster,需要三种角色:

Shard Server: mongod 实例,用于存储实际的数据块,实际生产环境中一个shard server角色可由几台机器组个一个relica set承担,防止主机单点故障

Config Server: mongod 实例,存储了整个 Cluster Metadata,其中包括 chunk 信息。

Route Server: mongos 实例,前端路由,客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用。

Sharding架构图:

QQ截图20130711095424

 

下面看下具体操作.

 

1:开启config服务器

      先前也说了,mongos要把mongod之间的配置放到config服务器里面,首先开启它,我这里就建立7777端口。

QQ截图20130711112134

 

2: 开启mongos服务器

    命令:mongos --dbpath C:\MongoDB --port 27017 --configdb=127.0.0.1:7777

    这里要注意的是我们开启的是mongos,不是mongod,同时指定下config服务器,默认端口27017。

 

QQ截图20130711112533

 

3:启动mongod服务器

     对分片来说,也就是要添加片了,这里开启E,F盘的mongodb,端口为:2222,3333。

 

QQ截图20130711111936

 

QQ截图20130711112026

 

4: 服务配置

<1> 加入shards,如这里shard是单台服务器,用db.runCommand( { addshard : "<serverhostname>[:<port>]" } )

<2> 激活数据库分片
      命令:db.runCommand( { enablesharding : "<dbname>" } );

<3> collection分片

      要使单个collection也分片存储,需要给collection指定一个分片key

      命令:db.runCommand( { shardcollection : "<namespace>",key : <shardkeypatternobject> });

QQ截图20130711140339 

 

<4> 查看效果

好了,至此我们的分片操作全部结束,接下来我们通过mongos向mongodb插入10w记录,然后通过printShardingStatus命令

查看mongodb的数据分片情况。

QQ截图20130711140959

 

QQ截图20130711141036

 

QQ截图20130711141122

这里主要看三点信息:

  ① shards:     我们清楚的看到已经别分为两个片了,shard0000和shard0001。

  ② databases:  这里有个partitioned字段表示是否分区,这里清楚的看到test已经分区。

  ③ chunks:     这个很有意思,我们发现集合被砍成3段,分区情况为:2:1.

  另外注意use test这个命令,如果不写,后面也会出现意想不到的问题.

转载于:https://www.cnblogs.com/tangzhenjie/p/3184096.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值