Se debe familiarizar con el contenido de este documento, incluyendo una revisión exhaustiva de los requisitos previos, antes de actualizar a MongoDB 8.0.
MongoDB 8.0 introduce mejoras significativas en el rendimiento de MongoDB 7.0, incluyendo, pero no limitándose a:
Hasta un 36% mejor rendimiento de lectura.
Hasta un 32% mejor rendimiento para aplicaciones web tÃpicas.
Escrituras concurrentes hasta un 20% más rápidas durante la replicación.
Nota
La cantidad de mejora del rendimiento puede variar según la configuración de tus cargas de trabajo e instancias de base de datos.
Para aprender más, consultar Mejoras de rendimiento.
Los siguientes pasos describen el procedimiento para actualizar un mongod que es un set de réplicas de la versión 7.0 a la 8.0.
Si necesita orientación para actualizar a 8.0, los servicios profesionales de MongoDB ofrecen soporte para la actualización a versiones principales para ayudar a garantizar una transición sin problemas ni interrupciones en su 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.0, se debe estar ejecutando una versión de la serie 7.0.
Para actualizar desde una versión anterior a la serie 7.0, debe actualizar sucesivamente las versiones principales hasta que se haya actualizado a la serie 7.0. Por ejemplo, si se está ejecutando una serie 6.0, primero se debe actualizar a 7.0 antes de poder actualizar a 8.0.
Verifique la compatibilidad del controlador
Antes de actualizar MongoDB, compruebe que está utilizando un controlador compatible con MongoDB 8.0. Consulte la documentación del controlador especÃfico para verificar la compatibilidad con MongoDB 8.0.
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.2 para garantizar que las aplicaciones e implementaciones sean compatibles con MongoDB 8.0. 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, puedes degradar una implementación de la serie 8.0 a una de la serie 7.0. Sin embargo, no se brinda soporte a seguir degradando esa implementación de la serie 7.0 a una implementación de la serie 6.0.
Para aprender más, consultar Degradar 8.0 a 7.0.
Requisitos previos
Versión de todos los nodos
Todos los nodos del set de réplicas deben estar ejecutando la versión 7.0. Para actualizar un set de réplicas de la serie 6.0 y anteriores, primero se deben actualizar todos los miembros del set de réplicas a la versión más reciente de la serie 7.0 y, a continuación, se debe seguir el procedimiento para actualizar de MongoDB 7.0 a 8.0.
Compatibilidad de caracterÃsticas entre versiones
El set de réplicas 7.0 debe tener featureCompatibilityVersion configurado en "8.3".
Para garantizar que todos los nodos del set de réplicas tengan featureCompatibilityVersion establecido en "8.3", conéctate a cada nodo del set de réplicas y verifica el featureCompatibilityVersion:
db.adminCommand( { getParameter: 1, featureCompatibilityVersion: 1 } )
Todos los nodos deben devolver un resultado que incluya "featureCompatibilityVersion" : { "version" : "7.0" }.
Para configurar o actualizar featureCompatibilityVersion, ejecuta el siguiente comando en el primario. La mayorÃa de los nodos que contienen datos deben estar disponible:
db.adminCommand( { setFeatureCompatibilityVersion: "7.0" , confirm: true } )
Para obtener más información, consulta setFeatureCompatibilityVersion.
Estado del nodo del set de réplicas
Asegúrate de que ningún nodo del set de réplicas esté en el estado ROLLBACK o RECOVERING emitiendo el comando replSetGetStatus:
db.adminCommand( { replSetGetStatus: 1 } )
Remover colecciones system.buckets no válidas
Al actualizar a 9.0, 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.bucketsque 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 descartar o cambiar el nombre de
system.bucketscolecciones que no sean colecciones de series temporales antes de realizar la actualización. Todas las coleccionessystem.bucketsdeben tener opciones válidas de series de tiempo configuradas 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 } } ] } )
Descargue 8.0 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.0 usando el administrador de Paquetes.
Siga las instrucciones adecuadas de instalación de9.0 para su sistema Linux. Esto requiere agregar un repositorio para la nueva versión y luego realizar el proceso de actualización real.
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.0 para obtener más información.
Procedimiento de actualización
Puedes actualizar de MongoDB 7.0 a 8.0 mediante una actualización "progresiva" para minimizar el tiempo de inactividad mediante la actualización de los nodos de forma individual mientras los demás nodos están disponibles.
Cierra el set de réplicas.
Para cerrar el proceso mongod, utilice mongosh para conectarse al miembro del conjunto de réplicas y ejecute el siguiente comando:
db.adminCommand( { shutdown: 1 } )
Actualiza los nodos secundarios del set de réplicas.
Actualiza los secundarios del set de réplicas uno a la vez:
Reemplaza el binario 7.0 con el binario 8.0.
Reinicia el nodo.
Reduce el primario del set de réplicas.
Conecta mongosh a la primaria y usa rs.stepDown() para retirar la primaria y forzar la elección de una nueva primaria.
Actualiza el primario.
Cuando rs.status() muestre que el primario ha dejado su puesto y otro nodo ha asumido el estado PRIMARY, actualiza el primario que ha dejado su puesto:
Desactiva el primario degradado y reemplaza el binario
mongodcon el binario 8.0.Reinicia el nodo.
Activar las caracterÃsticas 8.0 incompatibles con versiones anteriores.
En este punto, se pueden ejecutar los binarios 8.0 sin las caracterÃsticas 8.0 que son incompatibles con 7.0.
Para activar estas 8.0 funcionalidades, establezca la compatibilidad de caracterÃsticas entre versiones (FCV) en 8.0. 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.
Tip
Asegúrese de que no haya sincronización inicial en curso. Ejecutar el comando setFeatureCompatibilityVersion mientras una sincronización inicial está en curso provocará que la sincronización inicial se reinicie.
En el primario, ejecuta el comando setFeatureCompatibilityVersion en la base de datos admin:
db.adminCommand( { setFeatureCompatibilityVersion: "8.0", confirm: true } )
La configuración de featureCompatibilityVersion (compatibilidad de caracterÃsticas entre versiones): "8.0" realiza implÃcitamente un replSetReconfig para agregar el campo term al documento de configuración y se bloquea hasta que la nueva configuración se propaga a la mayorÃa de los nodos del set de réplicas.
Este comando debe realizar escrituras en una colección interna del sistema. Si por cualquier motivo el comando no se completa correctamente, puedes intentarlo de nuevo con seguridad en el primario, ya que la operación es idempotente.
Solución de problemas
Si experimenta problemas al iniciar la aplicación después de la actualización, póngase en contacto con el soporte técnico de MongoDB para obtener ayuda.
Procedimientos de actualización adicionales
Para actualizar un sistema autónomo, consulte Actualizar un sistema autónomo a 8.0.
Para actualizar un clúster particionado, se puede consultar Actualizar un clúster particionado a 8.0.