Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

setUserWriteBlockMode (comando de base de datos)

setUserWriteBlockMode

Novedades en la versión 6.0.

El comando setUserWriteBlockMode bloquea y desbloquea la escritura en todo el clúster.

Durante la sincronización de clúster a clúster, mongosync, la herramienta de Cluster-to-Cluster Sync, utiliza el comando setUserWriteBlockMode para bloquear las escrituras en el clúster de destino. Para obtener más información, consulta la API HTTP beginning (start) command.

Si ya bloqueaste las escrituras en un set de réplicas, las llamadas posteriores a setUserWriteBlockMode con global: true fallarán con un error IllegalOperation si el reason especificado no coincide con el motivo que proporcionaste al habilitar inicialmente el bloqueo de escrituras. El mensaje de error incluye tanto el motivo actual como el motivo especificado en el comando fallido. Los clústeres fragmentados no aplican esta restricción.

Nota

Usuarios y aplicaciones con el bypassWriteBlockingMode el privilegio puede eludir el bloqueo y continuar realizando guardados.

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 tiene la siguiente sintaxis:

db.adminCommand(
{
setUserWriteBlockMode: 1,
global: <boolean>,
reason: <string> // Optional
}
)

El comando toma los siguientes campos:

Campo
Tipo
Descripción

setUserWriteBlockMode

entero

Establece este campo a 1.

global

booleano

Bloquea los guardados en un clúster cuando se establece en true. Para habilitar la escritura en un clúster, se debe establecer global: false.

reason

string

opcional. Especifica el motivo para bloquear los guardados. Acepta los siguientes valores:

  • "Unspecified" - Por defecto cuando no proporcionas ningún motivo.

  • "ClusterToClusterMigrationInProgress" - Indica guardados bloqueados debido a una migración en curso de clúster a clúster.

  • "DiskUseThresholdExceeded" - Indica operaciones de guardado bloqueadas porque el uso del disco ha superado un umbral.

Para ejecutar el comando setUserWriteBlockMode, el usuario debe tener el setUserWriteBlockMode privilegio.

  1. Habilitar el modo de bloqueo de guardado para el usuario:

    db.adminCommand( {
    setUserWriteBlockMode: 1,
    global: true
    } )
  2. Añada un registro a la colección:

    db.names.insertOne( { name: "George Washington Cable" } )

    El servidor bloquea la escritura porque está activado el bloqueo de escritura del usuario.

    Ejemplo de salida:

    MongoServerError: User writes blocked
  3. Deshabilitar el modo de bloqueo de guardar del usuario:

    db.adminCommand( {
    setUserWriteBlockMode: 1,
    global: false
    } )
  4. Añada un registro a la colección:

    db.names.insertOne( { name: "George Washington Cable" } )

    El método insertOne() escribe en una colección. El servidor permite la escritura porque el bloqueo de escritura del usuario está desactivado.

Volver

setQuerySettings

En esta página