mongodb 复制和分片
机器:10.1.1.8
副本集shard1,有3个instances。IP是10.1.1.8,端口是26016,26026,26036,其中26036是仲裁节点
副本集shard2,有3个instances。IP是10.1.1.8,端口是26017,26027,26037,其中26037是仲裁节点
分片是在副本集shared1和shared2上进行。
配置服务器:有1个instance。IP是10.1.1.8,端口是26018
路由服务器:有1个instance。IP是10.1.1.8,端口是26019
启动shard1副本集:
./mongod --shardsvr --replSet shard1 --port 26016 --dbpath /data/26016/data --logpath /data/26016/log/26016.log --logappend --fork
./mongod --shardsvr --replSet shard1 --port 26026 --dbpath /data/26026/data --logpath /data/26026/log/26026.log --logappend --fork
./mongod --shardsvr --replSet shard1 --port 26026 --dbpath /data/26026/data --logpath /data/26026/log/26026.log --logappend --fork
初始化副本集shard1:
./mongo --port 26016 --host 10.1.1.8 admin
cfg = { _id: "shard1", members:[ { _id:0,host:"10.1.1.8:26016"}, { _id:1, host:"10.1.1.8:26026"} ]}
rs.initiate(cfg)
rs.addArb("10.1.1.8:26036");
启动shard2副本集:
./mongod --shardsvr --replSet shard1 --port 26017 --dbpath /data/26017/data --logpath /data/26017/log/26017.log --logappend --fork
./mongod --shardsvr --replSet shard1 --port 26027 --dbpath /data/26027/data --logpath /data/26027/log/26027.log --logappend --fork
./mongod --shardsvr --replSet shard1 --port 26027 --dbpath /data/26027/data --logpath /data/26027/log/26027.log --logappend --fork
初始化副本集shard2:
./mongo --port 26017 --host 10.1.1.8 admin
cfg = { _id: "shard2", members:[ { _id:0,host:"10.1.1.8:26017"}, { _id:1, host:"10.1.1.8:26027"} ]}
rs.initiate(cfg)
rs.addArb("10.1.1.8:26037");
启动配置服务器:
./mongod --configsvr --dbpath /data/26018/data --port 26018 --logpath /data/26018/log/26018.log --logappend --fork
./mongod --configsvr --dbpath /data/26028/data --port 26028 --logpath /data/26028/log/26028.log --logappend --fork
./mongod --configsvr --dbpath /data/26038/data --port 26038 --logpath /data/26038/log/26038.log --logappend --fork
启动路由服务器:
./mongos --configdb 10.1.1.8:26018,10.1.1.8:26028,10.1.1.8:26038 --port 26019 --logpath /data/26019/log/26019.log --logappend --fork
./mongos --configdb 10.1.1.8:26018,10.1.1.8:26028,10.1.1.8:26038 --port 26029 --logpath /data/26029/log/26029.log --logappend --fork
./mongos --configdb 10.1.1.8:26018,10.1.1.8:26028,10.1.1.8:26038 --port 26039 --logpath /data/26039/log/26039.log --logappend --fork
配置shared 集群
./mongo --port 26019 --host 10.1.1.8 admin
use admin
db.runCommand({addshard:"shard1/10.1.1.8:26016,10.1.1.8:26026,10.1.1.8:26036"})
db.runCommand({addshard:"shard2/10.1.1.8:26017,10.1.1.8:26027,10.1.1.8:26037"})
db.runCommand({enablesharding:"test"})
db.runCommand({shardcollection:"test.person",key:{name:1}})
测试数据:
use test
for(var i=0;i<10000;i++){
db.person.insert({"name":"jack"+i,"age":i})
}
for(var i=0;i<10000;i++){
db.person.insert({"name":"tom"+i,"age":i})
}
db.printShardingStatus()
mongos> db.printShardingStatus()
--- Sharding Status ---
sharding version: {
"_id" : 1,
"version" : 4,
"minCompatibleVersion" : 4,
"currentVersion" : 5,
"clusterId" : ObjectId("552a1234143ff7338546e841")
}
shards:
{ "_id" : "shard1", "host" : "shard1/10.1.1.8:26016,10.1.1.8:26026" }
{ "_id" : "shard2", "host" : "shard2/10.1.1.8:26017,10.1.1.8:26027" }
databases:
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "test", "partitioned" : true, "primary" : "shard1" }
test.person
shard key: { "name" : 1 }
chunks:
shard2 1
shard1 2
{ "name" : { "$minKey" : 1 } } -->> { "name" : "jack0" } on : shard2 Timestamp(2, 0)
{ "name" : "jack0" } -->> { "name" : "tom99" } on : shard1 Timestamp(2, 2)
{ "name" : "tom99" } -->> { "name" : { "$maxKey" : 1 } } on : shard1 Timestamp(2, 3)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25105315/viewspace-1570487/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25105315/viewspace-1570487/