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.The
sh.status()method has the following parameter: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: The fully managed service for MongoDB deployments in the cloud
Importante
This command is not supported in M0 and Flex clusters. For more information, see Unsupported Commands.
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
The Sharding Version section displays information on the config database:
--- 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> } ...
The Active mongos Instances section displays, by default, information on the version and count of mongos instances that have been active within the last 60 seconds:
active mongoses: <version> : <num>
If the method is run with the verbose parameter to true, the Active mongos Instances section displays additional information:
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>
The Balancer section lists information about the state of the balancer. This provides insight into current balancer operation and can be useful when troubleshooting an unbalanced sharded cluster.
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> } ...
The Sharded Collection section provides information on the sharding details for sharded collection(s). For each sharded collection, the section displays the shard key, the number of chunks per shard(s), the distribution of chunks across shards [1], and the tag information, if any, for shard key range(s).
<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> } ...
The Sharded Data Distribution section displays data distribution information for each sharded collection:
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._idThe
_idis an identifier for the version details.
sh.status.sharding-version.minCompatibleVersionThe
minCompatibleVersionis the minimum compatible version of the config server.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.currentVersionThe
currentVersionis the current version of the config server.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.clusterIdThe
clusterIdis the identification for the sharded cluster.
Instâncias mongos ativas
sh.status.active-mongosesIf
verboseisfalse,sh.status.active-mongoseslists the version and count of the activemongosinstances. Activemongosinstances aremongosinstances that have been pinged within the last 60 seconds.If
verboseistrue,sh.status.active-mongosesreturns a document for each activemongosinstance containing the following fields: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._idThe
_iddisplays the name of the shard.
sh.status.shards.hostThe
hostdisplays the host location of the shard.
sh.status.shards.tagsThe
tagsdisplays all the tags for the shard. The field only displays if the shard has tags.
sh.status.shards.stateThe
statedisplays: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-enabledindicates if the balancer is currently enabled on the sharded cluster.
sh.status.balancer.currently-runningcurrently-runningindicates whether the balancer is currently running, and therefore currently balancing the cluster.
sh.status.balancer.collections-with-active-migrationscollections-with-active-migrationslists the names of any collections with active migrations, and specifies when the migration began. If there are no active migrations, this field will not appear in thesh.status()output.
sh.status.balancer.failed-balancer-rounds-in-last-5-attemptsfailed-balancer-rounds-in-last-5-attemptsdisplays the number of balancer rounds that failed, from among the last five attempted rounds. A balancer round will fail when a chunk migration fails.
sh.status.balancer.last-reported-errorlast-reported-errorlists the most recent balancer error message. If there have been no errors, this field will not appear in thesh.status()output.
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-hoursdisplays the number of migrations in the last 24 hours, and the error messages from failed migrations . If there have been no recent migrations,migration-results-for-the-last-24-hoursdisplaysNo recent migrations.migration-results-for-the-last-24-hoursincludes all migrations, including those not initiated by the balancer.
Bancos de dados
sh.status.databases._idThe
_iddisplays the name of the database.
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.primaryThe
primarydisplays the primary shard for the database.
sh.status.databases.versionThe
versiondisplays the version information for the database:{ "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-keyThe
shard-keydisplays the shard key specification document.
sh.status.databases.<collection>.uniqueThe
uniquedisplays whether MongoDB enforces uniqueness on the shard key values (i.e. whether the underlying shard key index is unique).
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>.chunksThe
chunkslists all the shards and the number of chunks that reside on each shard.
sh.status.databases.<collection>.chunk-detailsThe
chunk-detailslists the details of the 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>.tagThe
taglists the details of the tags associated with a range of shard key values.
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) The sharded collection section, by default, displays the chunk information if the total number of chunks is less than 20. To display the information when you have 20 or more chunks, call the sh.status() methods with the verbose parameter set to true, i.e. sh.status(true). |