mongo健壮集群搭建,分片sharding加复制集replica
mongo健壮集群搭建,分片sharding加复制集replica,使用备份,加分片,增强存储系统的健壮性。
1个配置服务
1个路由服务
2个分片,每个分片为一个3个服务的复制集
总共8个mongo服务,搭建如下:
1个配置服务
./bin/mongod --dbpath data/config/ --logpath log/config.log --logappend --fork --port 10000
1个路由服务
./bin/mongos --port 20000 --configdb 192.168.1.1:10000 --logpath log/mongos.log --logappend --fork
分片一
./bin/mongod --replSet shard1 --dbpath data/shard10001 --logpath log/shard10001.log --logappend --fork --port 10001 ./bin/mongod --replSet shard1 --dbpath data/shard10002 --logpath log/shard10002.log --logappend --fork --port 10002 ./bin/mongod --replSet shard1 --dbpath data/shard10003 --logpath log/shard10003.log --logappend --fork --port 10003
建立复制集:
rsconf = {_id: "shard1", members: [ { _id: 0, host: "192.168.1.1:10001" } ] } rs.initiate( rsconf ) rs.add("192.168.1.1:10002") rs.add("192.168.1.1:10003")
分片二
./bin/mongod --replSet shard2 --dbpath data/shard20001 --logpath log/shard20001.log --logappend --fork --port 20001 ./bin/mongod --replSet shard2 --dbpath data/shard20002 --logpath log/shard20002.log --logappend --fork --port 20002 ./bin/mongod --replSet shard2 --dbpath data/shard20003 --logpath log/shard20003.log --logappend --fork --port 20003
建立复制集:
rsconf = {_id: "shard2", members: [ { _id: 0, host: "192.168.1.1:20001" } ] } rs.initiate( rsconf ) rs.add("192.168.1.1:20002") rs.add("192.168.1.1:20003")
连接到mongs,并切换到admin这里必须连接路由节点
添加分片:
db.runCommand({"addShard":"shard1/192.168.1.1:10001"}) db.runCommand({"addShard":"shard2/192.168.1.1:20001"}) db.runCommand({"addShard":"shard2/192.168.1.1:30001"}) db.runCommand({listshards:1})
激活分片:
db.runCommand({"enablesharding":"test"}) //要使单个collection也分片存储,需要给collection指定一个分片key,通过以下命令操作: db.runCommand({"shardcollection":"test.user","key":{"_id":1}})