1、列出所有的Shard Server
> db.runCommand({ listshards: 1 }) --列出所有的Shard Server { "shards" : [ { "_id" : "shard0000", "host" : "localhost:20000" }, { "_id" : "shard0001", "host" : "localhost:20001" } ], "ok" : 1 }
2、查看Sharding信息
> 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
> db.runCommand({ isdbgrid:1 }) { "isdbgrid" : 1, "hostname" : "localhost", "ok" : 1 } >
4、对现有的集合进行分片(实例)
刚才我们是对表test.users 进行分片了,下面我们将对库中现有的未分片的表test.users_2 进行分片处理。
表最初状态如下,可以看出他没有被分片过:
> 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 }
对其进行分片处理:
> use admin switched to db admin > db.runCommand({ shardcollection: "test.users_2", key: { _id:1 }}) { "collectionsharded" : "test.users_2", "ok" : 1 }
再次查看分片后的表的状态,可以看到它已经被我们分片了
> 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 } >
时间: 2024-10-10 19:41:47