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çã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 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.
O valor detalhado padrão é
false.
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 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>, "partitioned" : <boolean>, "version": <document> } { "_id" : <dbname2>, "primary" : <string>, "partitioned" : <boolean>, "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> } ...
Campos de Saída
Versão de fragmentação
sh.status.sharding-version._idO
_idé um identificador dos detalhes da versão.
sh.status.sharding-version.minCompatibleVersionO
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 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
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 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
clusterIdé a identificação do cluster fragmentado.
Instânciasativas mongos
sh.status.active-mongosesSe
verboseforfalse,sh.status.active-mongoseslistará a versão e o número das instâncias demongosativas. As instâncias demongosativas são instâncias demongosque receberam ping nos últimos 60 segundos.Se
verbosefortrue,sh.status.active-mongosesretornará um documento para cada instânciamongosativa, 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.To disable auto-splitting when the balancer is enabled, you can usesh.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.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.
Automerge
sh.status.automergeIndica se o AutoMerger está habilitado.
Observação
A seção
automergesó aparece se você habilitar ou desabilitar explicitamente a fusão automática. Por padrão, o AutoMerger está habilitado.
Fragmentos
sh.status.shards._idO
_idexibe o nome do fragmento.
sh.status.shards.hostO
hostexibe a localização do host do fragmento.
sh.status.shards.tagsO
tagsexibe todas as tags do fragmento. O campo só será exibido se o fragmento tiver tags.
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.To disable auto-splitting when the balancer is enabled, you can usesh.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.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-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-migrationsO
collections-with-active-migrationslista 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-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á na saídash.status().
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 houver migrações recentes,migration-results-for-the-last-24-hoursexibiráNo recent migrations.migration-results-for-the-last-24-hoursinclui todas as migrações, inclusive aquelas não iniciadas pelo balanceador.
Bancos de dados
sh.status.databases._idO
_idexibe o nome do banco de dados.
sh.status.databases.partitionedA partir do MongoDB 6.0 e da versão de compatibilidade do recurso 6.0, o sinalizador
partitionedmanté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.primaryO
primaryexibe o fragmento primário do banco de dados.
sh.status.databases.versionO
versionexibe 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-keyO
shard-keyexibe o documento de especificação da chave de fragmento.
sh.status.databases.<collection>.uniqueO
uniquemostra 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>.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 migrações são permitidas para a collection.
trueQuando, a collection permite migrações.falseQuando, a collection não permite migrações, impedindo migrações de chunks para essa collection. Utilizesh.enableMigrations()e para controlar estash.disableMigrations()configuração.
sh.status.databases.<collection>.chunksO
chunkslista todos os fragmentos e o número de partes que existem em cada fragmento.
sh.status.databases.<collection>.chunk-detailsO
chunk-detailslista 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>.tagO
taglista 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). |