目前在一个机器上部署,IP:10.1.2.197,端口列表如下:
端口 | 端口 | 端口 | |||
路由服务 | 27061 | 路由服务 | 27062 | 路由服务 | 27063 |
配置服务 | 27071 | 配置服务 | 27072 | 配置服务 | 27073 |
副本集1 | 27011 | 副本集2 | 27021 | 副本集3 | 27031 |
副本集1 | 27012 | 副本集2 | 27022 | 副本集3 | 27032 |
副本集1 | 27013 | 副本集2 | 27043 | 副本集3 | 27033 |
一、配置副本集
1、启动副本集的实例
2,副本集配置文件
dbpath=/usr/local/mongodb/data1_1
logpath=/usr/local/mongodb/log/mongodb1_1.log
port=27011
fork=true
shardsvr=true
replSet=rs1
注意:shardsvr=true必须加入,不然后续的设置分片会报错。
3、配置3个副本集
> config = {
"_id": "rs1",
members: [
{ "_id": 0,
"host": "10.1.2.197:27011"
},
{ "_id": 1,
"host": "10.1.2.197:27012"
},
{ "_id": 2,
"host": "10.1.2.197:27013"
},
] }
> rs.initiate(config)
...
二、配置config
1,启动config实例
2,config配置文件
dbpath=/usr/local/mongodb/config1
logpath=/usr/local/mongodb/log/config1.log
port=27071
fork=true
configsvr=true
注意:configsvr=true必须加入,不然后续的mongos启动多configdb时会报错
三、配置路由
1,启动路由进程
2,mongos配置文件
configdb=10.1.2.197:27071,10.1.2.197:27072,10.1.2.197:27073
logpath=/usr/local/mongodb/log/mongos1.log
port=27061
fork=true
3,配置路由
(1) 进入路由1
mongo --port 27061
(2) 进入admin库
mongos> use admin
(3) 配置分片信息
mongos> db.runCommand({addshard:"rs1/10.1.2.197:27011"})
{ "shardAdded" : "rs1", "ok" : 1 }
mongos> db.runCommand({addshard:"rs2/10.1.2.197:27021"})
{ "shardAdded" : "rs2", "ok" : 1 }
mongos> db.runCommand({addshard:"rs3/10.1.2.197:27031"})
{ "shardAdded" : "rs3", "ok" : 1 }
(4) 查看分片
mongos> db.runCommand({listshards:1})
{
"shards" : [
{
"_id" : "rs1",
"host" : "rs1/10.1.2.197:27011,10.1.2.197:27012,10.1.2.197:27013"
},
{
"_id" : "rs2",
"host" : "rs2/10.1.2.197:27021,10.1.2.197:27022,10.1.2.197:27023"
},
{
"_id" : "rs3",
"host" : "rs3/10.1.2.197:27031,10.1.2.197:27032,10.1.2.197:27033"
}
],
"ok" : 1
}
(5) 配置分片的库
mongos> db.runCommand({"enablesharding":"test"})
{ "ok" : 1 }
(6) 配置分片的方式
mongos> db.runCommand({"shardcollection":"test.person","key":{_id:'hashed'}})
{ "collectionsharded" : "test.person", "ok" : 1 }
三、测试
mongos> use test
switched to db test
mongos> for(var i=0;i<10;i++){db.person.insert({name:"bluejoe"+i});}
WriteResult({ "nInserted" : 1 })
1,登录rs1
2,登录rs2
3,登录rs3