Docs Menu
Docs Home
/ /

autoCompact (comando de base de datos)

autoCompact

Nuevo en la versión 8.0.

Habilita o deshabilita el fondo Compactación. CuandoautoCompact está habilitada, itera periódicamente a través de todos los archivos disponibles y ejecuta la compactación continuamente si hay suficiente espacio de almacenamiento libre.

Antes de autoCompact habilitar, ejecute la $collStats etapa de agregación con la storageStats: {} opción para comprobar si dispone de suficiente espacio de almacenamiento para continuar con la compactación. Si el espacio disponible devuelto por freeStorageSize es inferior freeSpaceTargetMB a, la compactación en segundo plano no tiene efecto.

El comando tiene la siguiente sintaxis:

db.runCommand(
{
autoCompact: <boolean>,
freeSpaceTargetMB: <int>, // Optional
runOnce: <boolean>, // Optional
}
)

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

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

Importante

Este comando no es compatible con los clústeres M0 y Flex. Para obtener más información, consulta 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 puede aceptar los siguientes campos opcionales:

Campo
Tipo
Descripción

freeSpaceTargetMB

entero

Opcional. Especifica la cantidad mínima de espacio de almacenamiento, en megabytes, que debe ser recuperable para que la compactación pueda proceder.

Por defecto: 20

runOnce

booleano

Opcional. Si runOnce se establece en true, la compactación en segundo plano solo se ejecuta una vez en cada colección del nodo.

Si runOnce se establece en false, la compactación en segundo plano se ejecuta continuamente en todas las colecciones de la base de datos. Si una colección no se compacta mientras runOnce es false, MongoDB omite temporalmente esa colección y continúa compactando las colecciones restantes. MongoDB intenta compactar la colección fallida de nuevo después de aproximadamente una hora.

Para clústeres que aplican autenticación:

  • MongoDB Atlas: los usuarios deben tener el rol autoCompact integrado.

  • Implementaciones autogestionadas: Los usuarios deben tener el privilegiocompacten el clúster. El rolhostManagerproporciona los privilegios necesarios para ejecutar autoCompact.

La compactación en segundo plano activada por autoCompact aplica el mismo comportamiento de bloqueo que el comando. Por lo tanto, si se compact llama autoCompact a mientras la compactación en segundo plano está activa, MongoDB devuelve un error.

Si necesita reiniciar autoCompact o ejecutarlo nuevamente con opciones diferentes, primero debe detener la operación de compactación en segundo plano actual:

db.runCommand( { autoCompact: false } )

Una vez deshabilitada la compactación de fondo actual, puede reiniciar autoCompact con la nueva configuración.

Si existe un oplog, MongoDB lo excluye de la compactación en segundo plano.

Recomendamos ejecutar autoCompact durante períodos de poco tráfico.

La compactación realiza regularmente puntos de control en la base de datos, lo que puede llevar a unos gastos en general de sincronización. En bases de datos con mucho tráfico, esto puede retrasar o impedir tareas operativas como realizar copias de seguridad. Para evitar interrupciones inesperadas, desactive la compactación antes de realizar una copia de seguridad.

Puede ejecutar la compactación en segundo plano en colecciones e índices almacenados en un conjunto de réplicas. Sin embargo, tenga en cuenta lo siguiente:

  • El nodo principal no replica el comando autoCompact a los nodos secundarios.

  • Un nodo secundario puede replicar datos mientras la compactación en segundo plano está en ejecución.

  • Se permiten lecturas y escrituras mientras se ejecuta la compactación en segundo plano.

autoCompact Solo se aplica a instancias. En un entorno fragmentado,mongod ejecute autoCompact en cada fragmento por separado.

No se puede ejecutar autoCompact contra una instancia de mongos.

Volver

Administración

En esta página