mongodb分片加主从复制

1复制集rs1
docker run -d -p 20001:27017 --name rs1_container1 af93d1bb9e2a --shardsvr --port 27017 --replSet rs1
docker run -d -p 20002:27017 --name rs1_container2 af93d1bb9e2a --shardsvr --port 27017 --replSet rs1
docker run -d -p 20003:27017 --name rs1_container3 af93d1bb9e2a --shardsvr --port 27017 --replSet rs1
1复制集rs2
docker run -d -p 20011:27017 --name rs2_container1 af93d1bb9e2a --shardsvr --port 27017 --replSet rs2
docker run -d -p 20012:27017 --name rs2_container2 af93d1bb9e2a --shardsvr --port 27017 --replSet rs2
docker run -d -p 20013:27017 --name rs2_container3 af93d1bb9e2a --shardsvr --port 27017 --replSet rs2
2、创建2个配置服务(configsvr)。
docker run -d -p 21001:27017 --name config_container1 af93d1bb9e2a --configsvr --dbpath /data/db --replSet crs --port 27017
docker run -d -p 21002:27017 --name config_container2 af93d1bb9e2a --configsvr --dbpath /data/db --replSet crs --port 27017 
3、启动2个路由服务(mongos)。
mongos --port 22001 --configdb crs/127.0.0.1:21001,127.0.0.1:21002  --logpath /www/mongoDB/shard/log/route.log --fork
mongos --port 22002 --configdb crs/127.0.0.1:21001,127.0.0.1:21002 --logpath=/www/mongoDB/shard/log/route.log  --fork 

4,连接复制集rs1(mongo --port 20001)
config = {_id:"rs1",members:[ {_id:0,host:"10.0.0.63:20001"}, {_id:1,host:"10.0.0.63:20002"}, {_id:2,host:"10.0.0.63:20003",arbiterOnly:true} ] }
rs.initiate(config)
rs.status()
5,连接复制集rs2(mongo --port 20011)
config = {_id:"rs2",members:[ {_id:0,host:"10.0.0.63:20011"}, {_id:1,host:"10.0.0.63:20012"}, {_id:2,host:"10.0.0.63:20013",arbiterOnly:true} ] }
rs.initiate(config)
rs.status()

6,连接分片配置集crs(mongo)
config = {_id:"crs", configsvr:true, members:[ {_id:0,host:"10.0.0.63:21001"}, {_id:1,host:"10.0.0.63:21002"} ] }
rs.initiate(config)
rs.status()

7,mongos连接分片配置集crs (mongos)
mongo --port 22001
use admin
db.runCommand({addshard:"rs1/10.0.0.63:20001,10.0.0.63:20002,10.0.0.63:20003"})
mongo --port 22002
use admin
db.runCommand({addshard:"rs2/10.0.0.63:20011,10.0.0.63:20012,10.0.0.63:20013"})

 

8、设置数据库、集合分片。

db.runCommand({enablesharding:"mydb"}) db.runCommand({shardcollection:"mydb.person", key:{id:1, company:1}})

9,测试
for (i =10001; i<100000;i++){db.person.save({id:i, company:"baidu"})}

10,查看状态
db.person.stats()

 

 

参考https://www.cnblogs.com/hehexiaoxia/p/6192796.html

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页