文章目录
MongoDB集群搭建测试(切片+副本集)
问题描述
应工作需要,搭建MongoDB数据库集群进行测试(切片+副本集)
环境准备
服务器
还是这三台(为什么要用还是…)
- 10.0.0.192
- 10.0.0.193
- 10.0.0.194
角色分配
在三台机器搭建集群,可以有如下架构:
- 三组(切片+副本集), 切片组间端口区分
- 一组(配置服务器+副本集), 同其他模块端口区分
- 三实例mongos服务,提供路由功能
1. Shard:
- shard1(副本集1): 由shard11、shard12、shard13组成,提供Sharding中第一组切片功能。
- shard2(副本集2): 由shard21、shard22、shard23组成,提供Sharding中第二组切片功能。
- shard3(副本集3): 由shard31、shard32、shard233组成,提供Sharding中第三组切片功能。
副本集可以理解为一种模式,每组切片中由一主一从结构,构成一组副本集。(剩下一个实例做什么呢?)。
每组切片中还需配置一个仲裁节点,该实例不提供数据保存,仅参与选举投票过程。
2. ConfigSvr(配置服务器):
- 由c1、c2、c3组成,用于储存集群元数据。
元数据包含:
- shard节点的配置信息
- chunk的shard key范围
- chunk的各shard分布情况
- 集群DB、collection的sharding配置信息等
- mongos: 由三个配置相同的实例组成,提供客户端连接并路由请求到对应切片。
表格示意
角色名称 | 10.0.0.192 | 10.0.0.193 | 10.0.0.194 |
---|---|---|---|
shard1 | shard11:10004(主) | shard12:10004(从) | shard13:10004(仲裁) |
shard2 | shard21:10005(从) | shard22:10005(仲裁) | shard23:10005(主) |
shard3 | shard31:10006(仲裁) | shard32:10006(主) | shard33:10006(从) |
config | c1:10007(主) | c2:10007(从) | c3:10007(从) |
mongos | mongos:10008 | mongos:10008 | mongos:10008 |
实施部署
软件安装
# 使用公司内提供的mongo-3.6.10安装包,三台节点全部安装
$ wget http://10.0.0.156/rpm/7/mongo-3.6.10.el7-1.x86_64.rpm
# 需要同时安装一些依赖包
$ yum -y install mongo-3.6.10.el7-1.x86_64.rpm
目录说明
- 安装路径
/usr/local/mongodb/
- 配置文件
/usr/local/mongodb/etc/
config.conf
: ConfigSvr服务配置shard.conf
: shard服务配置- 单节点多切片实例:需要拷贝多个配置启动
- 只做副本集模式:若配置中存在
sharding:
配置块,应注释
mongos.conf
: mongos服务配置
- 启动脚本
/usr/local/mongodb/script/
start_mongod.sh
: 负责切片单个实例启动,需对应切片配置名start_config.sh
: 负责configSvr实例启动,需要对应配置名start_mongos.sh
: 负责mongos实例启动,需要对应配置名
- 日志文件
/data/logs/mongodb/
config.log
-> ConfigSvrshard/access.log
-> Shardroute.log