sh.balancerCollectionStatus()
Definição
sh.balancerCollectionStatus(namespace)
Retorna um documento que contém informações sobre se as partes de uma collection fragmentada estão balanceados (ou seja, não precisam ser movidos) a partir do momento em que o comando é executado ou precisam ser movidos devido à drenagem de fragmentos, violação de zona ou desequilíbrio de pedaços entre fragmentos.
Importante
Método mongosh
Esta página documenta um método
mongosh
. Esta não é a documentação de comandos de banco de dados nem drivers específicos de linguagem, como Node.js.Para o comando de banco de dados de dados, consulte o comando
balancerCollectionStatus
.Para drivers de API do MongoDB, consulte a documentação do driver do MongoDB específica da linguagem.
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
Este comando não é suportado em instâncias sem servidor. 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
Sintaxe
sh.balancerCollectionStatus()
tem o seguinte formato:
sh.balancerCollectionStatus( <namespace> )
Parâmetro
O método sh.balancerCollectionStatus()
utiliza o seguinte parâmetro:
Controle de acesso
Ao executar com controle de acesso, o usuário deve ter a enableSharding
ação de privilégio do no reconhecimento de data center e/ou collection para executar o método. Ou seja, um usuário deve ter uma role que conceda o seguinte privilégio:
{ resource: { db: <database>, collection: <collection> }, actions: [ "enableSharding" ] }
O papel do clusterManager
embutido fornece os privilégios apropriados.
Exemplos
Para verificar se as partes de uma collection fragmentada test.contacts
estão balanceados, conecte-se a uma instância mongos
e emita o seguinte:
sh.balancerCollectionStatus("test.contacts")
Se os chunks da collection não precisarem ser movidos, o método retornará uma saída semelhante à seguinte:
{ "balancerCompliant" : true, "ok" : 1, "operationTime" : Timestamp(1583193238, 1), "$clusterTime" : { "clusterTime" : Timestamp(1583193238, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } } }
Processo de desfragmentação contínuo
Se o namespace da query estiver passando por desfragmentação de parte, o método sh.balancerCollectionStatus
retornará uma saída semelhante a esta:
{ "chunkSize": Long("128"), "balancerCompliant": false, "firstComplianceViolation": "defragmentingChunks", "details": { "currentPhase": "moveAndMergeChunks", "progress": { "remainingChunksToProcess": 1 } } }
Observação
A desfragmentação de parte ocorre em várias fases. O campo progress
pertence somente à fase atual.
Para a descrição da saída, consulte balancerCollectionStatus Output.