Antes de intentar realizar una degradación, familiarízate con el contenido de esta página.
Ruta de degradación
Importante
Antes de actualizar o degradar un clúster, asegúrate de que todos los nodos del clúster estén en funcionamiento. Si no lo hace, la actualización o degradación no se completará hasta que todos los nodos estén iniciados.
Si necesita degradar desde 9.0, degrade a la última versión parcheada de 8.3.
MongoDB solo admite degradaciones de una única versión a lo largo de versiones adyacentes. No puedes cambiar a una versión que esté varias versiones por detrás de tu versión actual.
Para cualquier versión de MongoDB, puede actualizar o degradar a la versión principal o secundaria inmediatamente anterior.
Control de acceso
Si el set de réplicas tiene control de acceso habilitado, los privilegios del usuario de degradación deben incluir privilegios para listar y gestionar índices en todas las bases de datos. Un usuario con el rol de root tiene los privilegios necesarios.
Requisitos previos
Antes de comenzar con el procedimiento de degradación, debes completar los siguientes pasos previos.
Crear copia de seguridad
Opcional, pero recomendado. Crea una copia de seguridad de tu base de datos.
Para aprender cómo crear una copia de seguridad, consulte Métodos de copia de seguridad para una implementación autogestionada.
Remover funcionalidades incompatibles con versiones anteriores
Para realizar una reversión de 9.0 a 8.3, debe eliminar las características de 9.0 que sean incompatibles con 8.3. Para obtener una lista de las características incompatibles y cómo eliminarlas, consulte Características incompatibles con versiones anteriores.
Reducir la compatibilidad de características entre versiones (FCV)
Para degradar el FCV de tu set de réplicas:
Asegúrate de que no haya una sincronización inicial en curso. Ejecutar el comando
setFeatureCompatibilityVersionmientras se está llevando a cabo una sincronización inicial provoca que la sincronización inicial se reinicie.Asegúrate de que ningún nodo tenga un campo
newlyAddeden su configuración del set de réplicas. Ejecuta el siguiente comando en cada nodo de tu set de réplicas para verificar esto:use local db.system.replset.find( { "members.newlyAdded" : { $exists : true } } ); El campo
newlyAddedsolo aparece en el documento de configuración del set de réplicas de un nodo durante y poco después de una sincronización inicial.Asegúrese de que ningún miembro del conjunto de réplicas esté en el
ROLLBACKni en elRECOVERINGestado.Use
mongoshpara conectarse a su principal.Degrade el
featureCompatibilityVersiona"8.3".Importante
Verifica que hayas eliminado todas las funcionalidades incompatibles antes de cambiar a la versión binary anterior. Asegúrate de evaluar tu ruta de actualización antes de continuar.
db.adminCommand( { setFeatureCompatibilityVersion: "8.3", confirm: true } ) El comando
setFeatureCompatibilityVersionrealiza operaciones de guardado en una colección del sistema interno y es idempotente. Si el comando no se completa correctamente, vuelve a intentarlo en primaria.Para garantizar que todos los miembros del set de réplicas tengan el
featureCompatibilityVersionactualizado, conecte con cada miembro del set de réplicas y verifique elfeatureCompatibilityVersion:db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } ) "featureCompatibilityVersion" : { "version" : "8.3" } Si cualquier nodo retorna un
featureCompatibilityVersionde"9.0", espera a que el nodo retorne la versión"8.3"antes de continuar.
Para obtener más información sobre el valor de featureCompatibilityVersion devuelto, consulta Obtener la Version de Compatibilidad de Características.
Procedimiento de reversión
Advertencia
Antes de proceder con el procedimiento de degradación, asegúrese de que todos los miembros del conjunto de réplicas, incluidos los miembros del conjunto de réplicas con retardo, cuenten con los cambios necesarios. Para ello, compruebe el archivo featureCompatibilityVersion y elimine las características incompatibles de cada nodo antes de la degradación.
Descargue la última 8.3 binary
Utiliza un administrador de paquete o una descargar manual para obtener la versión más reciente de 8.3. Si utilizas un gestor de paquetes, añade un nuevo repositorio para los binary 8.3 y, a continuación, realiza el proceso de degradación real.
Importante
Antes de actualizar o degradar un clúster, asegúrate de que todos los nodos del clúster estén en funcionamiento. Si no lo hace, la actualización o degradación no se completará hasta que todos los nodos estén iniciados.
Si necesita degradar desde 9.0, degrade a la última versión parcheada de 8.3.
Degrade los miembros secundarios del set de réplicas
Degrade cada secundario miembro del set de réplicas, uno a la vez:
Apaga el nodo.
Para cerrar el proceso
mongod, utilizamongoshpara conectarte al secundario y ejecuta el siguiente comando:db.adminCommand( { shutdown: 1 } ) Reinicia el nodo.
Para iniciar un proceso
mongod, ejecuta el siguiente comando:mongod --dbpath </path-to-data-folder> Para obtener más información sobre cómo iniciar un proceso
mongod, consulta Inicia procesosmongod.Espere a que el nodo entre en el estado
SECONDARY.Antes de degradar el siguiente secundario, espere a que el nodo se recupere al estado
SECONDARY. Para verificar el estado del nodo, utiliza el métodors.status()enmongosh.Una vez que el miembro esté en estado
SECONDARY, degrade el siguiente secundario.
Degradar el set de réplicas del árbitro
Omite este paso si el conjunto de réplicas no incluye un árbitro.
Degradar al árbitro nodo del set de réplicas:
Apaga el nodo.
Para apagar el árbitro, utiliza
mongoshpara conectarte al árbitro y ejecutar el siguiente comando:db.adminCommand( { shutdown: 1 } ) Borrar el contenido del directorio de datos del árbitro.
Para encontrar el directorio de datos del árbitro
mongod, revise la configuración de lastorage.dbPatho la opción de línea de comandos--dbpath.Ejecuta el siguiente comando:
rm -rf /path/to/mongodb/datafiles/* Reinicia el árbitro.
Para iniciar un proceso
mongod, ejecuta el siguiente comando:mongod --dbpath </path-to-mongodb-datafiles> Para obtener más información sobre cómo iniciar un proceso
mongod, consulta Inicia procesosmongod.Espere a que el nodo entre en el estado
ARBITER.Antes de hacer un downgrade, espere a que el nodo se recupere al estado
ARBITER. Para verificar el estado del nodo, utiliza el métodors.status()enmongosh.
Bajar de categoría el primario
Degradar al primario.
En
mongosh, utilicers.stepDown()para dejar de ser primario y forzar el procedimiento normal de conmutación por falla.rs.stepDown() Verifique que el primario se haya desactivado.
Ejecuta el siguiente comando:
rs.status() Verifique que el nodo principal haya renunciado y que otro nodo haya asumido el estado
PRIMARY.Reemplazar y reiniciar el antiguo primary
mongod.Apaga el nodo.
Para apagar el servidor principal, utilice
mongoshpara conectarse al servidor principal y ejecute el siguiente comando:db.adminCommand( { shutdown: 1 } ) Reinicie
mongodcon el binario 8.3.Para iniciar un proceso
mongod, ejecuta el siguiente comando:mongod --dbpath </path-to-mongodb-datafiles> Para obtener más información sobre cómo iniciar un proceso
mongod, consulta Inicia procesosmongod.