Para supervisar la desfragmentación de una colección fragmentada, utilice el
balancerCollectionStatus dominio.
Puedes ver el estado actual de desfragmentación y el número de fragmentos restantes a procesar. Esto te muestra el progreso de la desfragmentación.
Acerca de esta tarea
La desfragmentación utiliza las siguientes fases para reducir la cantidad de fragmentos de una colección y mejorar el rendimiento:
Fusionar fragmentos en el mismo fragmento que se puedan fusionar.
Migra fragmentos más pequeños a otros fragmentos. Un fragmento pequeño es aquel que contiene menos del 25% de datos de la configuración
chunkSize.Fusionar los fragmentos restantes en el mismo fragmento que se puedan fusionar.
El procedimiento de esta tarea utiliza una colección fragmentada de ejemplo denominada ordersShardedCollection en una base de datos denominada test.
Puede utilizar su propia colección fragmentada y base de datos en el procedimiento.
En el procedimiento para esta tarea, usted supervisa las fases y ve el progreso de la desfragmentación.
Antes de comenzar
Comience a desfragmentar una colección fragmentada. Para más información, consulte "Comience a desfragmentar una colección fragmentada".
Conectarse
mongosa.
Procedimiento
Examinar el documento de salida
El comando anterior devuelve un documento con información sobre el estado de la desfragmentación, la fase actual y el trabajo de desfragmentación restante. Por ejemplo:
{ "balancerCompliant": false, "firstComplianceViolation": "defragmentingChunks", "details": { "currentPhase": "moveAndMergeChunks", "progress": { "remainingChunksToProcess": 1 } } }
La siguiente tabla describe los campos del documento.
Campo | Tipo | Descripción |
|---|---|---|
| Booleano |
|
| String | Indica el motivo por el que se deben mover o fusionar los fragmentos del espacio de nombres. Solo se devuelve si |
| Objeto | Información adicional sobre el estado actual de la desfragmentación. Solo se devuelve si |
| String | Fase de desfragmentación actual:
|
| entero | Número de fragmentos restantes para procesar en la fase actual. |
Para obtener información adicional sobre los campos del documento devuelto, consulte el documento de salida del estado de recopilación del balanceador.
Confirmar que la desfragmentación esté completa
Una vez completada la desfragmentación, el comando devuelve:
balancerCompliant: trueSi tu colección está equilibrada.balancerCompliant: falseconfirstComplianceViolationestablecido en una cadena distinta dedefragmentingChunkssi su colección no está equilibrada.
Ejemplo de salida para una colección equilibrada una vez completada la desfragmentación:
{ chunkSize: 0.2, balancerCompliant: true, ok: 1, '$clusterTime': { clusterTime: Timestamp({ t: 1677543079, i: 1 }), signature: { hash: Binary(Buffer.from("0000000000000000000000000000000000000000", "hex"), 0), keyId: Long("0") } }, operationTime: Timestamp({ t: 1677543079, i: 1 }) }
Próximos pasos
Si la desfragmentación aún no ha finalizado, puede detenerla. Para obtener más información, consulte Detener la desfragmentación de una colección fragmentada.
Obtén más información
Para ver el documento de salida del estado de recopilación del balanceador, consulte Documento de salida del estado de recopilación del balanceador
Imprimir el estado del fragmento, ver
db.printShardingStatus()Recuperar detalles del estado del fragmento, consulte
sh.status()Ver los campos de recopilación de estado de fragmentos, consulte Colección fragmentada
Ver instancias activas de mongos, ver Instancias activas
mongosMonitorear fragmentos usando MongoDB Atlas, ver Revisar clústeres fragmentados