您的位置:首页 > 数据库 > Mongodb

Nosql Mongodb之旅(28)—MongoDB管理维护Sharding

2014-04-21 20:33 399 查看
    1、列出所有的Shard Server

[plain] view
plaincopy





> db.runCommand({ listshards: 1 }) --列出所有的Shard Server  

{  

"shards" : [  

{  

"_id" : "shard0000",  

"host" : "localhost:20000"  

},  

{  

"_id" : "shard0001",  

"host" : "localhost:20001"  

}  

],  

"ok" : 1  

}  

    2、查看Sharding信息

[plain] view
plaincopy





> printShardingStatus() --查看Sharding 信息  

--- Sharding Status ---  

sharding version: { "_id" : 1, "version" : 3 }  

shards:  

{ "_id" : "shard0000", "host" : "localhost:20000" }  

{ "_id" : "shard0001", "host" : "localhost:20001" }  

databases:  

{ "_id" : "admin", "partitioned" : false, "primary" : "config" }  

{ "_id" : "test", "partitioned" : true, "primary" : "shard0000" }  

test.users chunks:  

shard0000 1  

{ "_id" : { $minKey : 1 } } -->> { "_id" : { $maxKey : 1 } } on :  

shard0000 { "t" : 1000, "i" : 0 }  

>  

    3、判断是否是Sharding

[plain] view
plaincopy





> db.runCommand({ isdbgrid:1 })  

{ "isdbgrid" : 1, "hostname" : "localhost", "ok" : 1 }  

>  

    4、对现有的集合进行分片(实例)

    刚才我们是对表test.users 进行分片了,下面我们将对库中现有的未分片的表test.users_2 进行分片处理。

    表最初状态如下,可以看出他没有被分片过:

[plain] view
plaincopy





> db.users_2.stats()  

{  

"ns" : "test.users_2",  

"sharded" : false,  

"primary" : "shard0000",  

"ns" : "test.users_2",  

"count" : 500000,  

"size" : 48000016,  

"avgObjSize" : 96.000032,  

"storageSize" : 61875968,  

"numExtents" : 11,  

"nindexes" : 1,  

"lastExtentSize" : 15001856,  

"paddingFactor" : 1,  

"flags" : 1,  

"totalIndexSize" : 20807680,  

"indexSizes" : {  

"_id_" : 20807680  

},  

"ok" : 1  

}  

    对其进行分片处理:

[plain] view
plaincopy





> use admin  

switched to db admin  

> db.runCommand({ shardcollection: "test.users_2", key: { _id:1 }})  

{ "collectionsharded" : "test.users_2", "ok" : 1 }  

    再次查看分片后的表的状态,可以看到它已经被我们分片了

[plain] view
plaincopy





> use test  

switched to db test  

> db.users_2.stats()  

{  

"sharded" : true,  

"ns" : "test.users_2",  

"count" : 505462,  

……  

"shards" : {  

"shard0000" : {  

"ns" : "test.users_2",  

……  

"ok" : 1  

},  

"shard0001" : {  

"ns" : "test.users_2",  

……  

"ok" : 1  

}  

},  

"ok" : 1  

}  

>  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息