Docs Menu
Docs Home
/ /

setUserWriteBlockMode (comando de base de datos)

setUserWriteBlockMode

Novedades en la versión 6.0.

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

Durante la sincronización entre clústeres, mongosync, la herramienta de sincronización entre clústeres, utiliza el comando setUserWriteBlockMode para bloquear las escrituras en el clúster de destino. Para obtener más información, consulte la API HTTP. comando de inicio.

Si ya bloqueó las escrituras en un conjunto 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 proporcionó al habilitar inicialmente el bloqueo de escritura. El mensaje de error incluye tanto el motivo actual como el especificado en el comando fallido. Los clústeres fragmentados no aplican esta restricción.

Nota

Usuarios y aplicaciones con el bypassWriteBlockingMode El privilegio puede omitir el bloqueo y continuar realizando escrituras.

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

Establezca este campo en 1.

global

booleano

Bloquea las escrituras en un clúster cuando se establece en true. Para habilitar las escrituras en un clúster, establezca global: false.

reason

string

Opcional. Especifica el motivo del bloqueo de escrituras. Acepta los siguientes valores:

  • "Unspecified" - Predeterminado cuando no proporciona ningún motivo.

  • "ClusterToClusterMigrationInProgress" - Indica escrituras bloqueadas debido a la migración en curso de un clúster a otro.

  • "DiskUseThresholdExceeded" - Indica escrituras bloqueadas porque el uso del disco ha excedido un umbral.

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

  1. Habilitar el modo de bloque de escritura de 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 el bloqueo de escritura del usuario está habilitado.

    Ejemplo de salida:

    MongoServerError: User writes blocked
  3. Deshabilitar el modo de bloqueo de escritura de 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 escribe en una colección. El servidor permite la escritura porque el bloqueo de escritura del usuario está insertOne() deshabilitado.

Volver

setQuerySettings

En esta página