Definição
balancerCollectionStatusRetorna 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.
Você só pode enviar
balancerCollectionStatusno banco de dadosadmin.Dica
Em
mongosh, esse comando também pode ser executado por meio do método assistentesh.balancerCollectionStatus().Os métodos auxiliares são práticos para os usuários
mongosh, mas podem não retornar o mesmo nível de informações que os comandos do banco de dados. Nos casos em que a praticidade não for necessária ou os campos de retorno adicionais forem necessários, use o comando de banco de dados.
Compatibilidade
Esse comando está disponível em implantações hospedadas nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
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
O comando tem a seguinte sintaxe:
db.adminCommand( { balancerCollectionStatus: "<db>.<collection>" } )
Especifique o namespace completo ("<db>.<collection>") da collection fragmentada.
mongosh fornece um método wrapper sh.balancerCollectionStatus().
Controle de acesso
Ao executar com controle de acesso, o usuário deve ter a ação de privilégio do enableSharding no reconhecimento de data center e/ou collection para executar o comando. 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.
documento de saída
A seguir, um exemplo de documento retornado pelo comando:
{ "balancerCompliant" : false, "firstComplianceViolation" : "chunksImbalance", "ok" : 1, "operationTime" : Timestamp(1583192967, 16), "$clusterTime" : { "clusterTime" : Timestamp(1583192967, 16), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } } }
Campo | Descrição |
|---|---|
| Um booleano que indica se os chunks não precisam ser movidos ( |
| Uma string que indica o motivo pelo qual as partes desse namespace precisam ser movidos. O campo só estará disponível se Os valores possíveis são:
Esse campo retorna apenas informações sobre a primeira violação observada pelo MongoDB. Pode haver migrações de chunk pendentes adicionais devido a um motivo diferente da relatada em |
Além dos campos de retorno específicos do comando, o comando também retorna o campo de status ok , o campo operationTime e o campo $clusterTime para a operação. Para obter detalhes sobre esses campos, consulte Resposta.
Exemplo
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 comando:
db.adminCommand( { balancerCollectionStatus: "test.contacts" } )
Se a parte para a collection não precisar ser movida, o comando retornará uma saída semelhante ao seguinte:
{ "balancerCompliant" : true, "ok" : 1, "operationTime" : Timestamp(1583193238, 1), "$clusterTime" : { "clusterTime" : Timestamp(1583193238, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } } }