此次配置基于测试环境,话不多说,直接上干货。
步骤:
1、创建目录
数据目录
mkdir -p /mongodata/shard1_1 分片1副本集1数据目录
mkdir -p /mongodata/shard1_2 分片1副本集2数据目录
mkdir -p /mongodata/shard1_3 分片1副本集3数据目录
mkdir -p /mongodata/shard2_1 分片2副本集1数据目录
mkdir -p /mongodata/shard2_2 分片2副本集2数据目录
mkdir -p /mongodata/shard2_3 分片2副本集3数据目录
三个配置服务器目录
mkdir -p /mongodata/config/rep_1 配置服务器1数据目录
mkdir -p /mongodata/config/rep_2 配置服务器1数据目录
mkdir -p /mongodata/config/rep_3 配置服务器1数据目录
所有日志文件目录
mkdir -p /mongodata/log
2、配置Repl Set
nohup mongod --shardsvr --replSet shard1 --dbpath /mongodata/shard1_1 --port 11111 --logpath /mongodata/log/mongod1_1.log --logappend &
nohup mongod --shardsvr --replSet shard1 --dbpath /mongodata/shard1_2 --port 22222 --logpath /mongodata/log/mongod1_2.log --logappend &
nohup mongod --shardsvr --replSet shard1 --dbpath /mongodata/shard1_3 --port 33333 --logpath /mongodata/log/mongod1_3.log --logappend &
nohup mongod --shardsvr --replSet shard2 --dbpath /mongodata/shard2_1 --port 44444 --logpath /mongodata/log/mongod2_1.log --logappend &
nohup mongod --shardsvr --replSet shard2 --dbpath /mongodata/shard2_2 --port 55555 --logpath /mongodata/log/mongod2_2.log --logappend &
nohup mongod --shardsvr --replSet shard2 --dbpath /mongodata/shard2_3 --port 60000 --logpath /mongodata/log/mongod2_3.log --logappend &
登录mongo --port 11111
config={_id:'shard1',members:[{_id:0,host:'127.0.0.1:11111'},{_id:1,host:'127.0.0.1:22222'},{_id:2,host:'127.0.0.1:33333'}]};
rs.initiate(config);
rs.status();
登录 mongo --port 44444
config={_id:'shard2',members:[{_id:0,host:'127.0.0.1:44444'},{_id:1,host:'127.0.0.1:55555'},{_id:2,host:'127.0.0.1:60000'}]};
rs.initiate(config);
rs.status();
3、配置config server
nohup mongod --configsvr --dbpath /mongodata/config/rep_1 --port 20000 --logpath /mongodata/log/config1.log --logappend &
nohup mongod --configsvr --dbpath /mongodata/config/rep_2 --port 30000 --logpath /mongodata/log/config2.log --logappend &
nohup mongod --configsvr --dbpath /mongodata/config/rep_3 --port 40000 --logpath /mongodata/log/config3.log --logappend &
4、配置 sharding server(route process)
nohup mongos --configdb 127.0.0.1:20000,127.0.0.1:30000,127.0.0.1:40000 --port 50000 --chunkSize 2 --logpath /mongodata/log/mongos.log --logappend &
5、配置sharding cluster
mongo --port 50000
use admin;
sh.addShard("shanrd1/127.0.0.1:11111");
sh.addShard("shanrd2/127.0.0.1:44444");
sh.status();
6、激活分片
本测试采用test库,test表
db.runCommand({enablesharding:"test"});
db.runCommand({shardCollection:"test.test",key:{"_id":1}});
7、验证sharding
use test;
for(var i=1; i<=20000; i++){
db.test.insert({_id:i,name:"test",age:i,uid:i+1});}--插入20000行数据
db.test.stats();
8、命令
printShardingStatus(db.getSisterDB("config"),1);查看分片状态具体信息db.printShardingStatus()
db.runCommand(shardlists:1);查看分片信息