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

    1、列出所有的Shard Server

[plain]  view plain copy
  1. > db.runCommand({ listshards: 1 }) --列出所有的Shard Server  
  2. {  
  3. "shards" : [  
  4. {  
  5. "_id" : "shard0000",  
  6. "host" : "localhost:20000"  
  7. },  
  8. {  
  9. "_id" : "shard0001",  
  10. "host" : "localhost:20001"  
  11. }  
  12. ],  
  13. "ok" : 1  
  14. }  
    2、查看Sharding信息
[plain]  view plain copy
  1. > printShardingStatus() --查看Sharding 信息  
  2. --- Sharding Status ---  
  3. sharding version: { "_id" : 1, "version" : 3 }  
  4. shards:  
  5. { "_id" : "shard0000", "host" : "localhost:20000" }  
  6. { "_id" : "shard0001", "host" : "localhost:20001" }  
  7. databases:  
  8. { "_id" : "admin", "partitioned" : false, "primary" : "config" }  
  9. { "_id" : "test", "partitioned" : true, "primary" : "shard0000" }  
  10. test.users chunks:  
  11. shard0000 1  
  12. { "_id" : { $minKey : 1 } } -->> { "_id" : { $maxKey : 1 } } on :  
  13. shard0000 { "t" : 1000, "i" : 0 }  
  14. >  
    3、判断是否是Sharding
[plain]  view plain copy
  1. > db.runCommand({ isdbgrid:1 })  
  2. { "isdbgrid" : 1, "hostname" : "localhost", "ok" : 1 }  
  3. >  
    4、对现有的集合进行分片(实例)

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

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

[plain]  view plain copy
  1. > db.users_2.stats()  
  2. {  
  3. "ns" : "test.users_2",  
  4. "sharded" : false,  
  5. "primary" : "shard0000",  
  6. "ns" : "test.users_2",  
  7. "count" : 500000,  
  8. "size" : 48000016,  
  9. "avgObjSize" : 96.000032,  
  10. "storageSize" : 61875968,  
  11. "numExtents" : 11,  
  12. "nindexes" : 1,  
  13. "lastExtentSize" : 15001856,  
  14. "paddingFactor" : 1,  
  15. "flags" : 1,  
  16. "totalIndexSize" : 20807680,  
  17. "indexSizes" : {  
  18. "_id_" : 20807680  
  19. },  
  20. "ok" : 1  
  21. }  
    对其进行分片处理:
[plain]  view plain copy
  1. > use admin  
  2. switched to db admin  
  3. > db.runCommand({ shardcollection: "test.users_2", key: { _id:1 }})  
  4. { "collectionsharded" : "test.users_2", "ok" : 1 }  
    再次查看分片后的表的状态,可以看到它已经被我们分片了
[plain]  view plain copy
  1. > use test  
  2. switched to db test  
  3. > db.users_2.stats()  
  4. {  
  5. "sharded" : true,  
  6. "ns" : "test.users_2",  
  7. "count" : 505462,  
  8. ……  
  9. "shards" : {  
  10. "shard0000" : {  
  11. "ns" : "test.users_2",  
  12. ……  
  13. "ok" : 1  
  14. },  
  15. "shard0001" : {  
  16. "ns" : "test.users_2",  
  17. ……  
  18. "ok" : 1  
  19. }  
  20. },  
  21. "ok" : 1  
  22. }  
  23. >  

你可能感兴趣的:(mongodb,数据库,NoSQL,nosql数据库)