Docs Menu
Docs Home
/ /
Administración

setDefaultRWConcern (comando de base de datos)

setDefaultRWConcern

El comando administrativo establece la configuración global predeterminada de lectura setDefaultRWConcern setDefaultRWConcern o admin escritura para un conjunto de réplicas o un clúster fragmentado. debe ejecutarse contra la base de datos.

  • Para los conjuntos de réplicas, emita el comando en setDefaultRWConcern el primario mongod.

  • Para clústeres fragmentados, emita en setDefaultRWConcern mongosun.

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

  • 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(
{
setDefaultRWConcern : 1,
defaultReadConcern: { <read concern> },
defaultWriteConcern: { <write concern> },
writeConcern: { <write concern> },
comment: <any>
}
)

El comando toma los siguientes campos:

Campo
Tipo
Descripción

int

Se debe establecer en 1.

object

Documento que contiene la configuración global de la preocupación de lectura. Especifique un objeto de preocupación de lectura válido.

  • setDefaultRWConcern soporta el siguiente subconjunto de nivel:

  • Para anular la configuración de lectura predeterminada actualmente, especifique un documento vacío {}.

  • setDefaultRWConcern solo admite la levels configuración de lectura. No se puede especificar ninguna otra configuración de lectura en la configuración de lectura predeterminada.

Omita este documento para no modificar la preocupación de lectura global actual. Si se omite, debesetDefaultRWConcern especificar defaultWriteConcern.

object

Documento que contiene la configuración global de escritura predeterminada.

  • Para la configuración de preocupación de escritura w, admite todos los valores de preocupación desetDefaultRWConcern escritura w : 0excepto.

  • wtimeout ParasetDefaultRWConcern la 0 configuración de solicitud de escritura, el valor predeterminado de es si se omite. Las operaciones se bloquean hasta que se cumple la solicitud de escritura. Si se especifica un valor predeterminado global de, asegúrese wtimeout de que el valor sea lo suficientemente grande como para permitir que las operaciones de escritura cumplan con la solicitud.

  • Para anular la configuración de escritura actualmente, especifique un documento vacío {}.

Omita este documento para no modificar la preocupación de escritura global actual. Si se omite, debesetDefaultRWConcern especificar defaultReadConcern.

Objeto

Opcional. Un documento que especifica la preocupación de escritura que utilizará el setDefaultRWConcern comando.

Si se omite, utiliza la preocupación desetDefaultRWConcern escritura global predeterminada establecida previamente si se configuró una.

comment

any

Opcional. Un comentario proporcionado por el usuario para adjuntar a este comando. Una vez configurado, este comentario aparece junto a los registros de este comando en las siguientes ubicaciones:

Un comentario puede ser de cualquier tipo BSON válido (string, objeto, arreglo, etc.).

setDefaultRWConcern devuelve un objeto que contiene la configuración global predeterminada de lectura y escritura. Consulte para obtener documentación más completa sobre los campos getDefaultRWConcern devueltos.

Nota

Requiere featureCompatibilityVersion 4.4+

Cada en el conjunto mongod de réplicas o clúster fragmentado debe tener featureCompatibilityVersion establecido 4.4 setDefaultRWConcern enal menos para usar.

A partir de MongoDB 5.0, una vez que el nivel de confirmación de escritura (write concern) de todo el clúster (CWWC) se configura mediante el comando setDefaultRWConcern, no se puede desactivar el nivel de confirmación de escritura (write concern).

MongoDB sólo aplica el nivel de confirmación de escritura (write concern) o lectura global por defecto a operaciones que no especifican explícitamente un nivel de confirmación de escritura (write concern) o lectura.

Si MongoDB aplica la preocupación de lectura o escritura predeterminada global a una operación, esa operación se comporta como si esa preocupación de lectura o escritura hubiera sido especificada explícitamente por el cliente emisor.

Emite setDefaultRWConcern contra el set de réplicas primario. El primario replica la nueva configuración global por defecto a los miembros restantes del set de réplicas. Los secundarios que aún no hayan replicado la configuración global por defecto actualizada continuarán utilizando su copia local "obsoleta" de la configuración por defecto.

Emita el comando setDefaultRWConcern con un writeConcern de w : "majority" para garantizar que el comando solo regrese después de que los cambios se hayan propagado a la mayoría de los miembros del conjunto de réplicas.

Emite elsetDefaultRWConcerncontra unmongosen el clúster. Elmongosconserva la configuración actualizada en el conjunto de réplicas del servidor de configuración (CSRS). Cadamongosemite periódicamente ungetDefaultRWConcerncontra el CSRS para actualizar su copia local de la configuración global. Unmongosutiliza su copia local obsoleta de los valores predeterminados globales entre actualizaciones.

Emita el comando setDefaultRWConcern con un writeConcern de w : "majority" para garantizar que el comando solo regrese después de que los cambios se hayan propagado a la mayoría de los miembros de CSRS.

Cuando una aplicación emite una operación contra sin especificar explícitamente una mongos mongos configuración de lectura o escritura, aplica la configuración predeterminada global correspondiente.

La configuración predeterminada global no se propaga a los fragmentos individuales. No se puede ejecutar en un setDefaultRWConcern fragmento.

Importante

setDefaultRWConcern requiere featureCompatibilityVersion. 4.4+ Si reduce la featureCompatibilityVersion de su implementación 4.4 de 4.2 a, se perderán todos mongos los 30 valores predeterminados de lectura y escritura del clúster, pero las instancias podrán seguir aplicándolos durante un máximo de segundos.

Los comandos administrativos de fragmentación que realizan operaciones de escritura en el servidor de configuración, como los enableSharding addShard comandos o, tienen un comportamiento específico con la configuración de escritura predeterminada global:

  • Los comandos utilizan independientemente del problema de escritura predeterminado global "majority" configurado.

  • Los comandos utilizan un tiempo de espera mínimo 60000 de. Solo utilizan el valor predeterminado de escritura global wtimeout si es mayor 60000 que.

Para los conjuntos de réplicas o clústeres fragmentados que aplican la autenticación en implementaciones autoadministradas, setDefaultRWConcern requiere que el usuario autenticado tenga el privilegio de setDefaultRWConcern acción.

El rol integrado proporciona los privilegios necesarios clusterManager para setDefaultRWConcern ejecutar.

La siguiente operación establece la preocupación de escritura global en lo siguiente:

db.adminCommand({
"setDefaultRWConcern" : 1,
"defaultWriteConcern" : {
"w" : 2
}
})

La operación devuelve un documento similar al siguiente:

{
"defaultWriteConcern" : {
"w" : 2
},
"updateOpTime" : Timestamp(1586290895, 1),
"updateWallClockTime" : ISODate("2020-04-07T20:21:41.849Z"),
"localUpdateWallClockTime" : ISODate("2020-04-07T20:21:41.862Z"),
"ok" : 1,
"$clusterTime" : { ... }
"operationTime" : Timestamp(1586290925, 1)
}

La siguiente operación establece la preocupación de lectura global "majority" en:

db.adminCommand({
"setDefaultRWConcern" : 1,
"defaultReadConcern" : { "level" : "majority" }
})

La operación devuelve un documento similar al siguiente:

{
"defaultReadConcern" : {
"level" : "majority"
},
"updateOpTime" : Timestamp(1586290895, 1),
"updateWallClockTime" : ISODate("2020-04-07T20:21:41.849Z"),
"localUpdateWallClockTime" : ISODate("2020-04-07T20:21:41.862Z"),
"ok" : 1,
"$clusterTime" : { ... }
"operationTime" : Timestamp(1586290925, 1)
}

La siguiente operación establece la preocupación global de lectura y escritura predeterminada como sigue:

db.adminCommand({
"setDefaultRWConcern" : 1,
"defaultWriteConcern" : {
"w" : 2
},
"defaultReadConcern" : { "level" : "majority" }
})

La operación devuelve un documento similar al siguiente:

"defaultWriteConcern" : {
"w" : 2
},
"defaultReadConcern" : {
"level" : "majority"
}

Puede:

  • Desactivar la preocupación de lectura predeterminada global.

  • Solo anule la configuración de escritura predeterminada global si aún no la ha configurado.

Por ejemplo, supongamos que la preocupación de lectura global predeterminada está establecida level: "majority" en. Para anularla, utilice un documento {} vacío:

db.adminCommand( {
"setDefaultRWConcern" : 1,
"defaultReadConcern" : {}
} )

La operación devuelve un documento que indica que la operación fue exitosa:

{
defaultReadConcern: { level: 'local' },
defaultWriteConcern: { w: 2, wtimeout: 0 },
updateOpTime: Timestamp({ t: 1656696934, i: 1 }),
updateWallClockTime: ISODate("2022-07-01T17:35:40.578Z"),
defaultWriteConcernSource: 'global',
defaultReadConcernSource: 'implicit',
localUpdateWallClockTime: ISODate("2022-07-01T17:35:40.578Z"),
ok: 1,
'$clusterTime': {
...
},
operationTime: Timestamp({ t: 1656632593, i: 1 })
}

Solo puedes deshabilitar la configuración de escritura predeterminada global si aún no la has configurado.

Para anular la configuración de escritura predeterminada global, utilice un documento vacío {}:

db.adminCommand( {
"setDefaultRWConcern" : 1,
"defaultWriteConcern" : {}
} )

Si la preocupación de escritura predeterminada global es:

  • Sin configurar, la operación se realiza correctamente.

  • Ya definido, la operación devuelve el siguiente error.

MongoServerError: The global default write concern cannot be unset
once it is set.

Volver

setParameter

En esta página