角色 | 服务器1 | 服务器2 | 服务器3 | |
路由服务器Mongos | 10.0.0.201:30000 | 10.0.0.202:30000 | 10.0.0.203:30000 | |
配置服务器Mongod | 10.0.0.201:20000 | 10.0.0.202:20000 | 10.0.0.203:20000 | |
Shard1, Replica Sets | 10.0.0.201:27017 | 10.0.0.202: 27017 | 10.0.0.203: 27017 | |
Shard2, Replica Sets | 10.0.0.201:27018 | 10.0.0.202: 27018 | 10.0.0.203: 27018 |
下载软件包
curl -Ohttp://downloads.mongodb.org/linux/mongodb-linux-x86_64-3.0.3.tgz
解压缩
/usr/local/mongodb
201操作
mkdir –p ./data/shard1_1
mkdir –p ./data/shard2_1
mkdir –p ./data/config
202操作
mkdir –p ./data/shard1_2
mkdir –p ./data/shard2_2
mkdir –p ./data/config
203操作
mkdir –p ./data/shard1_3
mkdir –p ./data/shard2_3
mkdir –p ./data/config
配置分片1的复本集
201
bin/mongod--shardsvr --replSet shard1 --port 27017 --dbpath ./data/shard1_1 --logpath ./data/shard1_1/shard1.log --logappend --fork
202
bin/mongod--shardsvr --replSet shard1 --port 27017 --dbpath ./data/shard1_2 --logpath ./data/shard1_2/shard1.log --logappend --fork
203
bin/mongod--shardsvr --replSet shard1 --port 27017 --dbpath ./data/shard1_3 --logpath ./data/shard1_3/shard1.log --logappend --fork
config = {_id:'shard1', members:[ {_id:0,host:'10.0.0.201:27017'},{_id:1, host:'10.0.0.202:27017'}, {_id:2,host:'10.0.0.203:27017'}]}
rs.initiate(config)
配置分片2的复本集
201
bin/mongod--shardsvr --replSet shard2 --port 27018 --dbpath ./data/shard2_1 --logpath ./data/shard2_1/shard2.log --logappend --fork
202
bin/mongod--shardsvr --replSet shard2 --port 27018 --dbpath ./data/shard2_2 --logpath ./data/shard2_2/shard2.log --logappend --fork
203
bin/mongod--shardsvr --replSet shard2 --port 27018 --dbpath ./data/shard2_3 --logpath ./data/shard2_3/shard2.log --logappend --fork
config = {_id:'shard2', members:[ {_id:0,host:'10.0.0.201:27018'},{_id:1, host:'10.0.0.202:27018'}, {_id:2, host:'10.0.0.203:27018'}]}
rs.initiate(config)
配置Config服务器
在3台服务器运行以下命令
bin/mongod--configsvr --dbpath ./data/config --port 20000 --logpath ./data/config/config.log--logappend --fork
配置路由服务器
在3台服务器运行以下命令
bin/mongos--configdb 10.0.0.201:20000,10.0.0.202:20000,10.0.0.203:20000 --port 30000--chunkSize 1--logpath ./data/mongos.log --logappend --fork
配置分片
bin/mongo --port 30000
use admin
db.runCommand({addshard:"shard1/10.0.0.201:27017,10.0.0.202:27017,10.0.0.203:27017"});
db.runCommand({addshard:"shard2/10.0.0.201:27018,10.0.0.202:27018,10.0.0.203:27018"});
激活test库上的分片功能
db.runCommand({enablesharding:"test"});
激活users表的分片功能
db.runCommand({shardcollection:"test.users",key:{_id:1}});
测试分片
bin/mongo –port 30000
use test
停止mongos, mongo config, mongod
use admin
db.shutdownServer()