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}});