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
.Dica
Veja também:
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 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>, "partitioned" : <boolean>, "version": <document> } { "_id" : <dbname2>, "primary" : <string>, "partitioned" : <boolean>, "version": <document> } ...
A seção Collection fragmentada fornece informações sobre os detalhes de fragmentação de collections fragmentadas. Para cada collection fragmentada, a seção exibe a chave de shard, o número de chunks por shard(s), a distribuição dos chunks entre os shards [1] e as informações da marcação, se houver, para as faixas das chaves de shard.
<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.
sh.status.sharding-version.currentVersion
O
currentVersion
é a versão atual do servidor de configuração.
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ância ativamongos
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
BooleanA partir do MongoDB 3.4, esse campo é sempretrue
e está presente apenas 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. Para obter detalhes, consulte Alterações na política de balanceamento.
Em versões anteriores ao MongoDB 6.0:
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.Para desabilitar a divisão automática quando o balanceador estiver habilitado, você pode utilizar osh.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.Para habilitar a divisão automática quando o balanceador estiver desabilitado, você pode utilizar osh.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. Para obter detalhes, consulte Alterações na política de balanceamento.
Em versões anteriores ao MongoDB 6.0:
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.Para desabilitar a divisão automática quando o balanceador estiver habilitado, você pode utilizar osh.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.Para habilitar a divisão automática quando o balanceador estiver desabilitado, você pode utilizar osh.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 balancer 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 balancer que não obtiveram sucesso nas últimas cinco execuções. O balancer 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 houve migrações recentes,migration-results-for-the-last-24-hours
exibeNo recent migrations
.migration-results-for-the-last-24-hours
inclui todas migrações, inclusive aquelas não iniciadas pelo balancer.
Bancos de dados
sh.status.databases._id
O
_id
exibe o nome do banco de dados.
sh.status.databases.partitioned
A partir do MongoDB 6.0 e da versão de compatibilidade do recurso 6.0, o sinalizador
partitioned
mantém apenas a compatibilidade retroativa com as versões anteriores. Por padrão, todos os bancos de dados estão habilitados para fragmentação, independentemente do valorpartitioned
.
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 shard.
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
O
balancing
exibe se o balanceamento está habilitado (true
) ou desabilitado (false
) para a 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 chunks [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 marcações associadas a um intervalo de valores de chave de shard.
Dica
Veja também:
[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) . |