对于已经部署集群的mongodb,当有新的collection需要分片时候:比如我的数据库是 cmdata,原来无需分片,现在数据很大,需要分片。
用admin用户登陆 mongo数据库,运行命令如下:
1.打开mongo shell(我的mongod数据库端口是27022;在本地打开的mongo shell,故省略 --ip)。
D:\MongoDB\Server\3.4\bin>mongo --port 27022
2.切换到admin数据库。
use admin
3.授权。
db.auth("admin", "**************")
4.对数据库启动分片功能;如果此前已经开启了,请跳过此步。
sh.enableSharding("cmdata")
5. 我使用哈希碎片键分片,所以要建立hash索引;此处是在集合sms的 sim字段上建立该索引。
db.sms.ensureIndex({sim:"hashed"})
6.对集合进行分片,对sms集合进行分片,分片键是sms的 sim字段。
sh.shardCollection("cmdata.sms", {sim:"hashed"})