sh.status()
Nesta página
Definição
sh.status()
Ao executar em uma instância do
mongos
, imprime um relatório formatado da configuração de fragmentação e as informações sobre os blocos existentes em um cluster fragmentado. O comportamento padrão suprime as informações detalhadas do bloco se o número total de blocos for maior ou igual a 20.O método
sh.status()
tem o seguinte parâmetro:ParâmetroTipoDescriçãoverbose
booleanoOpcional. Determina o nível de verbosidade.
Se for
true
, o método exibe:Detalhes completos da distribuição de chunks em shards, mesmo se você tiver 20 ou mais chunks, bem como o número de chunks em cada shard.
Detalhes das instâncias ativas de mongos.
Se for
false
, o método exibe:Detalhes completos da distribuição de chunk em shards somente se você tiver menos de 20 chunks. Se você tiver 20 ou mais chunks, o método retornará uma mensagem de
too many chunks to print ...
, mostrando apenas o número de chunks em cada shard.
O valor detalhado padrão é
false
.
Exemplos de saída
A seção Versão de fragmentação exibe informações sobre o banco de dados de configuração:
--- Sharding Status --- sharding version: { "_id" : <num>, "minCompatibleVersion" : <num>, "currentVersion" : <num>, "clusterId" : <ObjectId> }
A seção Fragmentos lista informações sobre o(s) fragmento(s). Para cada fragmento, a seção exibe o nome, o host e as tags associadas, se houver.
shards: { "_id" : <shard name1>, "host" : <string>, "tags" : [ <string> ... ], "state" : <num> } { "_id" : <shard name2>, "host" : <string>, "tags" : [ <string> ... ], "state" : <num> } ...
A seção Instâncias de mongos
ativas exibe, por padrão, informações sobre a versão e a contagem de instâncias do mongos
que estiveram ativas nos últimos 60 segundos:
active mongoses: <version> : <num>
Se o método for executado com o parâmetro verbose
para verdadeiro, a seção Instâncias de mongos
ativas exibirá informações adicionais:
active mongoses: { "_id" : "<hostname:port>", "advisoryHostFQDNs" : [ "<name>" ], "mongoVersion" : <string>, "ping" : <ISODate>, "up" : <long>, "waiting" : <boolean> }
A Autosplit exibe informações sobre se autosplit está habilitada:
autosplit: Currently enabled: <yes|no>
A seção balanceador lista informações sobre o estado do balanceador. Isso fornece informações sobre a operação atual do balanceador e pode ser útil ao solucionar problemas de um cluster fragmentado desequilibrado.
balancer: Currently enabled: yes Currently running: yes Collections with active migrations: config.system.sessions started at Fri May 15 2020 17:38:12 GMT-0400 (EDT) Failed balancer rounds in last 5 attempts: 0 Migration Results for the last 24 hours: 416 : Success 1 : Failed with error 'aborted', from shardA to shardB
A seção Bancos de dados lista informações sobre o(s) banco(s) de dados. Ela exibe o nome do banco de dados e o fragmento primário de cada banco de dados.
databases: { "_id" : <dbname1>, "primary" : <string>, "version": <document> } { "_id" : <dbname2>, "primary" : <string>, "version": <document> } ...
A seção Coleção fragmentada fornece informações sobre os detalhes de fragmentação de coleções fragmentadas. Para cada coleção fragmentada, a seção exibe a chave de fragmento, o número de partes por fragmento(s), a distribuição de partes entre fragmentos [1] e as informações da tag, se houver, para as faixas das chaves de fragmento.
<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> } ...
Campos de Saída
Versão de fragmentação
sh.status.sharding-version._id
O
_id
é um identificador dos detalhes da versão.
sh.status.sharding-version.minCompatibleVersion
O
minCompatibleVersion
é a versão mínima compatível do servidor de configuração.Em versões do MongoDB anteriores à 6.2, esse campo é incluído na collection
config.version
, mas nomongosh
2.0.0 e posterior, o campo não é retornado na saída dosh.status()
. A partir do MongoDB 6.2, esse campo é removido e não é retornado em nenhuma versãomongosh
ou outro aplicativo cliente. Em vez disso, para obter informações sobre a versão, consulte a feature compatibility version (fcv).
sh.status.sharding-version.currentVersion
O
currentVersion
é a versão atual do servidor de configuração.Em versões do MongoDB anteriores à 6.2, esse campo é incluído na collection
config.version
, mas nomongosh
2.0.0 e posterior, o campo não é retornado na saída dosh.status()
. A partir do MongoDB 6.2, esse campo é removido e não é retornado em nenhuma versãomongosh
ou outro aplicativo cliente. Em vez disso, para obter informações sobre a versão, consulte a feature compatibility version (fcv).
sh.status.sharding-version.clusterId
O
clusterId
é a identificação do cluster fragmentado.
Instânciasativas mongos
sh.status.active-mongoses
Se
verbose
forfalse
,sh.status.active-mongoses
listará a versão e o número das instâncias demongos
ativas. As instâncias demongos
ativas são instâncias demongos
que receberam ping nos últimos 60 segundos.Se
verbose
fortrue
,sh.status.active-mongoses
retornará um documento para cada instânciamongos
ativa, contendo os seguintes campos:CampoTipo de DadosDescrição_id
StringO nome do host e a porta onde omongos
está sendo executado. O_id
está formatado como<hostname>:<port>
.advisoryHostFQDNs
Array de stringsArray dos FQDNs (Fully Qualified Domain Names, Nomes de domínio totalmente qualificados) domongos
.created
DataQuando o
mongos
foi iniciado.Novidades na versão 5.2.
mongoVersion
StringVersão do MongoDB que omongos
está executando.ping
DataAs instânciasmongos
enviam pings para o servidor de configuração a cada 30 segundos. Este campo indica a hora do último ping.up
Número longoNúmero de segundos em quemongos
esteve ativo desde o último ping.waiting
BooleanEsse campo é sempretrue
e só é incluído para fins de compatibilidade com versões anteriores.active mongoses: { "_id" : "<hostname:port>", "advisoryHostFQDNs" : [ "<name>" ], "created" : <ISODate>, "mongoVersion" : <string>, "ping" : <ISODate>, "up" : <long>, "waiting" : <boolean> } ...
Autosplit
sh.status.autosplit
sh.status.autosplit
indica se a divisão automática está habilitada no momento.
Observação
A partir do MongoDB 6.0.3, a divisão automática de partes não é executada. Isso se deve a melhorias na política de balanceamento. Os comandos de divisão automática ainda existem, mas não executam uma operação.
Em versões anteriores ao MongoDB 6.1:
O comando
balancerStart
e os métodos auxiliares do shellmongo
sh.startBalancer()
e tambémsh.setBalancerState(true)
habilitar a divisão automática para o cluster fragmentado.To disable auto-splitting when the balancer is enabled, you can usesh.disableAutoSplit()
.O comando
balancerStop
e os métodos auxiliares de shellmongo
sh.stopBalancer()
esh.setBalancerState(false)
também desativam a divisão automática para o cluster fragmentado.To enable auto-splitting when the balancer is disabled, you can usesh.enableAutoSplit()
.
Os métodos mongo
sh.enableBalancing(namespace)
e sh.disableBalancing(namespace)
não afetam a divisão automática.
Fragmentos
sh.status.shards._id
O
_id
exibe o nome do fragmento.
sh.status.shards.host
O
host
exibe a localização do host do fragmento.
sh.status.shards.tags
O
tags
exibe todas as tags do fragmento. O campo só será exibido se o fragmento tiver tags.
sh.status.shards.state
O
state
exibe:0
se o shard não reconhecer shards.1
se o shard reconhecer shards.
Balancer
Observação
A partir do MongoDB 6.0.3, a divisão automática de partes não é executada. Isso se deve a melhorias na política de balanceamento. Os comandos de divisão automática ainda existem, mas não executam uma operação.
Em versões anteriores ao MongoDB 6.1:
O comando
balancerStart
e os métodos auxiliares do shellmongo
sh.startBalancer()
e tambémsh.setBalancerState(true)
habilitar a divisão automática para o cluster fragmentado.To disable auto-splitting when the balancer is enabled, you can usesh.disableAutoSplit()
.O comando
balancerStop
e os métodos auxiliares de shellmongo
sh.stopBalancer()
esh.setBalancerState(false)
também desativam a divisão automática para o cluster fragmentado.To enable auto-splitting when the balancer is disabled, you can usesh.enableAutoSplit()
.
Os métodos mongo
sh.enableBalancing(namespace)
e sh.disableBalancing(namespace)
não afetam a divisão automática.
sh.status.balancer.currently-enabled
currently-enabled
indica se o balanceador está atualmente habilitado no cluster fragmentado.
sh.status.balancer.currently-running
currently-running
indica se o balanceador está em execução no momento e, portanto, está balanceando o cluster.
sh.status.balancer.collections-with-active-migrations
O
collections-with-active-migrations
lista os nomes de quaisquer coleções com migrações ativas e especifica quando a migração começou. Se não houver migrações ativas, esse campo não aparecerá na saídash.status()
.
sh.status.balancer.failed-balancer-rounds-in-last-5-attempts
failed-balancer-rounds-in-last-5-attempts
indica a quantidade de tentativas de balanceamento do balanceador que não obtiveram sucesso nas últimas cinco execuções. O balanceador não será executado se ocorrer uma falha na migração de um bloco.
sh.status.balancer.last-reported-error
last-reported-error
lista a mensagem de erro mais recente do balanceador. Se não houver erros, esse campo não aparecerá na saídash.status()
.
sh.status.balancer.time-of-reported-error
time-of-reported-error
fornece a data e a hora do erro relatado mais recentemente.
sh.status.balancer.migration-results-for-the-last-24-hours
migration-results-for-the-last-24-hours
exibe o número de migrações nas últimas 24 horas e as mensagens de erro de migrações com falha. Se não houver migrações recentes,migration-results-for-the-last-24-hours
exibiráNo recent migrations
.migration-results-for-the-last-24-hours
inclui todas as migrações, inclusive aquelas não iniciadas pelo balanceador.
Bancos de dados
sh.status.databases._id
O
_id
exibe o nome do banco de dados.
sh.status.databases.primary
O
primary
exibe o fragmento primário do banco de dados.
sh.status.databases.version
O
version
exibe as informações da versão do banco de dados:{ "uuid" : UUID("cc250b66-8638-49f7-a2e8-c6f1220b9d7a"), "lastMod" : 1 } onde:
uuid
é o identificador do banco de dados.lastMod
é a versão do banco de dados.
Collection fragmentada
sh.status.databases.<collection>.shard-key
O
shard-key
exibe o documento de especificação da chave de fragmento.
sh.status.databases.<collection>.unique
O
unique
mostra se o MongoDB força a exclusividade nos valores da chave de fragmento (ou seja, se o índice da chave de fragmento subjacente é exclusivo).
sh.status.databases.<collection>.balancing
Exibe se o balanceador pode equilibrar a coleta. Se o balanceador estiver habilitado e esse status retornar
true
, o balanceador incluirá essa coleção nas operações de balanceamento. Se o status retornarfalse
, isso indica que o balanceador não está balanceando dados nesta coleção.
sh.status.databases.<collection>.chunks
O
chunks
lista todos os fragmentos e o número de partes que existem em cada fragmento.
sh.status.databases.<collection>.chunk-details
O
chunk-details
lista os detalhes dos partes [1]:O faixa de valores da chave de shard que definem o chunk,
O shard onde o chunk reside e
O último carimbo de data/hora modificado para o chunk.
sh.status.databases.<collection>.tag
O
tag
lista os detalhes das tags associadas a um intervalo de valores da chave de fragmento.
[1] | (1, 2) A seção de coleção fragmentada, por padrão, exibe as informações da parte se o número total de partes for menor que 20. Para exibir as informações quando você tiver 20 ou mais partes, chame os métodos sh.status() com o parâmetro verbose definido como true , ou seja, sh.status(true) . |