Importante
MongoDB 8.3 es la última versión menor. A partir de MongoDB 8.2, las versiones menores están disponibles para implementaciones on-premises (Community y EA) para casos de uso específicos. Para obtener más información, consulta Versionado 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.3.
Los siguientes pasos describen el procedimiento para actualizar un
mongod que es un nodo de partición desde la versión 8.2 hasta la 8.3.
Si necesitas orientación sobre cómo actualizar a la versión 8.3, Servicios profesionales de MongoDB ofrecen soporte de actualización para ayudar a garantizar una transición sin problemas, sin interrupciones en tu aplicación MongoDB.
Recomendaciones de actualizaciones y listas de verificación
Al actualizar, considere lo siguiente:
Ruta de actualización de versión
Para actualizar una implementación existente de MongoDB a 8.3, se debe estar ejecutando una versión de la serie 8.0.
Al actualizar desde una versión menor, debes actualizar sucesivamente las versiones menores hasta haber actualizado a 8.3.
Verifique la compatibilidad del controlador
Antes de actualizar MongoDB, se debe comprobar que se está usando un driver compatible con MongoDB 8.3. Se debe consultar la documentación del driver para el driver específico que se está usando y verificar la compatibilidad con MongoDB 8.3.
Las implementaciones actualizadas que se ejecutan en controladores incompatibles podrían experimentar un comportamiento inesperado o indefinido.
Preparación
Antes de actualizar, se puede consultar el documento Cambios de compatibilidad en MongoDB 8.3 para garantizar que las aplicaciones e implementaciones sean compatibles con MongoDB 8.3. 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.
Consideración de reducción de versión
A partir de MongoDB 8.3, puedes degradar tu versión de MongoDB a la versión inmediatamente anterior, menor o mayor.
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 realizar un downgrade de una implementación 8.0 a una 7.0. Sin embargo, no se admite degradar aún más esa implementación 7.0 a una implementación 6.0.
Para aprender más, consultar Degradar 8.3 a 8.2.
Requisitos previos
Versión de todos los nodos
Para actualizar un clúster particionado a 8.3, todos los nodos del clúster deben tener al menos la versión 8.2. El proceso de actualización verifica todos los componentes del clúster y genera advertencias si algún componente está ejecutando una versión anterior a la 8.2.
Compatibilidad de características entre versiones
El clúster particionado 8.2 debe tener featureCompatibilityVersion configurado en "8.2".
Para garantizar que todos los nodos del clúster tengan featureCompatibilityVersion configurado a "8.2", conéctate a cada miembro del set de réplicas de particiones y a cada miembro del set de réplicas del servidor de configuración. Luego, verifique el featureCompatibilityVersion:
Tip
Para un clúster que tiene el control de acceso habilitado, para ejecutar el siguiente comando contra un miembro del set de réplicas, debes conectarte al miembro como un usuario local del shard.
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
"featureCompatibilityVersion" : { "version" : "8.2" }
Para establecer o actualizar featureCompatibilityVersion, ejecute el siguiente comando en mongos:
db.adminCommand( { setFeatureCompatibilityVersion: "8.2", confirm: true } )
Para obtener más información, consulta setFeatureCompatibilityVersion.
Estado del nodo del set de réplicas
Para particiones y servidores de configuración, asegúrese de que ningún miembro del set de réplicas esté en el estado de ROLLBACK o RECOVERING.
db.adminCommand( { replSetGetStatus: 1 } )
Realiza una copia de seguridad de la base de datos config
Opcional pero recomendado. Como precaución, crea una copia de seguridad de la base de datos config antes de actualizar el clúster particionado.
Descargue 8.3 Binarios
Utiliza un administrador de paquetes
Si se instaló MongoDB desde los repositorios de MongoDB apt, yum, dnf o zypper, se debería actualizar a 8.3 usando el administrador de Paquetes.
Siga las instrucciones adecuadas de instalación de8.3 para su sistema Linux. Esto requiere agregar un repositorio para la nueva versión y luego realizar el proceso de actualización real.
Descarga 8.3 Binarios manualmente
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.3 para obtener más información.
Procedimiento de actualización
Desactivar el balanceador
Conecte mongosh a una instancia mongos en el clúster fragmentado y ejecute sh.stopBalancer() para desactivar el balanceador:
sh.stopBalancer()
Nota
Si una migración está en progreso, el sistema completa la migración en curso antes de detener el balanceador. Puedes ejecutar sh.isBalancerRunning() para comprobar el estado actual del equilibrador.
Para verificar que el balanceador está deshabilitado, ejecute sh.getBalancerState(), que devuelve false si el balanceador está deshabilitado:
sh.getBalancerState()
Para obtener más información sobre cómo deshabilitar el balanceador, consulta Deshabilitar el balanceador.
Actualizar los servidores de configuración
Actualiza los miembros secundarios del set de réplicas, uno a la vez.
Apague la instancia secundaria.
Para cerrar el proceso
mongod, usemongoshpara conectarse al nodo del clúster y ejecutar el siguiente comando:db.adminCommand( { shutdown: 1 } ) Reemplaza el binario 8.2 con el binario 8.3.
Inicie el binario 8.3.
Inicia el binario 8.3 con el
--configsvr,--replSety--port. Incluya cualquier otra opción utilizada por la 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 especificar
sharding.clusterRole: configsvr,replication.replSetName,net.portynet.bindIp, y luego inicie el 8.3 binary:sharding: clusterRole: configsvr replication: replSetName: <string> net: port: <port> bindIp: localhost,<ip address> storage: dbpath: <path> Incluye cualquier otro ajuste que corresponda a tu implementación.
Espere a que el nodo se recupere al estado
SECONDARYantes de actualizar el siguiente nodo secundario.Para comprobar el estado del nodo, ejecuta
rs.status()enmongosh.
Reduce el primario del set de réplicas.
Conecte
mongoshal principal y utilicers.stepDown()para rebajar al principal y forzar la elección de un nuevo principal:rs.stepDown() Apague el primario reducido.
Cuando
rs.status()indique que el nodo principal se ha desplazado y otro miembro ha asumido el estadoPRIMARY, apaga el nodo principal desplazado.Para apagar la primaria degradada, utiliza
mongoshpara conectarte a la primaria y ejecutar el siguiente comando:db.adminCommand( { shutdown: 1 } ) Reemplace el binario
mongodcon el binario 8.3.Inicie el binario 8.3.
Inicia el 8.3 con las opciones
--configsvr,--replSet,--port, y--bind_ip. Incluye cualquier opción de línea de comandos opcional utilizada en la implementación anterior:mongod --configsvr --replSet <replSetName> --port <port> --dbpath <path> --bind_ip localhost,<ip address> Si utilizas un archivo de configuración, actualiza el archivo para especificar
sharding.clusterRole: configsvr,replication.replSetName,net.portynet.bindIp, y luego inicia el 8.3 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.
Actualizar las particiones
Actualice las particiones una por una.
Para cada set de réplicas de particiones:
Actualiza los miembros secundarios del set de réplicas, uno a la vez.
Apague la instancia secundaria.
Para cerrar el proceso
mongod, usemongoshpara conectarse al nodo del clúster y ejecutar el siguiente comando:db.adminCommand( { shutdown: 1 } ) Reemplaza el binario 8.2 con el binario 8.3.
Inicia el binario 8.3 con las opciones
--shardsvr,--replSet,--porty--bind_ip. Incluya las opciones de línea de comandos adicionales que correspondan para su implementación:mongod --shardsvr --replSet <replSetName> --port <port> --dbpath <path> --bind_ip localhost,<ip address> Si se utiliza un archivo de configuración, actualiza el archivo para incluir
sharding.clusterRole: shardsvr,replication.replSetName,net.portynet.bindIp, y luego inicia el 8.3 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.
Espere a que el nodo se recupere al estado
SECONDARYantes de actualizar el siguiente nodo secundario.Para comprobar el estado del nodo, puedes emitir
rs.status()enmongosh.Repetir para cada miembro secundario.
Reduce el primario del set de réplicas.
Conecte
mongoshal principal y utilicers.stepDown()para rebajar al principal y forzar la elección de un nuevo principal:rs.stepDown() Actualiza el primario bajado.
Cuando
rs.status()muestra que el primario ha dejado su función y otro nodo ha asumido el estadoPRIMARY, actualice el primario que ha sido desligado:Apague el primario reducido.
Para apagar el primario degradado, use
mongoshpara conectarse al miembro del set de réplicas y ejecute el siguiente comando:db.adminCommand( { shutdown: 1 } ) Reemplace el binario
mongod. con el 8.3 binario.Inicie el binario 8.3.
Inicia el binario 8.3 con las opciones
--shardsvr,--replSet,--porty--bind_ip. Incluya las opciones de línea de comandos adicionales que correspondan para su implementación:mongod --shardsvr --replSet <replSetName> --port <port> --dbpath <path> --bind_ip localhost,<ip address> Si utilizas un archivo de configuración, actualiza el archivo para especificar
sharding.clusterRole: shardsvr,replication.replSetName,net.portynet.bindIp, y luego inicia el 8.3 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.
Actualiza las instancias mongos
Importante
Actualice primero todas las instancias del set de réplicas del servidor de configuración (CSRS), luego todos los nodos de la partición y, finalmente, las instancias mongos. Actualizar mongos antes de completar estas actualizaciones puede provocar problemas de compatibilidad.
Reemplaza cada instancia de mongos por el binario 8.3 y reinicia. Incluye cualquier otra configuración que sea apropiada para tu implementación.
Nota
Se debe especificar la opción --bind_ip cuando los nodos del clúster se ejecutan en diferentes hosts o si se conectan clientes remotos al clúster.
mongos --configdb csReplSet/<rsconfigsver1:port1>,<rsconfigsver2:port2>,<rsconfigsver3:port3> --bind_ip localhost,<ip address>
Vuelva a habilitar el balanceador
Usando mongosh, conecta a un mongos en el clúster y ejecuta sh.startBalancer() para volver a habilitar el balanceador:
sh.startBalancer()
Para más información sobre la reactivación del balanceador, consulta Activar el balanceador.
Habilitar funcionalidades incompatibles con versiones anteriores de 8.3
En este punto, se pueden ejecutar los binarios 8.3 sin las características 8.3 que son incompatibles con 8.2.
Para activar estas 8.3 funcionalidades, establezca la compatibilidad de características entre versiones (FCV) en 8.3. También debes establecer confirm en verdadero.
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.3", confirm: true } )
Configuración featureCompatibilityVersion (compatibilidad de características entre versiones) : "8.3" realiza de forma implícita una replSetReconfig en cada partición para añadir el campo term al documento de configuración de la réplica de partición.
El comando no se completa hasta que la nueva configuración se propaga a la mayoría de los miembros del set de réplicas.
Este comando debe realizar guardados en una colección interna del sistema. Si el comando no se completa, puedes volver a intentarlo de forma segura en el mongos ya que la operación es idempotente.
Nota
Mientras setFeatureCompatibilityVersion se está ejecutando en el clúster particionado, las migraciones, divisiones y combinaciones de fragmentos pueden fallar con ConflictingOperationInProgress.
Advertencia
mongos compatibilidad de características entre versiones Compatibility
El binario mongos no puede conectarse a mongod instancias cuya compatibilidad de características entre versiones (FCV) sea superior a la del mongos. Por ejemplo, no puedes conectar un MongoDB 8.2 versión mongos a un 8.3 clúster particionado con compatibilidad de características entre versiones establecido en 8.3. Sin embargo, puedes conectar un MongoDB 8.2 versión mongos a un 8.3 clúster fragmentado con compatibilidad de características entre versiones establecido en 8.2.
Solución de problemas
Si experimenta problemas de inicio al actualizar, póngase en contacto con el soporte de MongoDB para obtener ayuda.
Procedimientos de actualización adicionales
Para actualizar un autónomo, consulta Actualiza 8.2 autónomo a 8.3.
Para actualizar un set de réplicas, consulta Actualizar el set de réplicas 8.2 a 8.3.