MongoDB集群高可用实战之Shard Cluster搭建
上篇简单介绍了分片的原理,此文实践Shard Cluster搭建。具体参考Deploy a Sharded Cluster — MongoDB Manual。
环境准备:165作为config结点集群,163作为shard集群创建3个shard集群,167作为路由节点。
1、配置 并启动config 节点集群
参考Deploy a Sharded Cluster — MongoDB Manual和MongoDB集群高可用实战之复制集replica sets搭建 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com),同时添加标志表示该集群是config Server,如下:
/etc/mongod_config1.conf
2、配置shard集群
参考同上。建立两个复制集,如下:
1)myShard1Set
2)myShard2Set
3、配置和启动路由节点
增加mongos相关配置,可参考官网同上亦可通过mongos --help进行查看
启动路由
mongos -f /etc/mongos.conf
链接过程中一直出于静止状态,查看日志
使用telnet 查看该ip/port
那就是防火墙的问题了,解决:
再次启动:
4、mongos(路由)中添加分⽚节点
进入路由mongos:
5、开启数据库和集合分⽚(指定⽚键)
继续使⽤mongos完成分⽚开启和分⽚⼤⼩设置,如下:
1)为数据库开启分⽚功能:sh.enableSharding("<database>")
2)为指定集合开启分⽚功能:sh.shardCollection("<database>.<collection>",{"⽚键字段名如 name":索引说明})
sh.shardCollection("<database>.<collection>", { <shard key field> : "hashed" } ) //hash分片
sh.shardCollection("<database>.<collection>", { <shard key field> : 1, ... } ) //基于范围分片
对于已存在的数据库,集合开启分片功能会失败提示已存在这样的集合。
6、向集合中插⼊数据测试
7、验证分⽚效果
这个shard的总数为mongos中增量的数量1000。