sh.status()

在本页面

Definition

  • sh. status ( )
    • mongos实例上运行时,将输出分片配置的格式化报告以及有关sharded cluster中现有块的信息。如果块的总数大于或等于 20,则默认行为将禁止显示详细的块信息。

sh.status()方法具有以下参数:

ParameterTypeDescription
verboseboolean可选的。确定详细程度。


如果true,则方法显示:
即使您有 20 个或更多块,每个分片上的块分布的完整详细信息,以及每个分片上的块数。
活动的 mongos 实例的详细信息。
如果false,则方法显示:
仅当少于 20 个块时,各个分片中的块分布的完整详细信息。如果您有 20 个或更多块,则该方法将返回too many chunks to print ...消息,仅显示每个分片上的块数。
只有活动 mongos 实例的版本和数量
默认详细值为false

Output Examples

Sharding Version部分显示有关config database的信息:

--- Sharding Status ---
  sharding version: {
   "_id" : <num>,
   "minCompatibleVersion" : <num>,
   "currentVersion" : <num>,
   "clusterId" : <ObjectId>
}

Shards部分列出了有关分片的信息。对于每个分片,此部分将显示名称,主机和关联的标签(如果有)。

shards:
 { "_id" : <shard name1>, "host" : <string>, "tags" : [ <string> ... ], "state" : <num> }
 { "_id" : <shard name2>, "host" : <string>, "tags" : [ <string> ... ], "state" : <num> }
 ...

默认情况下,“ 活动的 mongos 实例”部分显示有关过去 60 秒钟内处于活动状态的mongos实例的版本和数量的信息:

active mongoses:
  <version> : <num>

如果在verbose参数为 true 的情况下运行该方法,则活动的 mongos 实例部分将显示其他信息:

active mongoses:
{  "_id" : "<hostname:port>",  "advisoryHostFQDNs" : [ "<name>" ],  "mongoVersion" : <string>,  "ping" : <ISODate>,  "up" : <long>,  "waiting" : <boolean> }

Autosplit显示有关是否启用自动拆分的信息:

autosplit:
  Currently enabled: <yes|no>

Balancer部分列出了有关balancer状态的信息。这可以洞悉当前的平衡器操作,并且在对不平衡的分片群集进行故障排除时很有用。

balancer:
      Currently enabled:  yes
      Currently running:  yes
      Collections with active migrations:
          chat.messages started at Mon Nov 05 2018 15:16:45 GMT-0500 (EST)
      Failed balancer rounds in last 5 attempts:  0
      Migration Results for the last 24 hours:
          1 : Success

Databases部分列出了有关数据库的信息。对于每个数据库,该部分显示名称,数据库是否启用了分片以及数据库的primary shard

databases:
 {  "_id" : <dbname1>,
    "partitioned" : <boolean>,
    "primary" : <string>
 }
 {  "_id" : <dbname2>,
    "partitioned" : <boolean>,
    "primary" : <string>
 }
 ...

Sharded Collection部分提供有关分片集合的分片详细信息。对于每个分片集合,此部分显示分片密钥,每个分片的块数,分片[1]上的块分布以及分片密钥范围的标签信息(如果有)。

<dbname>.<collection>
   shard key: { <shard key> : <1 or hashed> }
   unique: <boolean>
   balancing: <boolean>
   chunks:
      <shard name1> <number of chunks>
      <shard name2> <number of chunks>
      ...
   { <shard key>: <min range1> } -->> { <shard key> : <max range1> } on : <shard name> <last modified timestamp>
   { <shard key>: <min range2> } -->> { <shard key> : <max range2> } on : <shard name> <last modified timestamp>
   ...
   tag: <tag1>  { <shard key> : <min range1> } -->> { <shard key> : <max range1> }
   ...

Output Fields

Sharding Version

  • sh.status.sharding-version. _id

    • _id是版本详细信息的标识符。
  • sh.status.sharding-version. minCompatibleVersion

  • sh.status.sharding-version. currentVersion

  • sh.status.sharding-version. clusterId

个活动 mongos 实例

3.2 版中的新功能。

如果verbosetrue,则为每个活动的mongos实例返回:

  • 它的主机名和端口。

  • 实例的完全限定域名(FQDN)的数组。

  • 其 MongoDB 版本。

  • 它的最新 ping 日期和时间。

  • 自上次 ping 以来的正常运行时间。

  • 它的 await 状态。

active mongoses:

{  "_id" : "<hostname:port>",  "advisoryHostFQDNs" : [ "<name>" ],  "mongoVersion" : <string>,  "ping" : <ISODate>,  "up" : <long>,  "waiting" : <boolean> }
...

Autosplit

Shards

  • sh.status.shards. _id

    • _id显示分片的名称。
  • sh.status.shards. host

    • host显示分片的主机位置。
  • sh.status.shards. tags

    • tags显示分片的所有标签。仅当分片具有标签时才显示该字段。
  • sh.status.shards. state

    • 3.4 版的新功能。

state显示:

  • 0如果分片不知道分片。

  • 1如果分片可识别分片。

Balancer

3.0.0 版中的新功能:sh.status()添加了balancer字段。

migration-results-for-the-last-24-hours包括全部迁移,包括不是由平衡器启动的迁移。

Databases

  • sh.status.databases. _id

    • _id显示数据库的名称。
  • sh.status.databases. partitioned

    • partitioned显示数据库是否已启用分片。如果true,则数据库已启用分片。
  • sh.status.databases. primary

Sharded Collection

  • sh.status.databases.<collection>. shard-key
    {#sh.status.databases.<collection>.shard-key}

    • shard-key显示分片密钥说明文档。
  • sh.status.databases.<collection>. unique
    {#sh.status.databases.<collection>.unique}

    • unique显示 MongoDB 是否对分片键值实施唯一性(即基础分片键索引是否唯一)。

3.2 版中的新功能。

  • sh.status.databases. balancing
    • balancing显示为集合启用平衡(true)还是禁用平衡(false)。

3.2 版中的新功能。

  • sh.status.databases.<collection>. chunks
    {#sh.status.databases.<collection>.chunks}

    • chunks列出了所有分片以及每个分片上驻留的块数。
  • sh.status.databases.<collection>. chunk-details
    {#sh.status.databases.<collection>.chunk-details}

  • 定义块的分片键值的范围,

  • 块所在的分片,以及

  • 块的最后修改的时间戳。

  • sh.status.databases.<collection>. tag
    {#sh.status.databases.<collection>.tag}

    • tag列出了与一系列分片键值关联的标签的详细信息。
[1]*(12)*如果块总数少于 20,则默认情况下,分片集合部分将显示块信息。要在有 20 个或更多块时显示该信息,请使用verbose参数调用sh.status()方法设置为true,即sh.status(true)