mongodb sharding 试用(一)

知识点:mongoDB Sharding 是数据自动分片。数据自动在不同的数据服务器中迁移。迁移触发条件有数据量大小与访问流量。

1. 建立分片集群分为两个部分:一是启动相应的mongoDB服务,二是决定怎么切分数据。

2. 一个能够提供服务的分片集群主要由三部分构成:

  (一)配置服务器:就是一个一般的mongoDB服务进程。它负责存储集群的数据与片的对应关系。配置信息落地。

  (二)路由服务器:路由请求与转发结果集。路由服务器知道对应的数据存储在什么位置。它缓存配置服务器的信息但不落地,从配置服务器同步数据。

  (三)数据服务器:真正存储数据的服务进程。它是一般的mongoDB服务进程。

3. 建立分片集群

  1. 首先启动配置服务进程。因为路由服务器需要从配置服务器同步数据,因此要早路由服务进程启动。

   mongod --dbpath /exports/dbs/config --port 20000

  2. 启动路由服务器,指定对应的配置服务器位置。路由服务进程并不需要指定数据文件目录,它并不存储数据,只是缓存配置服务进程的数据。

   mongos --port 30000 --configdb localhost:20000

  3. 启动数据服务器,这个才是真正存储数据的mongodb进程。(刚开始先使用一个,之后再添加)

   mongod --dbpath /exports/dbs/shard1 --port 27017

  4. 连接路由服务器开启分片。并且需要指定到某个库的某个集合。

   mongo localhost:30000/admin

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

  5. 连接路由服务器,指定需要分片的某个库中的某个集合。并指定分片的健。

   db.runCommand({enablesharding:"foo"});

   db.runCommand({shardcollection:"foo.bar",key:{_id:1}});

posted @ 2012-12-21 18:14  雪刚  阅读(395)  评论(0编辑  收藏  举报