mkdir -p ~/data/r{0,1,2}
for i in 0 1 2 ; do mongod --dbpath ~/data/r$i --logpath ~/data/r$i/mongo.log --port 2700$i --bind_ip 0.0.0.0 --fork --replSet repl ; done
mongo --port 27000 --eval 'rs.initiate()'
mongo --port 27000 --eval 'rs.add("ksoong.local:27001")'
mongo --port 27000 --eval 'rs.add("ksoong.local:27002")'
开发
Table of Contents
三节点复制集
五节点读写分离复制集合
mkdir -p ~/data/r{0,1,2,3,4}
for i in 0 1 2 3 4; do mongod --dbpath ~/data/r$i --logpath ~/data/r$i/mongo.log --port 2700$i --bind_ip 0.0.0.0 --fork --replSet repl ; done
mongo --port 27000 --eval 'rs.initiate()'
mongo --port 27000 --eval 'rs.add("ksoong.local:27001")'
mongo --port 27000 --eval 'rs.add("ksoong.local:27002")'
mongo --port 27000 --eval 'rs.add("ksoong.local:27003")'
mongo --port 27000 --eval 'rs.add("ksoong.local:27004")'
mongo --host 'repl/localhost:27000,localhost:27001,localhost:27002,localhost:27003,localhost:27004'
> cfg = rs.conf()
> cfg.members[0].tags={"nodeType": "ELECTABLE"}
> cfg.members[1].tags={"nodeType": "ELECTABLE"}
> cfg.members[2].tags={"nodeType": "ELECTABLE"}
> cfg.members[3].tags={"nodeType": "ANALYTICS"}
> cfg.members[4].tags={"nodeType": "ANALYTICS"}
> cfg.members[3].priority=0
> cfg.members[4].priority=0
> rs.reconfig(cfg)
两分片集群
mkdir r{a,b,c}
mkdir cs
mongod --configsvr --dbpath cs --logpath cs/mongo.log --port 26000 --fork --replSet repl-cs
mongo --port 26000 --eval "rs.initiate()"
mongod --shardsvr --dbpath ra --logpath ra/mongo.log --port 27000 --fork --replSet repl-a
mongo --port 27000 --eval "rs.initiate()"
mongod --shardsvr --dbpath rb --logpath rb/mongo.log --port 28000 --fork --replSet repl-b
mongo --port 28000 --eval "rs.initiate()"
mongod --shardsvr --dbpath rc --logpath rc/mongo.log --port 29000 --fork --replSet repl-c
mongo --port 29000 --eval "rs.initiate()"
mongos --configdb 'repl-cs/localhost:26000' --logpath ~/tmp/mongos.log --port 27017 --fork
mongo --eval 'sh.addShard("repl-a/localhost:27000")'
mongo --eval 'sh.addShard("repl-b/localhost:28000")'
mongo --eval 'sh.addShard("repl-c/localhost:29000")'