Definición
setFeatureCompatibilityVersionActiva o desactiva las características que mantienen datos incompatibles con versiones anteriores de MongoDB. Sólo puedes emitir el
setFeatureCompatibilityVersioncontra la base de datosadmin.
Advertencia
La habilitación de características incompatibles con versiones anteriores puede complicar el proceso de degradación, ya que debes Remover cualquier característica incompatible con versiones anteriores que persista antes de realizar la degradación.
Se recomienda que, después de actualizar, se permita que la implementación se ejecute sin habilitar funcionalidades incompatibles con versiones anteriores durante un período de prueba para asegurar que la probabilidad de tener que realizar una degradación sea mínima. Cuando te tenga la certeza de que la probabilidad de degradación es mínima, se deben activar estas funcionalidades.
Compatibilidad
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.
Sintaxis
El comando toma la siguiente forma:
db.adminCommand( { setFeatureCompatibilityVersion: <version>, writeConcern: { wtimeout: <timeout> } } )
Los valores para version son:
Versión | Descripción |
|---|---|
| Disponible en MongoDB 5.0. Implementaciones Permite las 5.0 características que persisten datos incompatibles con MongoDB 4.4. |
| Disponible en implementaciones de MongoDB 4.4 y 5.0 Habilita las características 4.4 que persisten datos incompatibles con MongoDB 4.2. |
| Disponible en implementaciones de MongoDB 4.4 Deshabilita las funciones 4.4 que persisten datos incompatibles con MongoDB 4.2. |
writeConcern
Opcional
El writeConcern especifica el valor wtimeout del nivel de confirmación de escritura en milisegundos:
El período de tiempo que el primario espera la confirmación de la mayoría de los miembros del Set de réplicas. Si no se recibe el acuse de recibo en el período de tiempo, la operación falla.
Por defecto es
60000milisegundos. Utiliza un período de tiempo más largo si los miembros secundarios del Set de réplicas tienen un retraso que excede elwtimeoutpor defecto.
Comportamiento
Conflictos con las operaciones en segundo plano
Ciertas operaciones en segundo plano pueden impedir la ejecución de setFeatureCompatibilityVersion. Utiliza currentOp para identificar cualquier operación en curso.
Fallos de sincronización
Si se produce un setFeatureCompatibilityVersion cambio de trigger durante una sincronización inicial, la sincronización puede fallar con un mensaje de error OplogOperationUnsupported al reproducir las entradas en la fase de aplicación oplog. La sincronización después de este intento tiene éxito porque la fase de Operación ya no repite la Operación.
Default Values
Implementaciones | featureCompatibilityVersion |
|---|---|
Para las nuevas implementaciones 5.0 |
|
Para las 5.0 implementaciones actualizadas desde 4.4 |
|
Idempotencia
Este comando debe realizar guardados en una colección interna del sistema. Si por alguna razón el comando no se completa correctamente, puede volver a intentarlo con seguridad, ya que la operación es idempotente.
Compatibilidad de características en árbitros
Los árbitros no replican la admin.system.version colección. Por esta razón, los árbitros siempre tienen una compatibilidad de funcionalidades entre versiones igual a la versión de degradación del binario, independientemente del valor de la compatibilidad de funcionalidades entre versiones del set de réplicas.
Por ejemplo, un árbitro en un clúster MongoDB 5.0, tiene un valor fCV de 4.4.
Ejemplos
Ver funciónCompatibilidadVersión
Para ver el featureCompatibilityVersion de una instancia mongod, ejecute el siguiente comando en una instancia mongod:
Nota
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
La salida de este comando se asemejará a una de las siguientes, dependiendo del estado actual del mongod:
Si la implementación tiene el valor
featureCompatibilityVersionpredeterminado, o si el comando se ejecutó correctamente en la implementación,setFeatureCompatibilityVersionelfeatureCompatibilityVersiontiene el formato:"featureCompatibilityVersion" : { "version" : <version> } Si el está en un estado parcialmente actualizado o degradado,
mongodelfeatureCompatibilityVersiontiene el siguiente formato:"featureCompatibilityVersion" : { "version" : <version> , "targetVersion" : <target version> } Por ejemplo, si un clúster fragmentado tiene un conjunto
setFeatureCompatibilityVersionmongosfeatureCompatibilityVersionde réplicas detargetVersionfragmentos que es de solo lectura cuando ejecuta el comando contra, el comando fallará y el de los servidores de configuración incluirá el campo.O si un conjunto de réplicas pasa a ser de solo lectura mientras
setFeatureCompatibilityVersionse ejecuta, el comando fallará y elfeatureCompatibilityVersiondel conjunto de réplicastargetVersiontambién incluirá el campo.
Establecer la versión de compatibilidad de funciones en las implementaciones de MongoDB 5.0
Habilitar 5.0 funciones incompatibles con versiones anteriores
Para habilitar las 5.0 funciones que persisten datos incompatibles con MongoDB,4.4 configure la compatibilidad de funciones en en la "5.0" 5.0 implementación de MongoDB:
Nota
Ejecuta el comando setFeatureCompatibilityVersion en la base de datos admin.
db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )
Deshabilitar 5.0 Funciones Incompatibles con Versiones Anteriores
Para deshabilitar las 5.0 funciones que persisten datos incompatibles con MongoDB,4.4 configure la compatibilidad de funciones en en la "4.4" 5.0 implementación de MongoDB:
Nota
Ejecuta el comando setFeatureCompatibilityVersion en la base de datos admin.
Para una instancia autónoma, ejecuta el comando en la instancia
mongodautónoma.Para un Set de réplicas, ejecuta el comando en el Primario. La mayoría de los miembros portadores de datos deben estar disponibles.
Para un clúster fragmentado, ejecuta el comando en una instancia
mongos.
"4.4"featureCompatibilityVersion solo es compatible con implementaciones de MongoDB 4.4 y MongoDB 5.0.
db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )
Si se ejecuta como parte del proceso de degradación de MongoDB 5.0 a MongoDB,4.4 también debe eliminar todas las características persistentes que sean incompatibles con. Consulte 4.4 los procedimientos de degradación correspondientes.
Establecer el Tiempo de Espera del Nivel de Confirmación de Escritura
El siguiente ejemplo establece el campo opcional de nivel de confirmación de escritura wtimeout en 5000 (5 segundos).
Nota
Ejecuta el comando setFeatureCompatibilityVersion en la base de datos admin.
db.adminCommand( { setFeatureCompatibilityVersion: "5.0", writeConcern: { wtimeout: 5000 } } )