启动集群分片:
要对一个集合分片,首先你要对这个集合的
数据库启用分片,执行如下命令:
sh.enableSharding("test")
mydb被配置成启用分片后,配置信息是存放在配置服务器的数据库config的databases集合里!
片键:片键是集合的一个键,MongoDB根据这个键拆分数据。例如:username 。在启用分片之前,先在希望作为
片键的键上创建索引:
db.users.ensureIndex({"username":1})
mydb的users集合被配置成启用分片后,配置信息是存放在配置服务器的数据库config的collections集合里!
对
集合分片:
sh.shardCollection("test.users",{"username":1})
路由服务器是不会存放配置信息(不用配置dbpath也是这个原因,但会缓存配置服务器上的配置!)
mongos路由会在后台对各片进行负载均衡,直至各片的chunks块数量相等!。分片的balance,可以在规定时间执行这个操作,推荐在业务非繁忙的时候做。
下面来做一下数据库,在片上均衡实验(数据库为分片情况)
mongos> use mydb1
switched to db mydb1
mongos> db.mytest.insert({name:"zhang"});
WriteResult({ "nInserted" : 1 })
mongos> sh.status();
--- Sharding Status ---
sharding version: {
"_id" : 1,
"minCompatibleVersion" : 5,