服务器3台:Windows Server 2016
版本:MongoDB server version v4.0.13
MongoDB架构:
服务器 | server 1 | server 2 | server 3 | ||
---|---|---|---|---|---|
副本集 | 副本集 | 副本集 | 端口 | replSet | |
IP | 192.168.45.130 | 192.168.45.131 | 192.168.45.132 | ||
分片1 | shard1 | shard1 | shard1 | 27017 | shard1 |
分片2 | shrad2 | shrad2 | shrad2 | 27018 | shrad2 |
分片3 | shard3 | shard3 | shard3 | 27019 | shard3 |
config | con | con | con | 27000 | con |
route | mongos | mongos | mongos | 20000 |
集群搭建:
一、分片搭建
1、新建文件夹存放数据,每个shard都创建如下文件夹
mkdir c:\mongodb\data\shard1\db
mkdir c:\mongodb\data\shard1\dblog
2、创建shard分片,每台服务器打开mongod服务
C:\MongoDB\Server\bin\mongod.exe --shardsvr --replSet shard1 --port 27017 --dbpath C:\MongoDB\data\shard1\db\ --logpath C:\MongoDB\data\shard1\dblog\shard1.log --logappend --bind_ip 192.168.45.130,127.0.0.1
C:\MongoDB\Server\bin\mongod.exe --shardsvr --replSet shard2 --port 27018 --dbpath C:\MongoDB\data\shard2\db\ --logpath C:\MongoDB\data\shard2\dblog\shard2.log --logappend --bind_ip 192.168.45.130,127.0.0.1
C:\MongoDB\Server\bin\mongod.exe --shardsvr --replSet shard3 --port 27019 --dbpath C:\MongoDB\data\shard3\db\ --logpath C:\MongoDB\data\shard3\dblog\shard3.log --logappend --bind_ip 192.168.45.130,127.0.0.1
shardsvr配合config 与mongos使用
replSet 定义副本集名称
port 端口
dbpath 数据存放路径
logpath 日志存放
bind_ip 服务器对外服务地址
check mongod 成功与否,运行查看所有shard
C:\MongoDB\Server\bin\mongo.exe --port 27017
3、端口27017进入,创建shard1副本集
进入不同端口激活shard1\shard2\shard3
C:\MongoDB\Server\bin\mongo.exe --port 27017
config = {_id:"shard1",members:[{_id:0,host:"192.168.45.130:27017"},{_id:1,host:"192.168.45.131:27017"},{_id:2,host:"192.168.45.132:27017"}]}
rs.initiate(config)
二、config\route搭建
1、每台服务器创建config文件夹,存放config信息
mkdir c:\mongodb\data\config
2、配置config srever 每台服务器运行以下命令
C:\MongoDB\Server\bin\mongod.exe --configsvr --dbpath C:\MongoDB\data\config\ --port 27000 --logpath C:\MongoDB\data\config\config.log --logappend --bind_ip 192.168.45.130,127.0.0.1 --replSet con
3、创建con副本集,运行以下命令
C:\MongoDB\Server\bin\mongo.exe --port 27000
config = {_id:"con",members:[{_id:0,host:"192.168.45.130:27000"},{_id:1,host:"192.168.45.131:27000"},{_id:2,host:"192.168.45.132:27000"}]}
rs.initiate(config)
4、创建route,每台服务器运行以下命令
C:\MongoDB\Server\bin\mongos --configdb con/192.168.45.130:27000,192.168.131:27000,192.168.45.132:27000 --port 20000 --logpath C:\MongoDB\data\route\mongos.log --logappend
三、分片集群
连接mongos服务器,分片加入到mongos
C:\MongoDB\Server\bin\mongo --port 20000
use admin
db.runCommand({addshard:'shard1/192.168.45.130:27017,192.168.45.131:27017,192.168.45.132:27017'})
db.runCommand({addshard:'shard2/192.168.45.130:27018,192.168.45.131:27018,192.168.45.132:27018'})
db.runCommand({addshard:'shard3/192.168.45.130:27019,192.168.45.131:27019,192.168.45.132:27019'})
创建分片功能,执行分片数据集
db.runCommand({enablesharding:'testdb'})
db.runCommand({shardcollection:'testdb.users',key:{_id:1}})
四、测试