Definição
sh.status()Quando executado em uma instância
mongosimprime um relatório formatado da configuração de fragmentação e as informações sobre os chunks existentes em um cluster fragmentado. O comportamento padrão suprime as informações detalhadas do chunk se o número total de chunks for maior ou igual a 20.O método tem o seguinte
sh.status()parâmetro:ParâmetroTipoDescriçãoverbosebooleano
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 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.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.
Compatibilidade
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
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 mongos Instâncias de ativas exibe, por padrão, informações sobre a versão e a contagem de mongos instâncias de que ficaram ativas nos últimos 60 segundos:
active mongoses: <version> : <num>
Se o método for executado com o verbose parâmetro para verdadeiro, a seção Instâncias de ativas mongos 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 Balancer lista informações sobre o estado do balancer. Isso fornece informações sobre a operação atual do balancer 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 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> 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> } ] } ]
Campos de Saída
Versão de fragmentação
sh.status.sharding-version._idO é um identificador para os detalhes da
_idversão.
sh.status.sharding-version.minCompatibleVersionO é a versão mínima compatível do servidor de
minCompatibleVersionconfiguração.Em versões do MongoDB anteriores à 6.2, esse campo é incluído na collection
config.version, mas nomongosh2.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ãomongoshou outro aplicativo cliente. Em vez disso, para obter informações sobre a versão, consulte a feature compatibility version (fcv).
sh.status.sharding-version.currentVersionO é a versão atual do servidor de
currentVersionconfiguração.Em versões do MongoDB anteriores à 6.2, esse campo é incluído na collection
config.version, mas nomongosh2.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ãomongoshou outro aplicativo cliente. Em vez disso, para obter informações sobre a versão, consulte a feature compatibility version (fcv).
sh.status.sharding-version.clusterIdO é a identificação do cluster
clusterIdfragmentado.
Instâncias mongos ativas
sh.status.active-mongosesSe
verboseforfalse,sh.status.active-mongoseslistará a versão e a contagem das instânciasmongosativas. As instânciasmongosativas são instânciasmongosque receberam ping nos últimos 60 segundos.Se
verbosetruefor, retornará umsh.status.active-mongosesmongosdocumento para cada instância ativa contendo os seguintes campos:CampoTipo de DadosDescrição_idString
O nome do host e a porta onde o
mongosestá sendo executado. O_idestá formatado como<hostname>:<port>.advisoryHostFQDNsArray de strings
Array dos FQDNs (Fully Qualified Domain Names, Nomes de domínio totalmente qualificados) do
mongos.createdData
Quando o
mongosfoi iniciado.Novidades na versão 5.2.
mongoVersionString
Versão do MongoDB que o
mongosestá executando.pingData
As instâncias
mongosenviam pings para o servidor de configuração a cada 30 segundos. Este campo indica a hora do último ping.upNúmero longo
Número de segundos em que
mongosesteve ativo desde o último ping.waitingBoolean
Esse campo é sempre
truee 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.autosplitsh.status.autosplitindica 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
balancerStarte os métodos auxiliares do shellmongosh.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 o
sh.disableAutoSplit().O comando
balancerStope os métodos auxiliares de shellmongosh.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 o
sh.enableAutoSplit().
Os métodos mongo sh.enableBalancing(namespace) e sh.disableBalancing(namespace) não afetam a divisão automática.
Fusão automática
sh.status.automergeIndica se o AutoMerger está ativado.
Observação
A seção
automergesó aparece se você habilitar ou desabilitar explicitamente o AutoMerger. Como padrão, o AutoMerger vem ativado.
Fragmentos
sh.status.shards._idO exibe o nome do
_idshard.
sh.status.shards.hostO exibe a localização do host do
hostshard.
sh.status.shards.tagsO exibe todas as marcações do fragmento. O campo só será exibido se o fragmento tiver
tagsmarcações.
sh.status.shards.stateO
stateexibe:0se o shard não reconhecer shards.1se 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
balancerStarte os métodos auxiliares do shellmongosh.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 o
sh.disableAutoSplit().O comando
balancerStope os métodos auxiliares de shellmongosh.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 o
sh.enableAutoSplit().
Os métodos mongo sh.enableBalancing(namespace) e sh.disableBalancing(namespace) não afetam a divisão automática.
sh.status.balancer.currently-enabledcurrently-enabledindica se o balanceador está atualmente habilitado no cluster fragmentado.
sh.status.balancer.currently-runningcurrently-runningindica se o balanceador está em execução no momento e, portanto, está balanceando o cluster.
sh.status.balancer.collections-with-active-migrationscollections-with-active-migrationslista os nomes de quaisquer collections com migrações ativas e especifica quando a migração começou. Se não houver migrações ativas, esse campo não aparecerá nash.status()saída.
sh.status.balancer.failed-balancer-rounds-in-last-5-attemptsfailed-balancer-rounds-in-last-5-attemptsindica 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-errorlast-reported-errorlista a mensagem de erro mais recente do balanceador . Se não houver erros, esse campo não aparecerá nash.status()saída.
sh.status.balancer.time-of-reported-errortime-of-reported-errorfornece a data e a hora do erro relatado mais recentemente.
sh.status.balancer.migration-results-for-the-last-24-hoursmigration-results-for-the-last-24-hoursexibe 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-hoursNo recent migrationsexibe.migration-results-for-the-last-24-hoursinclui todas migrações, inclusive aquelas não iniciadas pelo balanceador.
Bancos de dados
sh.status.databases._idO exibe o nome do banco de
_iddados.
sh.status.databases.primaryO
primaryexibe o fragmento primário do banco de dados.
sh.status.databases.versionO exibe as informações de versão do banco de
versiondados:{ "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-keyO exibe o documento de especificação da chave de
shard-keyshard.
sh.status.databases.<collection>.uniqueO exibe se o MongoDB impõe exclusividade nos valores de chave de fragmento (ou seja, se o índice da chave de fragmento subjacente é
uniqueexclusivo).
sh.status.databases.<collection>.balancingExibe 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>.allowMigrationsExibe se as migrações são permitidas para a coleção. Quando
true, a coleção permite migrações. Quandofalse, a coleção não permite migrações, impedindo migrações de partes para essa coleção. Usesh.enableMigrations()esh.disableMigrations()para controlar esta configuração.
sh.status.databases.<collection>.chunksO lista todos os shards e o número de chunks que existem em cada
chunksshard.
sh.status.databases.<collection>.chunk-detailsO lista os
chunk-detailsdetalhes dos1 chunks []: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>.tagO lista os detalhes das marcações associadas a um intervalo de valores de chave de
tagshard.
Distribuição de dados fragmentados
sh.status.shardedDataDistributionUm 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.nsO namespace da coleção fragmentada no formato
<database>.<collection>.
sh.status.shardedDataDistribution.shardsUm array de documentos que relata métricas de distribuição de dados para cada fragmento.
sh.status.shardedDataDistribution.shards.numOwnedDocumentsO número de documentos de propriedade do fragmento.
sh.status.shardedDataDistribution.shards.ownedSizeBytesO tamanho estimado em bytes de documentos de propriedade do fragmento quando os documentos são descompactados.
sh.status.shardedDataDistribution.shards.orphanedSizeBytesO tamanho estimado em bytes de documentos órfãos no fragmento quando os documentos são descompactados.
| [1] | (,1 2) A seção de collection fragmentada, por padrão, exibe as informações do chunk se o número total de chunks for menor 20 que. Para exibir as informações quando você tiver 20 ou mais blocos, chame os métodos com sh.status() o verbose parâmetro definido true como, ou seja,. sh.status(true) |