Mongodb集群配置(sharding with replica set) 在10台Linux机器下搭建了一个Replica Sets + Sharding 测试集群环境。
10台Linux机器,配置方案:
1、3个分片sharding
2、每一个分片由3个节点构成1主2备的Replica Sets
3、3个配置节点Configsever
4、1个路由节点Mongos
分片复制集Set1(三个分片节点构成一个复制集):
192.168.101.22:27017 192.168.101.23:27017 192.168.101.24:27017
分片复制集Set2(三个分片节点构成一个复制集):
192.168.101.25:27017 192.168.101.26:27017 192.168.101.27:27017 分片复制集Set3(三个分片节点构成一个复制集):
192.168.101.60:27017 192.168.101.61:27017 192.168.101.62:27017 Configsvc(三个配置服务器节点):
192.168.100.15:10000 192.168.100.15:20000 192.168.100.15:30000 mongos(一个路由节点):
192.168.100.15:40000
详细操作步骤如下:
(1)创建数据和日志文件目录
创建数据文件目录:
192.168.101.22 /mongodb/data
192.168.101.23 /mongodb/data
192.168.101.24 /mongodb/data
192.168.101.25 /mongodb/data
192.168.101.26 /mongodb/data
192.168.101.27 /mongodb/data
192.168.101.60 /mongodb/data
192.168.101.61 /mongodb/data
192.168.101.62 /mongodb/data
192.168.101.63 /mongodb/data
192.168.100.15 /jksoft/data/config_data/config10000
192.168.100.15 /jksoft/data/config_data/config20000
192.168.100.15 /jksoft/data/config_data/config30000
创建日志文件目录:
192.168.101.22 /mongodb/logs
192.168.101.23 /mongodb/logs
192.168.101.24 /mongodb/logs
192.168.101.25 /mongodb/logs
192.168.101.26 /mongodb/logs
192.168.101.27 /mongodb/logs
192.168.101.60 /mongodb/logs
192.168.101.61 /mongodb/logs
192.168.101.62 /mongodb/logs
192.168.101.63 /mongodb/logs
192.168.100.15 /jksoft/logs
(2)创建分片和复制集
配置第一组:
fae01(192.168.101.22)主机:
/mongodb/mongo/bin/mongod --logpath /mongodb/logs/sharding.log --logappend --dbpath /mongodb/data/ --port 27017 --shardsvr --replSet set1 --rest --oplogSize 64 & fae02(192.168.101.23)主机:
/mongodb/mongo/bin/mongod --logpath /mongodb/logs/sharding.log --logappend --dbpath /mongodb/data/ --port 27017 --shardsvr --replSet set1 --rest --oplogSize 64 & fae03(192.168.101.24)主机:
--dbpath /mongodb/data/ --port 27017 --shardsvr --replSet set1 --rest --oplogSize 64 &
启动上述分片节点之后,再使用mongo的命令行来初始化副本集
fae01(192.168.101.22)主机:
/mongodb/mongo/bin/mongo 192.168.101.22:27017/admin
config={_id: 'set1', members:[{_id: 0,host:'192.168.101.22:27017'},{_id:1,host:'192.168.101.23:27017'},{_id:2,host:'192.168.101.24: 27017'}]}
rs.initiate(config);
分片1.txt
配置第二组:
fae04(192.168.101.25)主机:
/mongodb/mongo/bin/mongod --logpath /mongodb/logs/sharding.log --logappend --dbpath /mongodb/data/ --port 27017 --shardsvr --replSet set2 --rest --oplogSize 64 & fae05(192.168.101.26)主机:
/mongodb/mongo/bin/mongod --logpath /mongodb/logs/sharding.log --logappend --dbpath /mongodb/data/ --port 27017 --shardsvr --replSet set2 --rest --oplogSize 64 & fae06(192.168.101.27)主机:
/mongodb/mongo/bin/mongod --logpath /mongodb/logs/sharding.log --logappend --dbpath /mongodb/data/ --port 27017 --shardsvr --replSet set2 --rest --oplogSize 64 &
启动上述分片节点之后,再使用mongo的命令行来初始化副本集
fae04(192.168.101.25)主机:
/mongodb/mongo/bin/mongo 192.168.101.25:27017/admin
config={_id: 'set2', members:[{_id: 0,host:'192.168.101.25:27017'},{_id:1,host:'192.168.101.26:27017'},{_id:2,host:'192.168.101.27: 27017'}]}
rs.initiate(config);
分片2.txt
配置第三组:
test01(192.168.101.60)主机:
/mongodb/mongo/bin/mongod --logpath /mongodb/logs/sharding.log --logappend --dbpath /mongodb/data/ --port 27017 --shardsvr --replSet set3 --rest --oplogSize 64 & test02(192.168.101.61)主机:
--dbpath /mongodb/data/ --port 27017 --shardsvr --replSet set3 --rest --oplogSize 64 & test03(192.168.101.62)主机:
/mongodb/mongo/bin/mongod --logpath /mongodb/logs/sharding.log --logappend --dbpath /mongodb/data/ --port 27017 --shardsvr --replSet set3 --rest --oplogSize 64 &
启动上述分片节点之后,再使用mongo的命令行来初始化副本集
test01(192.168.101.61)主机:
call /mongodb/mongo/bin/mongo 192.168.101.60:27017/admin
config={_id: 'set3', members:[{_id: 0,host:'192.168.101.60:27017'},{_id:1,host:'192.168.101.61:27017'},{_id:2,host:'192.168.101.62: 27017'}]}
rs.initiate(config);
分片3.txt
(4)启动三个配置服务节点Configsvr
192.168.100.15主机:
/jksoft/mongodb/bin/mongod --configsvr --logpath /jksoft/logs/configsvr10000.log --logappend --dbpath /jksoft/data/config_data/config10000/ --port 10000 --shardsvr &
/jksoft/mongodb/bin/mongod --configsvr --logpath /jksoft/logs/configsvr20000.log --logappend --dbpath /jksoft/data/config_data/config20000/ --port 20000 --shardsvr &
/jksoft/mongodb/bin/mongod --configsvr --logpath /jksoft/logs/configsvr30000.log --logappend --dbpath /jksoft/data/config_data/config30000/ --port 30000 --shardsvr &
配置服务.txt
(5)启动一个路由节点mongos
192.168.100.15主机:
/jksoft/mongodb/bin/mongos --configdb 192.168.100.15:10000,192.168.100.15:20000,192.168.100.15:30000 --logpath /jksoft/logs/mongos40000.log --logappend --port 40000 &
路由.txt
(6)配置分片
192.168.100.15主机:
/jksoft/mongodb/bin/mongo 192.168.100.15:40000
> use admin
>
db.runCommand({addshard:"set1/192.168.101.22:27017,192.168.101.23:27017,192.168.101.24: 27017",name:"sharding1"})
>
db.runCommand({addshard:"set2/192.168.101.25:27017,192.168.101.26:27017,192.168.101.27: 27017",name:"sharding2"})
>
db.runCommand({addshard:"set3/192.168.101.60:27017,192.168.101.61:27017,192.168.101.62: 27017",name:"sharding3"})
> printShardingStatus()
配置分片.txt
配置到这里,集群搭建完毕了!
在完成了集群的搭建工作之后,需要做的就是建立一个数据库,建立表,设置分片主键来初始化数据了!