On this page
sh.status()
在本页面
Definition
sh.
status
( )- 在mongos实例上运行时,将输出分片配置的格式化报告以及有关sharded cluster中现有块的信息。如果块的总数大于或等于 20,则默认行为将禁止显示详细的块信息。
sh.status()方法具有以下参数:
Parameter | Type | Description |
---|---|---|
verbose |
boolean | 可选的。确定详细程度。 |
如果true
,则方法显示:
即使您有 20 个或更多块,每个分片上的块分布的完整详细信息,以及每个分片上的块数。
活动的 mongos 实例的详细信息。
如果false
,则方法显示:
仅当少于 20 个块时,各个分片中的块分布的完整详细信息。如果您有 20 个或更多块,则该方法将返回too many chunks to print ...
消息,仅显示每个分片上的块数。
只有活动 mongos 实例的版本和数量。
默认详细值为false
。
See also
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
个活动 mongos 实例
3.2 版中的新功能。
sh.status.
active-mongoses
- 如果
verbose
是false
,则sh.status.active-mongoses列出活动mongos实例的版本和计数。活动的mongos实例是最近 60 秒内已 ping 的mongos实例。
- 如果
如果verbose
是true
,则为每个活动的mongos实例返回:
它的主机名和端口。
实例的完全限定域名(FQDN)的数组。
其 MongoDB 版本。
它的最新 ping 日期和时间。
自上次 ping 以来的正常运行时间。
它的 await 状态。
active mongoses:
{ "_id" : "<hostname:port>", "advisoryHostFQDNs" : [ "<name>" ], "mongoVersion" : <string>, "ping" : <ISODate>, "up" : <long>, "waiting" : <boolean> }
...
Autosplit
sh.status.
active-mongoses
- sh.status.active-mongoses指示当前是否启用自动拆分。
Shards
sh.status.shards.
_id
- _id显示分片的名称。
sh.status.shards.
host
- host显示分片的主机位置。
sh.status.shards.
state
- 3.4 版的新功能。
state显示:
Balancer
3.0.0 版中的新功能:sh.status()添加了balancer
字段。
sh.status.balancer.
currently-enabled
- currently-enabled指示分片群集上当前是否启用了balancer。
sh.status.balancer.
currently-running
- currently-running指示balancer是否当前正在运行,因此当前正在平衡群集。
sh.status.balancer.
collections-with-active-migrations
- collections-with-active-migrations列出具有活动迁移的所有集合的名称,并指定何时开始迁移。如果没有活动的迁移,则此字段将不会出现在sh.status()输出中。
sh.status.balancer.
failed-balancer-rounds-in-last-5-attempts
- failed-balancer-rounds-in-last-5-attempts显示最近尝试的五轮中失败的balancer轮的次数。当块迁移失败时,平衡器回合将失败。
sh.status.balancer.
last-reported-error
- last-reported-error列出了最新的平衡器错误消息。如果没有错误,则此字段将不会出现在sh.status()输出中。
sh.status.balancer.
time-of-reported-error
- time-of-reported-error提供了最近报告的错误的日期和时间。
sh.status.balancer.
migration-results-for-the-last-24-hours
- migration-results-for-the-last-24-hours显示最近 24 小时内的迁移次数,以及迁移失败的错误消息。如果最近没有迁移,则migration-results-for-the-last-24-hours显示
No recent migrations
。
- migration-results-for-the-last-24-hours显示最近 24 小时内的迁移次数,以及迁移失败的错误消息。如果最近没有迁移,则migration-results-for-the-last-24-hours显示
migration-results-for-the-last-24-hours包括全部迁移,包括不是由平衡器启动的迁移。
Databases
sh.status.databases.
_id
- _id显示数据库的名称。
sh.status.databases.
partitioned
- partitioned显示数据库是否已启用分片。如果
true
,则数据库已启用分片。
- partitioned显示数据库是否已启用分片。如果
sh.status.databases.
primary
- primary显示数据库的primary shard。
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}- chunk-details列出了块[1]的详细信息:
定义块的分片键值的范围,
块所在的分片,以及
块的最后修改的时间戳。
sh.status.databases.<collection>.
tag
{#sh.status.databases.<collection>.tag}- tag列出了与一系列分片键值关联的标签的详细信息。
[1] | *(1,2)*如果块总数少于 20,则默认情况下,分片集合部分将显示块信息。要在有 20 个或更多块时显示该信息,请使用verbose 参数调用sh.status()方法设置为true ,即sh.status(true) 。 |