Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

db.fsyncLock() (método mongosh)

db.fsyncLock()

Vacía todos los guardados pendientes de la capa de almacenamiento en el disco y bloquea el servidor para evitar cualquier guardado adicional hasta que se libere el bloqueo.

A partir de MongoDB 7.0.2 (también disponible a partir de 6.0.11, y 5.0.22) los métodos db.fsyncLock() y db.fsyncUnlock() pueden ejecutarse en mongos para bloquear y desbloquear un clúster con particiones.

Importante

Método mongosh

This page documents a mongosh method. This is not the documentation for database commands or language-specific drivers, such as Node.js.

Para el comando de base de datos, consulta el comando fsync.

Para los drivers de API de MongoDB, consulte la documentación del driver de MongoDB específica del lenguaje.

Servers maintain an fsync lock count. The fsyncLock() method increments the lock count while the fsyncUnlock() method decrements it. To unlock writes on a server or cluster, call the fsyncUnlock() method until the lock count reaches zero.

db.fsyncLock() tiene la sintaxis:

db.fsyncLock()

La operación devuelve un documento con los siguientes campos:

Campo
Descripción

info

Información sobre el estado de la operación.

lockCount

Número de bloqueos actualmente en la instancia.

seeAlso

Enlace a la documentación del comando fsync.

ok

El código de estado.

db.fsyncLock() is an administrative command. Use this method to lock a server or cluster before backup operations.

Este método está disponible en implementaciones alojadas en los siguientes entornos:

Importante

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

db.fsyncLock() ensures that the data files are safe to copy using low-level backup utilities such as cp, scp, or tar. A mongod started using the copied files contains user-written data that is indistinguishable from the user-written data on the locked mongod.

Los archivos de datos de un mongod bloqueado pueden cambiar debido a operaciones como sincronizaciones de diarios o instantáneas de WiredTiger. Si bien esto no tiene ningún efecto en los datos lógicos (por ejemplo, datos a los que acceden los clientes), algunas utilidades de copia de seguridad pueden detectar estos cambios y emitir advertencias o fallar con errores. Para obtener más información sobre las utilidades y procedimientos de copia de seguridad recomendados por MongoDB, consulte Métodos de copia de seguridad para una implementación autogestionada.

Los bloqueos fsync se ejecutan en el primario en un set de réplicas o clúster.

Si el primario se cae o se vuelve inaccesible debido a problemas de red, el clúster elige un nuevo primario de entre los secundarios disponibles. Si un primario con un bloqueo fsync se cae, el nuevo primario no retiene el bloqueo fsync y puede gestionar operaciones de escritura. Cuando se realizan elecciones durante las operaciones de copia de seguridad, la copia de seguridad resultante puede ser inconsistente o inutilizable.

Para recuperarse de la caída de la primaria:

  1. Ejecute el db.fsyncUnlock() método hasta que el recuento de bloqueos llegue a cero para liberar el bloqueo en todos los nodos.

  2. Issue the db.fsyncLock() command to reestablish the fsync lock on the cluster.

  3. Reiniciar la copia de seguridad.

Además, los bloqueos de fsync son persistentes. Cuando la principal antiguo vuelva a estar en línea, deberás ejecutar el comando db.fsyncUnlock() para liberar el bloqueo del nodo.

The following operation runs db.fsyncLock():

db.fsyncLock()

La operación devuelve el siguiente documento de estado que incluye el lockCount:

{
"info" : "now locked against writes, use db.fsyncUnlock() to unlock",
"lockCount" : Long(1),
"seeAlso" : "http://dochub.mongodb.org/core/fsynccommand",
"ok" : 1
}

If you run db.fsyncLock() again, the operation increments the lockCount:

{
"info" : "now locked against writes, use db.fsyncUnlock() to unlock",
"lockCount" : Long(2),
"seeAlso" : "http://dochub.mongodb.org/core/fsynccommand",
"ok" : 1
}

Para desbloquear la instancia para guardar, debes ejecutar db.fsyncUnlock() dos veces para reducir el lockCount a 0.