Docs Menu
Docs Home
/ /

db.fsyncLock() (método mongosh)

db.fsyncLock()

Limpia todas las escrituras pendientes de la capa de almacenamiento al disco y bloquea el servidor para evitar escrituras adicionales hasta que se libere el bloqueo.

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

Importante

Método mongosh

Esta página documenta una mongosh Método. Esta no es la documentación para comandos de base de datos ni para controladores específicos del lenguaje, como 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.

Los servidores mantienen un recuento de bloqueos fsync. El método fsyncLock() incrementa el conteo de bloqueos, mientras que el método fsyncUnlock() lo decrementa. Para desbloquear guardados en un servidor o clúster, llama al método fsyncUnlock() hasta que el recuento de bloqueos llegue a cero.

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 fsync documentación del comando.

ok

El código de estado.

db.fsyncLock() es un comando administrativo. Use este método para bloquear un servidor o clúster antes de realizar copias de seguridad.

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() garantiza que los archivos de datos se puedan copiar de forma segura mediante utilidades de copia de seguridad de bajo nivel cp como, scp taro. Un que empieza a usar los archivos copiados contiene datos escritos por el usuario que son indistinguibles de los datos escritos por el usuario en mongod el mongod bloqueado.

Los archivos de datos de un bloqueado mongod pueden cambiar debido a operaciones como sincronizaciones de registro o instantáneas de WiredTiger. Si bien esto no afecta a los datos lógicos (por ejemplo, a los datos a los que acceden los clientes), algunas utilidades de copia de seguridad pueden detectar estos cambios y emitir advertencias o 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 servidor principal en un conjunto de réplicas o un clúster fragmentado.

Si el servidor principal falla o se vuelve inaccesible debido a problemas de red, el clúster elige uno nuevo entre los servidores secundarios disponibles. Si un servidor principal con bloqueo fsync falla, el nuevo servidor principal no conserva dicho bloqueo 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 primaria:

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

  2. Emita el comando para restablecer el bloqueo fsync en el db.fsyncLock() clúster.

  3. Reiniciar la copia de seguridad.

Además, los bloqueos fsync son persistentes. Cuando el nodo principal anterior se vuelva a conectar, deberá ejecutar el db.fsyncUnlock() comando para liberar el bloqueo en el nodo.

La siguiente operación se db.fsyncLock() ejecuta:

db.fsyncLock()

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

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

Si ejecuta nuevamente, la operación db.fsyncLock() incrementa: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 escrituras, debe ejecutar dos veces para db.fsyncUnlock() reducir lockCount 0a.

Volver

db.dropDatabase

En esta página