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
/ /

configureCollectionBalancing (comando de base de datos)

configureCollectionBalancing

Novedades en la versión 5.3.

Configura los ajustes del balanceador para una colección fragmentada, como establecer el tamaño del fragmento y desfragmentar la colección.

Este comando está disponible en implementaciones alojadas en los siguientes entornos:

  • MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube

Nota

Este comando es compatible con todos los clústeres de MongoDB Atlas. Para obtener información sobre el soporte de Atlas para todos los comandos, consulte 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.

El comando tiene la siguiente sintaxis:

db.adminCommand(
{
configureCollectionBalancing: "<db>.<collection>",
chunkSize: <num>,
defragmentCollection: <bool>,
enableAutoMerger: <bool>,
enableBalancing: <bool>
}
)

configureCollectionBalancing tiene los siguientes campos:

Campo
Tipo
Necesidad
Descripción

configureCollectionBalancing

string

Requerido

El nombre de la base de datos y de la colección particionada que se va a configurar.

chunkSize

entero

Opcional

Establece el tamaño de fragmento en MiB para la colección. El tamaño recomendado es 256, 512 o mayor. Para obtener detalles sobre el comportamiento por defecto, consulte Comportamiento por defecto cuando no se especifica chunkSize.

defragmentCollection

booleano

Opcional

Hace que el balanceador desfragmente la colección. Por defecto, es false.

enableAutoMerger

booleano

Opcional

Establece si la fusión automática tiene en cuenta esta colección. El valor predeterminado true es.

enableBalancing

booleano

Opcional

Establece si el balanceador opera en la colección. Cuando se establece en false, el balanceador está desactivado para la colección.

Nuevo en la versión 8.1.

Para obtener más información, consulta Particionamiento de datos con fragmentos.

Para configurar el parámetro de tiempo para la limitación por fragmentación de fragmento, consulta chunkDefragmentationThrottlingMS.

Para aprender sobre la desfragmentación de colecciones particionadas, consulte Desfragmentar Colecciones Particionadas.

Si no especifica chunkSize para una colección y no se ha establecido ningún tamaño personalizado previamente, se utiliza el valor predeterminado global chunkSize para equilibrar.

Si utilizas configureCollectionBalancing con chunkSize: 0, el chunkSize por colección se restablece y se utiliza la media global por defecto chunkSize para el equilibrio.

Para obtener más información sobre la configuración por defecto de chunkSize, consulte Modificar el tamaño del rango en un clúster

Si no especificas enableAutoMerger para una colección y no se ha definido previamente ningún comportamiento personalizado de fusión automática, se establece por defecto en true y será tenido en cuenta por el AutoMerger.

A partir de 8.2, MongoDB valida la ortografía de los parámetros que se pasan a configureCollectionBalancing. Si se escribe mal un parámetro, configureCollectionBalancing no se ejecuta y devuelve un error.

Para cambiar el tamaño del fragmento de una colección fragmentada, utilice la opción chunkSize:

db.adminCommand( {
configureCollectionBalancing: "test.students",
chunkSize: 256
} )

Utilice este comando para cambiar el tamaño del fragmento de la colección dada.

Advertencia

De forma predeterminada, MongoDB no puede mover un fragmento si el número de documentos en el fragmento es mayor que 2 veces el resultado de dividir el tamaño de fragmento configurado por el tamaño promedio del documento.

Para encontrar el tamaño promedio del documento, consulte el campo avgObjSize en la salida del db.collection.stats() método.

Para obtener más información, consulta Tamaño del rango.

Advertencia

No recomendamos utilizar defragmentCollection para desfragmentar colecciones particionadas para MongoDB 6.0.0 a 6.0.3 y MongoDB 6.1.0 a 6.1.1, ya que el proceso de desfragmentación en estas versiones puede hacer que las bases de datos y colecciones no estén disponibles durante períodos prolongados de tiempo.

Para indicarle al balanceador que desfragmente una colección fragmentada, use la opción defragmentCollection:

db.adminCommand( {
configureCollectionBalancing: "test.students",
defragmentCollection: true
} )

Utilice este comando para que el balanceador desfragmente una colección particionada. Para supervisar el proceso de desfragmentación de los fragmentos, utiliza el comando balancerCollectionStatus.

Para obtener más información sobre cómo desfragmentar colecciones fragmentadas, consulte Desfragmentar colecciones fragmentadas.

Para desfragmentar una colección particionada mientras actualizas el tamaño del fragmento, utiliza la opción defragmentCollection y la opción chunkSize juntas:

db.adminCommand( {
configureCollectionBalancing: "test.students",
chunkSize: 512,
defragmentCollection: true
} )

Para desactivar explícitamente el AutoMerger en una colección, configure la opción enableAutoMerger en false:

db.adminCommand( {
configureCollectionBalancing: "test.students",
enableAutoMerger: false
} )

Para deshabilitar explícitamente el balanceador en una colección, configure la opción enableBalancing en false:

db.adminCommand( {
configureCollectionBalancing: "test.students",
enableBalancing: false
} )

Volver

commitReshardCollection

En esta página