Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Menu Docs
Página inicial do Docs
/ /

sh.status() (método mongosh)

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âmetro
Tipo
Descrição

verbose

booleano

Opcional. 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 do 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.

  • Somente a versão e o número de instâncias ativas do mongos.

O valor detalhado padrão é false.

A saída também inclui uma seção shardedDataDistribution, que fornece métricas de distribuição de dados para cada coleção fragmentada. Esses dados são os mesmos que a saída do estágio de agregação $shardedDataDistribution.

Dica

Esse método está disponível em implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem

Importante

Esse comando não é suportado em clusters M0 e Flex. Para obter mais informações, consulte Comandos não suportados.

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

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>
allowMigrations: <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> }
...

A seção Distribuição de dados fragmentados exibe informações de distribuição de dados para cada coleção fragmentada:

shardedDataDistribution:
[
{
"ns" : "<database>.<collection>",
"shards" : [
{
"shardName" : "<shard name>",
"numOrphanedDocs" : <num>,
"numOwnedDocuments" : <num>,
"ownedSizeBytes" : <num>,
"orphanedSizeBytes" : <num>
}
]
}
]
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 no mongosh 2.0.0 e posterior, o campo não é retornado na saída do sh.status() . A partir do MongoDB 6.2, esse campo é removido e não é retornado em nenhuma versão mongosh 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 no mongosh 2.0.0 e posterior, o campo não é retornado na saída do sh.status() . A partir do MongoDB 6.2, esse campo é removido e não é retornado em nenhuma versão mongosh 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.

sh.status.active-mongoses

Se verbose for false, sh.status.active-mongoses listará a versão e o número das instâncias de mongos ativas. As instâncias de mongos ativas são instâncias de mongos que receberam ping nos últimos 60 segundos.

Se verbose for true, sh.status.active-mongoses retornará um documento para cada instância mongos ativa, contendo os seguintes campos:

Campo
Tipo de Dados
Descrição

_id

String

O nome do host e a porta onde o mongos está sendo executado. O _id está formatado como <hostname>:<port>.

advisoryHostFQDNs

Array de strings

Array dos FQDNs (Fully Qualified Domain Names, Nomes de domínio totalmente qualificados) do mongos.

created

Data

Quando o mongos foi iniciado.

Novidades na versão 5.2.

mongoVersion

String

Versão do MongoDB que o mongos está executando.

ping

Data

As instâncias mongos enviam pings para o servidor de configuração a cada 30 segundos. Este campo indica a hora do último ping.

up

Número longo

Número de segundos em que mongos esteve ativo desde o último ping.

waiting

Boolean

Esse campo é sempre true 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>
}
...
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:

Os métodos mongo sh.enableBalancing(namespace) e sh.disableBalancing(namespace) não afetam a divisão automática.

sh.status.automerge

Indica se o AutoMerger está ativado.

Observação

A seção automerge só aparece se você habilitar ou desabilitar explicitamente o AutoMerger. Como padrão, o AutoMerger vem ativado.

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.

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:

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ída sh.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ída sh.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.

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.

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 retornar false, isso indica que o balanceador não está balanceando dados nesta coleção.

sh.status.databases.<collection>.allowMigrations

Exibe se as migrações são permitidas para a coleção. Quando true, a coleção permite migrações. Quando false, a coleção não permite migrações, impedindo migrações de partes para essa coleção. Use sh.enableMigrations() e sh.disableMigrations() para controlar esta configuraçã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.

sh.status.shardedDataDistribution

Um array de documentos que fornece métricas de distribuição de dados para cada coleção fragmentada no cluster. Os dados são os mesmos que a saída do estágio de agregação do $shardedDataDistribution.

sh.status.shardedDataDistribution.ns

O namespace da coleção fragmentada no formato <database>.<collection>.

sh.status.shardedDataDistribution.shards

Um array de documentos que relata métricas de distribuição de dados para cada fragmento.

sh.status.shardedDataDistribution.shards.shardName

O nome do shard.

sh.status.shardedDataDistribution.shards.numOrphanedDocs

O número de documentos órfãos no fragmento.

sh.status.shardedDataDistribution.shards.numOwnedDocuments

O número de documentos de propriedade do fragmento.

sh.status.shardedDataDistribution.shards.ownedSizeBytes

O tamanho estimado em bytes de documentos de propriedade do fragmento quando os documentos são descompactados.

sh.status.shardedDataDistribution.shards.orphanedSizeBytes

O tamanho estimado em bytes de documentos órfãos no fragmento quando os documentos são descompactados.

[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).

Voltar

sh.startBalancer

Nesta página