1.搭建环境
OS:CentOS7
Version: 4.2.8(https://www.mongodb.com/try/download/community)
主机规划:
sharding role | HOST | PORT | Replica Set |
---|---|---|---|
mongos | MONGOS | 37017 | / |
shard1 | HOST1/HOST2/HOST3 | 27117 | shard1 |
shard2 | HOST1/HOST2/HOST3 | 27217 | shard2 |
config | HOST1/HOST2/HOST3 | 27317 | config |
2.搭建步骤
2.1 sharding搭建,shard1和2基本步骤一致
a. 分片集shard1配置文件,需要开启认证登陆时,去掉注释部分
net :
maxIncomingConnections : 20000
bindIp : 0.0.0.0
port : 27117
unixDomainSocket :
enabled : true
wireObjectCheck : false
operationProfiling :
slowOpThresholdMs : 100
processManagement :
fork : true
replication :
oplogSizeMB : 500
replSetName : shard1
sharding :
clusterRole : shardsvr
storage :
dbPath : /data/mongosvr/shard1/data
directoryPerDB : true
engine : wiredTiger
journal :
enabled : true
wiredTiger :
engineConfig :
cacheSizeGB : 1
#security:
# keyFile: /data/mongodb/mongodb.key
# authorization: enabled
systemLog :
destination : file
logAppend : true
path : /data/mongosvr/shard1/logs/mongodb.log
quiet : true
traceAllExceptions : false
b. 初始化分片集
>var shard1_conf={
_id:'shard1',
members:[
{'_id':0,"host":"HOST1:27117"},
{'_id':1,"host":"HOST2:27117"},
{'_id':2,"host":"HOST3:27117"}]
};
>rs.initiate(shard2_conf);
2.2 Config Server
a. 配置
net :
maxIncomingConnections : 20000
bindIp : 0.0.0.0
port : 27317
unixDomainSocket :
enabled : true
wireObjectCheck : false
operationProfiling :
slowOpThresholdMs : 100
processManagement :
fork : true
replication :
oplogSizeMB : 500
replSetName : config
sharding :
clusterRole : configsvr
storage :
dbPath : /data/mongosvr/config/data
directoryPerDB : true
engine : wiredTiger
journal :
enabled : true
wiredTiger :
engineConfig :
cacheSizeGB : 1
#security:
# keyFile: /data/mongodb/mongodb.key
# authorization: enabled
systemLog :
destination : file
logAppend : true
path : /data/mongosvr/config/logs/mongodb.log
quiet : true
traceAllExceptions : false
b. 初始化配置服务器副本集
>var conf={
_id:'config',
members:[
{'_id':0,"host":"HOST1:27317"},
{'_id':1,"host":"HOST2:27317"},
{'_id':2,"host":"HOST3:27317"}]
};
>rs.initiate(conf);
2.3 mongos Server
a. 配置文件
net :
maxIncomingConnections : 20000
bindIp : 0.0.0.0
port : 37017
unixDomainSocket :
enabled : true
wireObjectCheck : false
processManagement :
fork : true
sharding :
configDB: config/HOST1:27317,HOST2:27317,HOST3:27317
systemLog :
destination : file
logAppend : true
path : /data/mongos/logs/mongodb.log
quiet : true
traceAllExceptions : false
b. 启动mongos
./bin/mongos -f conf/mongo.conf
2.4 初始化添加分片集
#./bin/mongo --port 37017
mongos>sh.addShard("shard1/HOST1:27117,HOST2:27117,HOST3:27117");
mongos>sh.addShard("shard2/HOST1:27217,HOST2:27217,HOST3:27217");
mongos>sh.status(); #查看分片集合状态,此时集合未做分片处理,databases未显示
添加测试分片集合
mongos>sh.enableSharding('test');
mongos>sh.shardCollection('test.t1',{_id:'hashed'}); #选定id作为分片键
mongos>sh.status();
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
h.enableSharding(‘test’);
mongos>sh.shardCollection(‘test.t1’,{_id:‘hashed’}); #选定id作为分片键
mongos>sh.status();
[外链图片转存中...(img-sRBh7NbK-1598263655433)]