Para supervisar la desfragmentación de una colección particionada, utilice la
balancerCollectionStatus .
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.Fusiona los fragmentos restantes en la misma partición que puedan ser fusionados.
El procedimiento en esta tarea utiliza una colección particionada de ejemplo llamada ordersShardedCollection en una base de datos llamada 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
Examina 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 de documento devueltos, consulta el documento de salida del estado de la colecció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 la colección del balanceador, consulta Documento de salida del estado de la colección del balanceador
Imprimir estado de la partición, consulte
db.printShardingStatus()Para recuperar detalles sobre el estado de las particiones, 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 de
mongosSupervise las particiones usando MongoDB Atlas, consulte Revisar los clústeres sharded