建立必要的文件目錄ide
mkdir -p /usr/local/mongo/shard/s0測試
mkdir -p /usr/local/mongo/shard/s1
mkdir -p /usr/local/mongo/shard/s2
mkdir -p /usr/local/mongo/shard/log
mongod --shardsvr --port 20000 --dbpath=/usr/local/mongo/shard/s0 --fork --logpath=/usr/local/mongo/shard/log/s0.log --directoryperdb
mongod --shardsvr --port 20001 --dbpath=/usr/local/mongo/shard/s1 --fork --logpath=/usr/local/mongo/shard/log/s1.log --directoryperdb
mongod --shardsvr --port 20002 --dbpath=/usr/local/mongo/shard/s2 --fork --logpath=/usr/local/mongo/shard/log/s2.log --directoryperdb
#Configure Config Server
mkdir -p /usr/local/mongo/shard/config
mongod --configsvr --port 30000 --dbpath=/usr/local/mongo/shard/config --fork --logpath=/usr/local/mongo/shard/log/config.log --directoryperdb
#Start Router Server
mongos --port 40000 --configdb localhost:30000 --fork --logpath=/usr/local/mongo/shard/log/route.log
mongos> db.runCommand({addshard:"localhost:20000"})
{ "shardAdded" : "shard0000", "ok" : 1 }
mongos> db.runCommand({addshard:"localhost:20001"})
{ "shardAdded" : "shard0001", "ok" : 1 }
mongos> db.runCommand({enablesharding:"andylhz"})
{ "ok" : 1 }
mongos> db.runCommand({shardcollection:"andylhz.users",key:{_id:1}})
{ "collectionsharded" : "andylhz.users", "ok" : 1 }
插入測試數據
:
for (var i = 500001; i <= 1000000; i++) db.users.insert({age:i, name:"wangwenlong", addr:"Beijing",country:"China"})
mongos> db.users.stats()db.users.stats()
{
"sharded" : true,
"ns" : "andylhz.users",
"count" : 500000,
"numExtents" : 16,
"size" : 48000000,
"storageSize" : 80949248,
"totalIndexSize" : 16245712,
"indexSizes" : {
"_id_" : 16245712
},
"avgObjSize" : 96,
"nindexes" : 1,
"nchunks" : 5,
"shards" : {
"shard0000" : {
"ns" : "andylhz.users",
"count" : 130899,
"size" : 12566304,
"avgObjSize" : 96,
"storageSize" : 22507520,
"numExtents" : 7,
"nindexes" : 1,
"lastExtentSize" : 11325440,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 4259696,
"indexSizes" : {
"_id_" : 4259696
},
"ok" : 1
},
"shard0001" : {
"ns" : "andylhz.users",
"count" : 369101,
"size" : 35433696,
"avgObjSize" : 96,
"storageSize" : 58441728,
"numExtents" : 9,
"nindexes" : 1,
"lastExtentSize" : 20643840,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 11986016,
"indexSizes" : {
"_id_" : 11986016
},
"ok" : 1
}
},
"ok" : 1
}
mongos>
mongos> use admindb.runCommand({ listshards: 1 })db.runCommand({ listshards: 1 })
{
"shards" : [
{
"_id" : "shard0000",
"host" : "localhost:20000"
},
{
"_id" : "shard0001",
"host" : "localhost:20001"
}
],
"ok" : 1
}
mongos> db.runCommand({ isdbgrid:1 })db.runCommand({ isdbgrid:1 })
{ "isdbgrid" : 1, "hostname" : "mongo.andylhz.com", "ok" : 1 }
mongos> db.runCommand({ addshard:"localhost:20002" })
mongos> printShardingStatus()printShardingStatus()
--- Sharding Status ---
sharding version: { "_id" : 1, "version" : 3 }
shards:
{ "_id" : "shard0000", "host" : "localhost:20000" }
{ "_id" : "shard0001", "host" : "localhost:20001" }
{ "_id" : "shard0002", "host" : "localhost:20002" }
databases:
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "andylhz", "partitioned" : true, "primary" : "shard0000" }
andylhz.users chunks:
shard0002 1
shard0000 2
shard0001 2
{ "_id" : { $minKey : 1 } } -->> { "_id" : ObjectId("50b9b64ae2b156c230e8f96e") } on : shard0002 Timestamp(4000, 0)
{ "_id" : ObjectId("50b9b64ae2b156c230e8f96e") } -->> { "_id" : ObjectId("50b9b64be2b156c230e91103") } on : shard0000 Timestamp(4000, 1)
{ "_id" : ObjectId("50b9b64be2b156c230e91103") } -->> { "_id" : ObjectId("50b9b65fe2b156c230ebc1d5") } on : shard0001 Timestamp(3000, 1)
{ "_id" : ObjectId("50b9b65fe2b156c230ebc1d5") } -->> { "_id" : ObjectId("50b9b673e2b156c230eeb2d0") } on : shard0001 Timestamp(2000, 4)
{ "_id" : ObjectId("50b9b673e2b156c230eeb2d0") } -->> { "_id" : { $maxKey : 1 } } on : shard0000 Timestamp(3000, 0)
mongos>
本文完