Definición
sh.balancerCollectionStatus(namespace)Devuelve un documento que contiene información sobre si los fragmentos de una colección particionada están equilibrados (es decir, no necesitan ser trasladados) en el momento en que se ejecuta el comando o necesitan ser trasladados debido al drenaje de particiones, violación de la zona o desequilibrio de fragmentos entre las particiones.
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, consulta el
balancerCollectionStatus.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 sh.balancerCollectionStatus() tiene el siguiente formulario:
sh.balancerCollectionStatus( <namespace> )
Parameter
El método sh.balancerCollectionStatus() toma los siguientes parámetros:
Control de acceso
Al ejecutar con el control de acceso, el usuario debe tener las acciones de privilegio enableSharding en base de datos y/o colección para ejecutar el método. Es decir, un usuario debe tener un rol que conceda la 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 retorna un resultado similar al 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 namespace consultado está pasando por una desfragmentación de fragmentos, el método sh.balancerCollectionStatus devuelve una salida similar a la 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.