Definición
sh.balancerCollectionStatus(namespace)Devuelve un documento que contiene información sobre si los fragmentos de una colección fragmentada están equilibrados (es decir, no necesitan moverse) en el momento en que se ejecuta el comando o necesitan moverse debido al agotamiento de fragmentos, violación de zona o desequilibrio de fragmentos entre fragmentos.
Importante
Método mongosh
Esta página documenta a Método
mongosh. Esta no es la documentación de comandos de base de datos ni de controladores específicos del lenguaje, como Node.js.Para el comando de base de datos, consulte el
balancerCollectionStatusdominio.Para los drivers de API de MongoDB, consulte la documentación del driver de MongoDB específica del lenguaje.
Compatibilidad
Este método está disponible en implementaciones alojadas en los siguientes entornos:
MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
Importante
Este comando no es compatible con los clústeres M0 y Flex. Para obtener más información, consulta Comandos no compatibles.
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Sintaxis
El tiene la siguiente sh.balancerCollectionStatus() forma:
sh.balancerCollectionStatus( <namespace> )
Parameter
El método sh.balancerCollectionStatus() toma los siguientes parámetros:
Control de acceso
Al ejecutar con control de acceso, el usuario debe tener el privilegio enableSharding para ejecutar el método en la base de datos o la colección. Es decir, debe tener un rol que otorgue el siguiente privilegio:
{ resource: { db: <database>, collection: <collection> }, actions: [ "enableSharding" ] }
El rol clusterManager incorporado proporciona los privilegios apropiados.
Ejemplos
Para comprobar si los fragmentos de una colección particionada test.contacts están actualmente equilibrados, conecta a una instancia de mongos y emite lo siguiente:
sh.balancerCollectionStatus("test.contacts")
Si no es necesario mover los fragmentos de la colección, el método devuelve una salida similar a la siguiente:
{ "balancerCompliant" : true, "ok" : 1, "operationTime" : Timestamp(1583193238, 1), "$clusterTime" : { "clusterTime" : Timestamp(1583193238, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : Long(0) } } }
Proceso de desfragmentación en curso
Si el espacio de nombres consultado está pasando por una desfragmentación de fragmentos, el método sh.balancerCollectionStatus devuelve un resultado similar al siguiente:
{ "chunkSize": Long("128"), "balancerCompliant": false, "firstComplianceViolation": "defragmentingChunks", "details": { "currentPhase": "moveAndMergeChunks", "progress": { "remainingChunksToProcess": 1 } } }
Nota
La desfragmentación de fragmentos se produce en varias fases. El campo progress solo afecta a la fase actual.
Para la descripción de la salida, consulte balancerCollectionStatus Output.