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 una
mongoshMétodo. Esta no es la documentación para comandos de base de datos ni para 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 verificar si los fragmentos de una colección fragmentada test.contacts están actualmente en equilibrio, conéctese a una instancia y emita lo mongos 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 realiza en varias fases. El campo progress solo corresponde a la fase actual.
Para obtener la descripción de la salida, consulte Salida de balancerCollectionStatus.