Para supervisar la desfragmentación de una colección particionada, utilice la
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 el número de fragmentos en una colección y mejorar el rendimiento:
Combinar fragmentos en la misma partición que se puedan combinar.
Migre fragmentos más pequeños a otras particiones. Un fragmento pequeño es aquel que contiene datos inferiores al 25% de la configuración de
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.
Puedes usar tu propia colección particionada y base de datos en el procedimiento.
En el procedimiento para esta tarea, supervisa las fases y observa el progreso de la desfragmentación.
Antes de comenzar
Comienza la desfragmentación de una colección particionada. Para más detalles, consulta Iniciar la desfragmentación de una colección particionada.
Conecta
mongos.
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 cual los fragmentos para el espacio de nombres deben trasladarse o fusionarse. 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 por 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.
Confirme que la desfragmentación esté completa
Una vez que la desfragmentación se completa, el comando devuelve cualquiera de las siguientes opciones:
balancerCompliant: truesi tu colección está equilibrada.balancerCompliant: falseconfirstComplianceViolationconfigurado en una string diferente adefragmentingChunkssi tu colección no está equilibrada.
Ejemplo de salida para una colección equilibrada después de completar 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 se ha completado, puedes detenerla. Para obtener más información, consulta Detener la desfragmentación de una colección particionada.
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 estado de la partición, consulte
db.printShardingStatus()Recuperar detalles del estado del fragmento, consulte
sh.status()Para ver los campos de la colección de estado de partición, consulte colección particionada
Ver instancias activas de mongos, ver Instancias activas
mongosMonitorear fragmentos usando MongoDB Atlas, ver Revisar los clústeres sharded