Docs Menu
Docs Home
/ /
Degradar la versión de 6.0 a 5.0

Degradar 6.0 clúster a 5.0

Antes de intentar realizar una degradación, familiarícese con el contenido de esta página.

Importante

Antes de actualizar o degradar un clúster fragmentado, asegúrese de que todos sus miembros estén en ejecución. De lo contrario, la actualización o degradación no se completará hasta que todos los miembros se hayan iniciado.

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.

Antes de comenzar con el procedimiento de degradación, debes completar los siguientes pasos previos.

1

Opcional pero recomendado. Crea una copia de seguridad de tu base de datos.

Para saber cómo crear una copia de seguridad, consulte Métodos de respaldo para una implementación autogestionada.

2

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.

4

Para degradar el FCV de su clúster fragmentado:

  1. Asegúrese de que no haya ninguna sincronización inicial en curso. Ejecutar el setFeatureCompatibilityVersion comando mientras hay una sincronización inicial en curso provoca que esta se reinicie.

  2. Asegúrese de que ningún nodo tenga un newlyAdded campo 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 newlyAdded solo 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.

  3. Asegúrese de que ningún miembro del conjunto de réplicas esté en el estado ROLLBACK RECOVERING o.

  4. Utilice para mongosh mongos conectarse a su instancia.

  5. Bajar de featureCompatibilityVersion a "5.0".

    db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )

    El setFeatureCompatibilityVersion comando realiza escrituras en una colección interna del sistema y es idempotente. Si el comando no se completa correctamente, vuelva a intentarlo en la mongos instancia.

    Nota

    Solución de problemas

    • Mientras se ejecuta en el clúster fragmentado, las migraciones, divisiones y fusiones de fragmentos pueden setFeatureCompatibilityVersion fallar ConflictingOperationInProgress con.

    • Si falla con setFeatureCompatibilityVersion un ManualInterventionRequired error y el clúster ha pasado recientemente por una operación de reorganización que falló debido a una elección, debe ejecutar el cleanupReshardCollection comando antes de intentar ejecutar setFeatureCompatibilityVersion nuevamente.

  6. Para garantizar que todos los miembros del conjunto de réplicas tengan el featureCompatibilityVersion actualizado, conéctese a cada miembro del conjunto de réplicas y verifique el featureCompatibilityVersion:

    db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )

    Tip

    Control de acceso

    Para un clúster fragmentado que tiene habilitado el control de acceso, para ejecutar adminCommand en un miembro del conjunto de réplicas de fragmentos, debe conectarse al miembro como un usuario local de fragmentos.

    Todos los miembros deben devolver un resultado que incluya:

    "featureCompatibilityVersion" : { "version" : "5.0" }

    Si cualquier nodo retorna un featureCompatibilityVersion de "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.

Advertencia

Antes de proceder con el proceso de degradación, asegúrese de que todos los miembros del clúster fragmentado, incluidos los miembros del conjunto de réplicas retrasadas, tengan los cambios necesarios. Para ello, marque la casilla featureCompatibilityVersion y elimine las características incompatibles de cada nodo antes de degradar.

1

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.

2

Asegúrese de que los binarios 5.0 estén en la ruta de acceso del sistema. Para confirmar la versión de su binario, ejecute el siguiente comando:

mongod --version

La salida del comando debe indicar una versión de la serie 5.0.

3

Para deshabilitar el balanceador, conecte mongosh a una instancia en el clúster fragmentado y ejecute el siguiente mongos comando:

sh.stopBalancer()

Nota

Si hay una migración en curso, MongoDB la completa antes de detener el balanceador. Para comprobar el estado actual del balanceador,sh.isBalancerRunning() ejecute.

Para verificar que el balanceador esté deshabilitado, ejecute el siguiente comando:

sh.getBalancerState()

sh.getBalancerState() devuelve false si el balanceador está deshabilitado.

Para obtener más información sobre cómo deshabilitar el balanceador,consulte Deshabilitar el balanceador.

4
  1. Para detener mongos, ejecute el siguiente comando:

    db.shutdownServer()
  2. Reinicia mongos con el binario 5.0.

5
  1. Degradar los miembros secundarios del fragmento, uno a la vez.

    1. Apaga el miembro.

      Para cerrar el mongod proceso, use para conectarse a la implementación y ejecute el siguiente mongosh comando:

      db.adminCommand( { shutdown: 1 } )
    2. Reinicia el nodo.

      Para iniciar un proceso mongod, ejecute el siguiente comando:

      mongod --dbpath </path-to-data-folder>
    3. Espere a que el miembro ingrese al estado SECONDARY.

      Antes de degradar el siguiente secundario, espere a que el miembro se recupere al SECONDARY estado. Para comprobar el estado del miembro, utilice el rs.status() método mongosh en.

    4. Repita los pasos anteriores para degradar cada miembro secundario.

  2. Degradar el árbitro de particiones, si lo hay.

    Omita este paso si el conjunto de réplicas no incluye un árbitro.

    Degradar el miembro árbitro del clúster fragmentado:

    1. Apaga el miembro.

      Para apagar el árbitro, use para conectarse al árbitro y ejecute el siguiente mongosh comando:

      db.adminCommand( { shutdown: 1 } )
    2. Eliminar el contenido del directorio de datos del árbitro.

      Para encontrar el directorio de datos del árbitromongod, verifique la configuraciónstorage.dbPatho la opción de línea de comando--dbpath.

      Ejecuta el siguiente comando:

      rm -rf /path/to/mongodb/datafiles/*
    3. Reinicie el árbitro.

      Para iniciar un proceso mongod, ejecute el siguiente comando:

      mongod --dbpath </path-to-mongodb-datafiles>
    4. Espere a que el miembro ingrese al estado ARBITER.

      Antes de degradar el miembro principal, espere a que el miembro se recupere al ARBITER estado. Para comprobar el estado del miembro, utilice el rs.status() método mongosh en.

  3. Degradar el fragmento primario.

    1. Reducir la primaria.

      mongoshEn, use rs.stepDown() para retirar las primarias y comenzar una elección para una nueva primaria:

      rs.stepDown()
    2. 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.

    3. Apaga el ex miembro principal.

      Para apagar el servidor principal anterior, conéctese a la implementación mediante y ejecute el siguiente mongosh comando:

      db.adminCommand( { shutdown: 1 } )
    4. Reinicie el con mongod el 5.0 binario.

      Para iniciar un proceso mongod, ejecute el siguiente comando:

      mongod --dbpath </path-to-mongodb-datafiles>
    5. Repita este procedimiento para los fragmentos restantes.

6
  1. Degrada los miembros secundarios de la partición del set de réplicas de los servidores de configuración (CSRS) uno a la vez:

    1. Apague el secundario.

      Conéctese al secundario y ejecute el siguiente comando:

      db.adminCommand( { shutdown: 1 } )
    2. Reinicia el nodo.

      Para iniciar un proceso mongod, ejecute el siguiente comando:

      mongod --dbpath </path-to-data-folder>
    3. Espere a que el miembro ingrese al estado SECONDARY.

      Antes de degradar el siguiente secundario, espere a que el miembro se recupere al SECONDARY estado. Para comprobar el estado del miembro, utilice el rs.status() método mongosh en.

    4. Repita los pasos anteriores para degradar cada miembro secundario.

  2. Degradar la configuración del servidor principal.

    1. Reducir la primaria.

      mongoshEn, ejecute rs.stepDown() para retirarse de la primaria y comenzar una elección para una nueva primaria:

      rs.stepDown()
    2. 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.

    3. Apaga el ex miembro principal.

      Para apagar el servidor principal anterior, conéctese a la implementación mediante y ejecute el siguiente mongosh comando:

      db.adminCommand( { shutdown: 1 } )
    4. Reinicie el con mongod el 5.0 binario.

      Para iniciar un proceso mongod, ejecute el siguiente comando:

      mongod --dbpath </path-to-mongodb-datafiles>
7

Después de degradar todos los componentes del clúster fragmentado, conéctese a un y ejecute el siguiente comando para volver a habilitar el mongos equilibrador:

sh.startBalancer()

El método sh.startBalancer() también habilita la división automática para el clúster compartido.

Volver

Set de réplicas

En esta página