1. 查看分片配置
1.1 列举使用分片的数据库
为了列举使用分片的数据库,需要查询Config数据库。如果partitioned域值为true,则这个库使用了分片技术。
连接一个mongos实例,运行命令获取使用分片功能的数据库:
use config
db.databases.find( { "partitioned" : true} )
例如:使用以下命令返回集群中的所有数据库
use config
db.databases.find()
如果返回结果:
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "mydb", "partitioned" : true, "primary" : "firstset" }
{ "_id" : "test", "partitioned" : false, "primary" : "secondset" }
显示只有mydb使用了分片。
1.2 列举所有的分片
为了列举当前集合的所有分片,使用listShards命令:
use admin
db.runCommand( { listShards : 1 })
返回结果:
{
"shards" : [
{
"_id" : "firstset",
"host" : "firstset/mongo01:10001,mongo01:10002,mongo01:10003"
},
{
"_id" : "secondset",
"host" : "secondset/mongo01:30001,mongo01:30002,mongo01:30003"
}
],
"ok" : 1
}
1.3 查看集群的详细信息
为了查看集群的详细信息,可以使用db.printShardingStatus()或者sh.status()。所有的方法返回同样的结果。
例如,使用sh.status()查看信息:
--- Sharding Status ---
sharding version: {
"_id" : 1,
"version" : 4,
"minCompatibleVersion" : 4,
"currentVersion" : 5,
"clusterId" : ObjectId("535a2dab0063b308757e1b70")
}
shards:
{ "_id" : "firstset", "host" : "firstset/mongo01:10001,mongo01:10002,mongo01:10003" }
{ "_id" : "secondset", "host" : "secondset/mongo01:30001,mongo01:30002,mongo01:30003" }
databases:
{ "_id" : "admin", "partitioned" : false, "primary" : "config" }
{ "_id" : "mydb", "partitioned" : true, "primary" : "firstset" }
mydb.test_collection
shard key: { "name" : 1 }
chunks:
secondset 6
firstset 6
{ "name" : { "$minKey" : 1 } } -->> { "name" : "cat" } on : secondset Timestamp(2, 0)
{ "name" : "cat" } -->> { "name" : "cow" } on : secondset Timestamp(3, 0)
{ "name" : "cow" } -->> { "name" : "dog" } on : secondset Timestamp(4, 0)
{ "name" : "dog" } -->> { "name" : "dragon" } on : secondset Timestamp(5, 0)
{ "name" : "dragon" } -->> { "name" : "elephant" } on : secondset Timestamp(6, 0)
{ "name" : "elephant" } -->> { "name" : "horse" } on : secondset Timestamp(7, 0)
{ "name" : "horse" } -->> { "name" : "lion" } on : firstset Timestamp(7, 1)
{ "name" : "lion" } -->> { "name" : "pig" } on : firstset Timestamp(1, 7)
{ "name" : "pig" } -->> { "name" : "rabbit" } on : firstset Timestamp(1, 8)
{ "name" : "rabbit" } -->> { "name" : "snake" } on : firstset Timestamp(1, 9)
{ "name" : "snake" } -->> { "name" : "tiger" } on : firstset Timestamp(1, 10)
{ "name" : "tiger" } -->> { "name" : { "$maxKey" : 1 } } on : firstset Timestamp(1, 11)
{ "_id" : "test", "partitioned" : false, "primary" : "secondset" }
sharding version展示了分片元数据的版本号。
shards展示了在集群中被作为分片的mongod实例。
databases展示了集群中所有的数据库,包括没有使用分片功能的库。
chunks信息展示了mydb库的每个分片上有多少个块和每个块的范围。
转载于:https://my.oschina.net/u/1449160/blog/227436