MongoDB windows32 部署分片数据集
如果一个数据集很大,很难在一个服务器上放下,那么此时MongoDB的分片技术就派上用场了。
MongoDB创建分片的流程大致如下:
1、创建N(N>=2)个Mongo服务实例作为片节点。
2、创建configsrv服务实例,用来维护meta信息。
3、启动mongos作为路由服务器。
4、设定好数据的分片规则。
1、首先,我们创建2个Mongodb服务实例,作为片节点。
用管理员命令打开cmd,然后输入下面的命令。
Port:27017
Port:27018
2、 创建配置节点服务器:port 27020, 需要在参数中指定 configsvr选项。
3、启动Mongos服务,需指定配置节点服务器地址(configdb选项)。
4、进入port:30000的mongo中
sh.status():查看分片状态。
sh.addShard('本机IP:27017'):添加分片节点
sh.addShard('本机IP:27018'):添加分片节点
可以看到
sh.enableSharding('库'):设定某个库是分片的。
sh.shardCollection('集合全名', 分片字段):指定以某个集合中的特定分片字段来分片。
分片是按照chunsize大小进行的,默认的chunksize大小为80M,我们可以通过config数据库中的settings集合来修改。如下
我们设置chunksize为1M.
分片的过程主要为如果某个片节点的chunk比另一节点多3个及以上则进行移动重新分配。此过程增加了大量的IO开销。为此,我们可以预先定义好分片的规则。如下图,我们在shop库中的user表上用userid定义分片。定义40个chunk,每1000行数据为一个chunk.
此时我们通过sh.status(),可以看到每个片节点上的chunk数瞬间实现了均衡。
好了,到此结束。若有任何问题,可以在评论区留言。谢谢大家。