MongoDB windows32 部署分片数据集

如果一个数据集很大,很难在一个服务器上放下,那么此时MongoDB的分片技术就派上用场了。

MongoDB创建分片的流程大致如下:

1、创建N(N>=2)个Mongo服务实例作为片节点。

2、创建configsrv服务实例,用来维护meta信息。

3、启动mongos作为路由服务器。

4、设定好数据的分片规则。


MongoDB windows32 部署分片数据集

1、首先,我们创建2个Mongodb服务实例,作为片节点。

    用管理员命令打开cmd,然后输入下面的命令。

    Port:27017

    MongoDB windows32 部署分片数据集

    Port:27018

    MongoDB windows32 部署分片数据集

2、 创建配置节点服务器:port 27020, 需要在参数中指定 configsvr选项。

    MongoDB windows32 部署分片数据集

3、启动Mongos服务,需指定配置节点服务器地址(configdb选项)

MongoDB windows32 部署分片数据集

4、进入port:30000的mongo中

    sh.status():查看分片状态。

    sh.addShard('本机IP:27017'):添加分片节点

    sh.addShard('本机IP:27018'):添加分片节点

    可以看到

MongoDB windows32 部署分片数据集

    sh.enableSharding('库'):设定某个库是分片的。

    sh.shardCollection('集合全名', 分片字段):指定以某个集合中的特定分片字段来分片。

MongoDB windows32 部署分片数据集

    分片是按照chunsize大小进行的,默认的chunksize大小为80M,我们可以通过config数据库中的settings集合来修改。如下

MongoDB windows32 部署分片数据集      我们设置chunksize为1M.

    分片的过程主要为如果某个片节点的chunk比另一节点多3个及以上则进行移动重新分配。此过程增加了大量的IO开销。为此,我们可以预先定义好分片的规则。如下图,我们在shop库中的user表上用userid定义分片。定义40个chunk,每1000行数据为一个chunk.

MongoDB windows32 部署分片数据集

此时我们通过sh.status(),可以看到每个片节点上的chunk数瞬间实现了均衡。

MongoDB windows32 部署分片数据集

好了,到此结束。若有任何问题,可以在评论区留言。谢谢大家。