搭建过程
配置config集群搭建
在MongoDB的bin同级目录中创建配置文件,节点1 confifig-17017.conf
mkdir config vi config_17017.conf
配置下面信息
数据库文件位置
dbpath=config/config1
日志文件位置
logpath=config/logs/config1.log
以追加方式写入日志
logappend=true
是否以守护进程方式运行
fork = true bind_ip=0.0.0.0 port = 17017
表示是一个配置服务器
configsvr=true
配置服务器副本集名称
replSet=configsvr
创建文件
mkdir config1 logs
启动配置文件
./bin/mongod -f config/config_17017.conf
节点2 confifig-17018.conf
数据库文件位置
dbpath=config/config2
日志文件位置
logpath=config/logs/config.log
以追加方式写入日志
logappend=true
是否以守护进程方式运行
fork = true bind_ip=0.0.0.0 port = 17018
表示是一个配置服务器
configsvr=true
配置服务器副本集名称
replSet=configsvr
节点3 confifig-17019.conf
数据库文件位置
dbpath=config/config3
日志文件位置
logpath=config/logs/config3.log
以追加方式写入日志
logappend=true
是否以守护进程方式运行
fork = true bind_ip=0.0.0.0 port = 17019
表示是一个配置服务器
configsvr=true
配置服务器副本集名称
replSet=configsvr
然后复制config_17017.conf创建17018和17019的文件跟目录信息
./bin/mongod -f config/config-17017.conf ./bin/mongod -f config/config-17018.conf ./bin/mongod -f config/config-17019.conf
进入任意节点的mongo shell 并添加 配置节点集群 注意use admin
./bin/mongo —port 17017 use admin var cfg ={“_id”:”configsvr”, “members”:[ {“_id”:1,”host”:”192.168.209.140:17017”}, {“_id”:2,”host”:”192.168.209.140:17018”}, {“_id”:3,”host”:”192.168.209.140:17019”}]
};
rs.initiate(cfg)
配置shard集群
在config同级目录中创建shard文件,然后搭建shard1和shard2,shard1集群搭建37017到37019
dbpath=shard/shard1/shard1-37017
bind_ip=0.0.0.0
port=37017
fork=true
logpath=shard/shard1/shard1-37017.log
replSet=shard1
shardsvr=true
dbpath=shard/shard1/shard1-37018
bind_ip=0.0.0.0
port=37018
fork=true
logpath=shard/shard1/logs/shard1-37018.log
replSet=shard1
shardsvr=true
dbpath=shard/shard1/shard1-37019
bind_ip=0.0.0.0
port=37019
fork=true
logpath=shard/shard1/logs/shard1-37019.log
replSet=shard1
shardsvr=true
./bin/mongo —port=37017 启动每个mongod 然后进入其中一个进行集群配置
var cfg ={“_id”:”shard1”,
“protocolVersion” : 1,
“members”:[
{“_id”:1,”host”:”192.168.209.140:37017”},
{“_id”:2,”host”:”192.168.209.140:37018”},
{“_id”:3,”host”:”192.168.209.140:37019”}
]
};
rs.initiate(cfg)
rs.status()
shard2集群搭建47017到47019
dbpath=shard/shard2/shard2-47017
bind_ip=0.0.0.0
port=47017
fork=true
logpath=shard/shard2/logs/shard2-47017.log
replSet=shard2
shardsvr=true
dbpath=shard/shard2/shard2-47018 bind_ip=0.0.0.0
port=47018
fork=true
logpath=shard/shard2/logs/shard2-47018.log
replSet=shard2
shardsvr=true
dbpath=shard/shard2/shard2-47019
bind_ip=0.0.0.0
port=47019
fork=true
logpath=shard/shard2/logs/shard2-47019.log
replSet=shard2
shardsvr=true
启动每个mongod 然后进入其中一个进行集群配置
var cfg ={“_id”:”shard2”,
“protocolVersion” : 1,
“members”:[
{“_id”:1,”host”:”192.168.209.140:47017”},
{“_id”:2,”host”:”1192.168.209.140:47018”},
{“_id”:3,”host”:”192.168.209.140:47019”}
]
};
rs.initiate(cfg)
rs.status()
配置和启动 路由节点
route-27017.conf
port=27017
bind_ip=0.0.0.0
fork=true
logpath=route/logs/route.log
configdb=configsvr/192.168.211.133:17017,192.168.211.133:17018,192.168.211.133:17019
启动路由节点使用 mongos (注意不是mongod)
./bin/mongos -f route/route-27017.conf
mongos(路由)中添加分片节点
进入路由mongos
mongo —port 27017
sh.status()
sh.addShard(“shard1/192.168.209.141:37017,192.168.209.141:37018,192.168.209.141: 37019”);
sh.addShard(“shard2/192.168.209.141:47011,192.168.209.141:47013,192.168.209.141: 47015”);
sh.status()
开启数据库和集合分片(指定片键)
继续使用mongos完成分片开启和分片大小设置
为数据库开启分片功能 (lagou_resume不存在就自动创建)
sh.enableSharding(“lagou_resume”)
为指定集合开启分片功能
sh.shardCollection(“lagou_resume.lagou_resume_datas”,{“片键字段名如 name”:索引说 明})
sh.shardCollection(“lago_resume.lagou_resume.datas”,{“name”:”shashed”})
向集合中插入数据测试
通过路由循环向集合中添加数
use lagou_resume;
for(var i=1;i<= 1000;i++){
db.lagou_resume_datas.insert({“name”:”test”+i,
salary:(Math.random()*20000).toFixed(2)});
}
