Docs Menu
Docs Home
/ /

Actualice un clúster fragmentado a 8.2

Importante

MongoDB 8.2 es la última versión menor. A partir de MongoDB 8.2, hay versiones menores disponibles para implementaciones locales (MongoDB Community y Enterprise) para casos de uso específicos. Para más información, consulte Control de versiones de MongoDB.

Para instalar la última versión de MongoDB compatible para uso on-premises, consulta las instrucciones de instalación.

Se debe familiarizar con el contenido de este documento, incluyendo una revisión exhaustiva de los requisitos previos, antes de actualizar a MongoDB 8.2.

Los siguientes pasos describen el procedimiento para actualizar un mongod que es un miembro del fragmento de la versión 8.0 a la 8.2.

Si necesita orientación sobre cómo actualizar a 8.2, Los servicios profesionales de MongoDB ofrecen soporte para actualizaciones de versiones principales para garantizar una transición fluida y sin interrupciones en su aplicación MongoDB.

Al actualizar, considere lo siguiente:

Para actualizar una implementación existente de MongoDB a 8.2, se debe estar ejecutando una versión de la serie 8.0.

Para actualizar desde una versión anterior a la serie 8.0, debe actualizar sucesivamente las versiones principales hasta que se haya actualizado a la serie 8.0. Por ejemplo, si se está ejecutando una serie 7.0, primero se debe actualizar a 8.0 antes de poder actualizar a 8.2.

Antes de actualizar MongoDB, se debe comprobar que se está usando un driver compatible con MongoDB 8.2. Se debe consultar la documentación del driver para el driver específico que se está usando y verificar la compatibilidad con MongoDB 8.2.

Las implementaciones actualizadas que se ejecutan en controladores incompatibles podrían experimentar un comportamiento inesperado o indefinido.

Antes de actualizar, se puede consultar el documento Cambios de compatibilidad en MongoDB 8.2 para garantizar que las aplicaciones e implementaciones sean compatibles con MongoDB 8.2. Se pueden resolver las incompatibilidades en la implementación antes de comenzar la actualización.

Antes de actualizar MongoDB, siempre se debe probar la aplicación en un entorno de pruebas antes de implementar la actualización en el entorno de producción.

No se puede degradar la versión binaria de la implementación sin asistencia de soporte técnico.

Para aprender más, consultar Degradar 8.2 a 8.0.

Para actualizar un clúster fragmentado 8.2 a, todos los miembros del clúster deben tener al menos la 8.0 versión. El proceso de actualización verifica todos los componentes del clúster y genera advertencias si algún componente ejecuta una versión anterior 8.0 a.

El clúster particionado 8.0 debe tener featureCompatibilityVersion configurado en "8.0".

Para garantizar que todos los miembros del clúster fragmentado tengan featureCompatibilityVersion configurado en "8.0", conéctese a cada miembro del conjunto de réplicas de fragmentos y a cada miembro del conjunto de réplicas del servidor de configuración y verifique featureCompatibilityVersion:

Tip

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

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

Todos los nodos deben devolver un resultado que incluya "featureCompatibilityVersion" : { "version" : "8.0" }.

Para configurar o featureCompatibilityVersion actualizar, ejecute el siguiente comando mongos en:

db.adminCommand( { setFeatureCompatibilityVersion: "8.0", confirm: true } )

Para obtener más información, consulta setFeatureCompatibilityVersion.

Para los fragmentos y los servidores de configuración, asegúrese de que ningún miembro del conjunto de réplicas esté en el estado ROLLBACK RECOVERING o.

db.adminCommand( { replSetGetStatus: 1 } )

Opcional, pero recomendado. Como precaución, realice una copia de seguridad de la config base de datos antes de actualizar el clúster fragmentado.

Al actualizar a 8.2, si tienes alguna colección system.buckets que no sea de series de tiempo, es posible que necesites drop o rename esas colecciones antes de actualizar, dependiendo de la versión del parche 8.0:

MongoDB 8.0.5 y posterior
No es necesario descartar las colecciones system.buckets que no sean colecciones de serie de tiempo antes de actualizar. Sin embargo, debes descartarlas o renombrarlas después de completar la actualización.
MongoDB 8.0.4 y versiones anteriores
Debe eliminar o renombrar system.buckets las colecciones que no sean de series temporales antes de actualizar. Todas las system.buckets colecciones deben tener configuradas opciones de series temporales válidas antes de actualizar a las versiones -.8.0.0 8.0.4

Para determinar si tienes colecciones system.buckets que no sean colecciones de series de tiempo, usa el método db.getCollectionInfos() con un filtro:

db.getCollectionInfos(
{
$and: [
{ name: { $regex: /^system\.buckets/ } },
{ 'options.timeseries': { $exists: false } }
]
}
)

Si se instaló MongoDB desde los repositorios de MongoDB apt, yum, dnf o zypper, se debería actualizar a 8.2 usando el administrador de Paquetes.

Se deben seguir las instrucciones de instalación 8.2 adecuadas para el sistema Linux. Esto implicará añadir un repositorio para la nueva versión y, a continuación, realizar el proceso de actualización propiamente dicho.

Si no se ha instalado MongoDB usando un administrador de paquetes, se pueden descargar manualmente los binarios de MongoDB desde el Centro de Descargas de MongoDB.

Consultar instrucciones de instalación 8.2 para obtener más información.

1

Conecte mongosh a una mongos instancia en el clúster fragmentado y ejecute sh.stopBalancer() para deshabilitar el balanceador:

sh.stopBalancer()

Nota

Si hay una migración en curso, el sistema la completará antes de detener el balanceador. Puede ejecutar para comprobar el estado actual del sh.isBalancerRunning() balanceador.

Para verificar que el balanceador esté deshabilitado, ejecute, que devuelve falso si el balanceador está sh.getBalancerState() deshabilitado:

sh.getBalancerState()

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

2
  1. Actualice los miembros secundarios del conjunto de réplicas, uno a la vez.

    1. Apague la instancia secundaria.

      Para cerrar el proceso mongod, use mongosh para conectarse al nodo del clúster y ejecutar el siguiente comando:

      db.adminCommand( { shutdown: 1 } )
    2. Reemplaza el binario 8.0 con el binario 8.2.

    3. Inicie el binario 8.2.

      Inicie el 8.2 binario --configsvr --replSetcon, y. Incluya cualquier otra opción que utilice la --port implementación.

      mongod --configsvr --replSet <replSetName> --port <port> --dbpath <path> --bind_ip localhost,<ip address>

      Si utiliza un archivo de configuración, actualice el archivo para sharding.clusterRole: configsvr replication.replSetNamenet.portespecificar,, y, luego inicie net.bindIp el 8 2 binario.:

      sharding:
      clusterRole: configsvr
      replication:
      replSetName: <string>
      net:
      port: <port>
      bindIp: localhost,<ip address>
      storage:
      dbpath: <path>

      Incluya cualquier otra configuración según sea necesario para su implementación.

    4. Espere a que el miembro se recupere al estado SECONDARY antes de actualizar al siguiente miembro secundario.

      Para comprobar el estado del nodo, ejecuta rs.status() en mongosh.

  2. Reduce el primario del set de réplicas.

    1. Conecte a la mongosh rs.stepDown() primaria y use para reducir la primaria y forzar la elección de una nueva primaria:

      rs.stepDown()
    2. Apague el primario reductor.

      Cuando muestra que el primario ha reducido su nivel y otro miembro ha asumido rs.status() el PRIMARY estado, apague el primario reducido.

      Para apagar el servidor primario reducido, use para conectarse al servidor primario y ejecute el siguiente mongosh comando:

      db.adminCommand( { shutdown: 1 } )
    3. Reemplace el binario con mongod el 8.2 binario.

    4. Inicie el binario 8.2.

      Inicie 8.2 con --configsvr --replSetlas opciones,, y. Incluya las opciones de línea--port de comandos opcionales utilizadas en la implementación anterior:--bind_ip

      mongod --configsvr --replSet <replSetName> --port <port> --dbpath <path> --bind_ip localhost,<ip address>

      Si utiliza un archivo de configuración, actualice el archivo para sharding.clusterRole: configsvr replication.replSetNamenet.portespecificar,, y, luego inicie net.bindIp el 8 2 binario.:

      sharding:
      clusterRole: configsvr
      replication:
      replSetName: <string>
      net:
      port: <port>
      bindIp: localhost,<ip address>
      storage:
      dbpath: <path>

      Incluye cualquier otra configuración que sea adecuada para tu implementación.

3

Mejora los fragmentos uno a uno.

Para cada conjunto de réplicas de fragmentos:

  1. Actualice los miembros secundarios del conjunto de réplicas, uno a la vez.

    1. Apague la instancia secundaria.

      Para cerrar el proceso mongod, use mongosh para conectarse al nodo del clúster y ejecutar el siguiente comando:

      db.adminCommand( { shutdown: 1 } )
    2. Reemplaza el binario 8.0 con el binario 8.2.

      Inicie el 8.2 binario con las --shardsvr opciones,, y. Incluya las opciones de línea de comandos adicionales que correspondan a su--replSet --port --bind_ip implementación:

      mongod --shardsvr --replSet <replSetName> --port <port> --dbpath <path> --bind_ip localhost,<ip address>

      Si usa un archivo de configuración, actualice el archivo para sharding.clusterRole: shardsvr replication.replSetNamenet.portincluir,, y, luego inicie net.bindIp el 8 2 binario.:

      sharding:
      clusterRole: shardsvr
      replication:
      replSetName: <string>
      net:
      port: <port>
      bindIp: localhost,<ip address>
      storage:
      dbpath: <path>

      Incluye cualquier otra configuración que sea adecuada para tu implementación.

    3. Espere a que el miembro se recupere al estado SECONDARY antes de actualizar al siguiente miembro secundario.

      Para comprobar el estado del nodo, puedes emitir rs.status() en mongosh.

    4. Repita esto para cada miembro secundario.

  2. Reduce el primario del set de réplicas.

    Conecte a la mongosh rs.stepDown() primaria y use para reducir la primaria y forzar la elección de una nueva primaria:

    rs.stepDown()
  3. Actualizar la primaria reducida.

    Cuando muestra que el primario ha reducido su número y otro miembro ha asumido rs.status() el PRIMARY estado, actualice el primario reducido:

    1. Apague el primario reductor.

      Para apagar el servidor primario reducido, use mongosh para conectarse al miembro del conjunto de réplicas y ejecute el siguiente comando:

      db.adminCommand( { shutdown: 1 } )
    2. Reemplace el binario con mongod el 8.2 binario.

    3. Inicie el binario 8.2.

      Inicie el 8.2 binario con las --shardsvr opciones,, y. Incluya las opciones de línea de comandos adicionales que correspondan a su--replSet --port --bind_ip implementación:

      mongod --shardsvr --replSet <replSetName> --port <port> --dbpath <path> --bind_ip localhost,<ip address>

      Si utiliza un archivo de configuración, actualice el archivo para sharding.clusterRole: shardsvr replication.replSetNamenet.portespecificar,, y, luego inicie net.bindIp el 8 2 binario.:

      sharding:
      clusterRole: shardsvr
      replication:
      replSetName: <string>
      net:
      port: <port>
      bindIp: localhost,<ip address>
      storage:
      dbpath: <path>

      Incluye cualquier otra configuración que sea adecuada para tu implementación.

4

Importante

Actualice primero todas las instancias del conjunto de réplicas del servidor de configuración (CSRS), luego todos los miembros del fragmento y, por último, las instancias mongos. Actualizar mongos antes de completar estas actualizaciones puede causar problemas de compatibilidad.

Reemplace cada instancia con mongos el 8.2 binario y reinicie. Incluya cualquier otra configuración según corresponda para su implementación.

Nota

La opción debe especificarse cuando los miembros del clúster fragmentado se ejecutan en diferentes hosts o si los clientes remotos se conectan al clúster --bind_ip fragmentado.

mongos --configdb csReplSet/<rsconfigsver1:port1>,<rsconfigsver2:port2>,<rsconfigsver3:port3> --bind_ip localhost,<ip address>
5

mongoshUsando, conéctese a un mongos en el clúster y ejecute sh.startBalancer() para volver a habilitar el balanceador:

sh.startBalancer()

Para obtener más información sobre cómo volver a habilitar el balanceador,consulte Habilitar el balanceador.

6

En este punto, se pueden ejecutar los binarios 8.2 sin las características 8.2 que son incompatibles con 8.0.

Para activar estas características 8.2, se debe establecer la compatibilidad de características entre versiones (FCV) a 8.2. También debe establecer confirm en verdadero si se actualiza a 7.0 o posterior.

Tip

Activar estas características incompatibles con versiones anteriores puede complicar el proceso de degradación, ya que se debe remover cualquier característica incompatible con versiones anteriores que persista antes de realizar la degradación.

Se recomienda que, tras la actualización, se permita que la implementación se ejecute sin habilitar estas características durante un periodo de prueba para asegurar que la probabilidad de reversión sea mínima. Cuando se esté seguro de que la probabilidad de degradación es mínima, se pueden activar estas características.

En una instancia mongos, ejecuta el comando setFeatureCompatibilityVersion en la base de datos admin:

db.adminCommand( { setFeatureCompatibilityVersion: "8.2", confirm: true } )

La configuración featureCompatibilityVersion (FCV): "8.2" realiza implícitamente un en cada replSetReconfig term fragmento para agregar el campo al documento de configuración de réplica del fragmento.

El comando no se completa hasta que la nueva configuración se propaga a la mayoría de los miembros del conjunto de réplicas.

Este comando debe realizar escrituras en una colección interna del sistema. Si por alguna razón el comando no se completa con éxito, puede volver a ejecutar el comando de manera segura en el mongos, ya que la operación es idempotente.

Nota

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

Cualquier documento huérfano que exista en las particiones se limpiará cuando se configure el setFeatureCompatibilityVersion a 8.2. El proceso de limpieza:

Advertencia

Compatibilidad con FCV de Mongos

El binariomongosno puede conectarse a instanciasmongodcuya versión de compatibilidad de características (FCV) sea superior a la demongos. Por ejemplo, no se puede conectar una versiónmongosde MongoDB 8.0 a un clúster fragmentado 8.2 con FCV establecido en 8.2. Sin embargo, sí se puede conectar una versiónmongosde MongoDB 8.0 a un clúster fragmentado 8.2 con FCV establecido en 8.0.

Volver

Set de réplicas

En esta página