MongoDB分片集群搭建
如果不清楚什么是分片集群,可以看我上一篇发布的文章MongoDB分片集群详解
环境信息
以下是我在测试环境中虚拟机的配置,如果你的虚拟机ip不同可以对应的更改,但是要确保这三台虚拟机之间可以ping通
#操作系统:centos6.8
mongodb版本:mongodb-linux-x86_64-rhe162-4.0.6.tgz
#3台虚拟机
192.168.57.201、192.168.57.202、192.168.57.203
#2个分片复制集
分片集群1:(192.168.57.201:27017、192.168.57.202:27017、192.168.57.203:27017)
分片集群2:(192.168.57.201:27018、192.168.57.202:27018、192.168.57.203:27018)
#1个config复制集
config复制集:(192.168.57.201:28018、192.168.57.202:28018、192.168.57.203:28018)
1个mongos节点
config搭建复制集是为了保证config节点的高可用性,避免config挂了,mongos找不到数据存储的地方
搭建mongodb分片复制集
⚠️:如果配置中没有的的文件夹,需要手动创建,例如下面的/opt/mongo/data/db
文件夹
-
shard1集群步骤
-
添加复制集配置文件:mongo.conf,三台虚拟机都要加
# 添加复制集配置文件 fork=true dbpath=/opt/mongo/data/db port=27017 bind_ip=0.0.0.0 logpath=/opt/mongo/logs/mongodb.log logappend=true # 副本集名称 replSet=goat_repl smallfiles=true # 分片集群必须要有的属性 shardsvr=true
-
添加复制集配置文件: mongo2.conf,同样三台虚拟机都要加
# 添加复制集配置文件 fork=true dbpath=/opt/mongo/data/db # 注意这里的port要改为27018 port=27018 bind_ip=0.0.0.0 logpath=/opt/mongo/logs/mongodb.log logappend=true # 副本集2的名称要与副本集1名称不同 replSet=goat_repl2 smallfiles=true # 分片集群必须要有的属性 shardsvr=true
-
去到mongod所在目录下,启动两个副本集
# mongo.conf替换为自己的配置文件路径 ./mongod -f mongo.conf ./mongod -f mongo2.conf
-
登陆副本集,添加初始化配置
# 进入mongo客户端 # 配置goat_repl副本集 ./mongo -port 27017 # 配置goat_repl2副本集 ./mongo -port
-