Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Supervisar la desfragmentación de una colección particionada

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.

La desfragmentación utiliza las siguientes fases para reducir el número de fragmentos en una colección y mejorar el rendimiento:

  1. Combinar fragmentos en la misma partición que se puedan combinar.

  2. 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.

  3. 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.

1

Ejecuta:

db.adminCommand(
{
balancerCollectionStatus: "test.ordersShardedCollection"
}
)
2

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

balancerCompliant

Booleano

false si se deben mover los fragmentos de la colección. Si no, true.

firstComplianceViolation

String

Indica el motivo por el cual los fragmentos para el espacio de nombres deben trasladarse o fusionarse. Solo se devuelve si balancerCompliant es false.

details

Objeto

Información adicional sobre el estado actual de la desfragmentación. Solo se devuelve si firstComplianceViolation es defragmentingChunks.

currentPhase

String

Fase de desfragmentación actual:

  • Para la fase uno, currentPhase es mergeAndMeasureChunks.

    La primera fase fusiona fragmentos contiguos ubicados en el mismo fragmento y calcula el tamaño de los datos para esos fragmentos.

  • Para la segunda fase, currentPhase es moveAndMergeChunks.

    Después de que se complete la fase uno, podrían quedar algunos fragmentos pequeños. La fase dos migra esos pequeños fragmentos a otras particiones y fusiona los fragmentos en esas particiones.

remainingChunksToProcess

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.

3

Una vez que la desfragmentación se completa, el comando devuelve cualquiera de las siguientes opciones:

  • balancerCompliant: true si tu colección está equilibrada.

  • balancerCompliant: false con firstComplianceViolation configurado en una string diferente a defragmentingChunks si 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 })
}

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.

  • 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 mongos

  • Monitorear fragmentos usando MongoDB Atlas, ver Revisar los clústeres sharded

Volver

Inicio

En esta página