Antes de intentar realizar una degradación, familiarícese con el contenido de esta página.
Ruta de degradación
Importante
Antes de actualizar o degradar un Set de réplicas, asegúrate de que todos los miembros del Set de réplicas estén en funcionamiento. De lo contrario, la actualización o degradación no se completará hasta que se inicien todos los miembros.
Si necesitas realizar un downgrade desde la versión 6.0, hazlo a la última versión de 5.0.
MongoDB solamente soporta degradaciones de una única versión. No se puede retroceder a una versión que esté varias versiones por detrás de la versión actual.
Por ejemplo, puede degradar una implementación de la serie 6.0a una de la serie 5.0. Sin embargo, no se admite degradar esa implementación de la serie 5.0a una de la serie 4.4.
Control de acceso
Si su conjunto de réplicas tiene habilitado el control de acceso, sus privilegios de usuario de degradación deben incluir privilegios para enumerar y administrar índices en las bases de datos. Un usuario con root El rol tiene los privilegios requeridos.
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 a crear una copia de seguridad,consulte Métodos de copia de seguridad para una implementación autoadministrada.
Eliminar funciones incompatibles con versiones anteriores
Para realizar una reversión de 6.0 a 5.0, es necesario remover las funcionalidades 6.0 que no son compatibles con 5.0. Para obtener una lista de funcionalidades incompatibles y cómo removerlas, consulta Consideraciones sobre la reversión.
Versión de compatibilidad de funciones de degradación (FCV)
Para degradar el FCV de su conjunto de réplicas:
Asegúrese de que no haya ninguna sincronización inicial en curso. Ejecutar el
setFeatureCompatibilityVersioncomando mientras hay una sincronización inicial en curso provoca que esta se reinicie.Asegúrese de que ningún nodo tenga un
newlyAddedcampo en la configuración de su conjunto de réplicas. Ejecute el siguiente comando en cada nodo del conjunto de réplicas para verificarlo:use local db.system.replset.find( { "members.newlyAdded" : { $exists : true } } ); El campo
newlyAddedsolo aparece en el documento de configuración del conjunto 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 estado
ROLLBACKRECOVERINGo.Utilice para conectarse a su dispositivo
mongoshprincipal.Bajar de
featureCompatibilityVersiona"5.0".db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } ) El
setFeatureCompatibilityVersioncomando realiza escrituras en una colección interna del sistema y es idempotente. Si el comando no se completa correctamente, vuelva a intentarlo en el servidor principal.Para garantizar que todos los miembros del conjunto de réplicas tengan el
featureCompatibilityVersionactualizado, conéctese a cada miembro del conjunto de réplicas y verifique elfeatureCompatibilityVersion:db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } ) Todos los miembros deben devolver un resultado que incluya:
"featureCompatibilityVersion" : { "version" : "5.0" } Si cualquier nodo retorna un
featureCompatibilityVersionde"6.0", espera a que el nodo retorne la versión"5.0"antes de continuar.
Para obtener más información sobre el featureCompatibilityVersion valor devuelto,consulte Obtener FeatureCompatibilityVersion.
Procedimiento de degradación
Advertencia
Antes de proceder con el proceso de degradación, asegúrese de que todos los miembros del conjunto de réplicas, incluidos los miembros retrasados, tengan los cambios necesarios. Para ello, marque la casilla featureCompatibilityVersion y elimine las características incompatibles de cada nodo antes de degradar.
Descargue los últimos binarios 5.0.
Usando un gestor de paquetes o una descarga manual, obtenga la última versión de la serie 5.0. Si usa un gestor de paquetes, agregue un nuevo repositorio para los binarios 5.0 y luego realice el proceso de degradación.
Importante
Antes de actualizar o degradar un Set de réplicas, asegúrate de que todos los miembros del Set de réplicas estén en funcionamiento. De lo contrario, la actualización o degradación no se completará hasta que se inicien todos los miembros.
Si necesitas realizar un downgrade desde la versión 6.0, hazlo a la última versión de 5.0.
Degradar los miembros secundarios del conjunto de réplicas.
Degradar cada miembro secundario del conjunto de réplicas, uno a la vez:
Apaga el miembro.
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, ejecute 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 miembro ingrese al estado
SECONDARY.Antes de degradar el siguiente secundario, espere a que el miembro se recupere al
SECONDARYestado. Para comprobar el estado del miembro, utilice elrs.status()métodomongoshen.Una vez que el miembro esté en la etapa
SECONDARY, degrade al siguiente secundario.
Degradar el miembro del conjunto de réplicas del árbitro, si lo hay.
Omita este paso si el conjunto de réplicas no incluye un árbitro.
Degradar el miembro árbitro del conjunto de réplicas:
Apaga el miembro.
Para apagar el árbitro, use para conectarse al árbitro y ejecute el siguiente
mongoshcomando:db.adminCommand( { shutdown: 1 } ) Eliminar el contenido del directorio de datos del árbitro.
Para encontrar el directorio de datos del árbitro
mongod, verifique la configuraciónstorage.dbPatho la opción de línea de comando--dbpath.Ejecuta el siguiente comando:
rm -rf /path/to/mongodb/datafiles/* Reinicie el árbitro.
Para iniciar un proceso
mongod, ejecute 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 miembro ingrese al estado
ARBITER.Antes de degradar el miembro principal, espere a que el miembro se recupere al
ARBITERestado. Para comprobar el estado del miembro, utilice elrs.status()métodomongoshen.
Rebajar la primaria.
Reducir la primaria.
mongoshEn, utilicers.stepDown()para reducir el nivel del servidor principal y forzar el procedimiento de conmutación por error normal.rs.stepDown() Verifique que el primario haya bajado.
Ejecuta el siguiente comando:
rs.status() Verifique que el miembro principal haya renunciado y que otro miembro haya asumido el estado
PRIMARY.Reemplace y reinicie el disco primario anterior
mongod.Apaga el miembro.
Para realizar un apagado del servidor principal, utilice para conectarse al servidor principal y ejecute el siguiente
mongoshcomando:db.adminCommand( { shutdown: 1 } ) Reinicie con
mongodel 5.0 binario.Para iniciar un proceso
mongod, ejecute 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.