Actualizaciones de versiones principales de RDS para MySQL
Amazon RDS es compatible con las siguientes actualizaciones locales para versiones principales del motor de base de datos MySQL:
-
MySQL 5.7 a MySQL 8.0
-
MySQL 8.0 a MySQL 8.4
nota
Solo puede crear instancias de base de datos MySQL versión 5.7, 8.0 y 8.4 con clases de instancia de base de datos de última generación y generación actual.
En algunos casos, desea actualizar una instancia de base de datos que se ejecuta en una clase de instancia de base de datos de una generación a una versión de motor MySQL posterior. En estos casos, modifique primero la instancia de base de datos para usar una clase de instancia de datos de última generación o generación actual. Una vez hecho esto, podrá modificar la instancia de base de datos para usar la versión posterior del motor de base de datos MySQL. Para obtener información acerca de las clases de instancia de base de datos de Amazon RDS, consulte Clases de instancia de base de datos de .
Temas
Información general sobre las actualizaciones de la versión principal de MySQL
Las actualizaciones de la versión principal pueden contener cambios realizados en la base de datos que no son compatibles con las versiones anteriores de las aplicaciones. Como resultado, Amazon RDS no aplica automáticamente las actualizaciones de las versiones principales; es necesario modificar manualmente la instancia de base de datos. Recomendamos que pruebe exhaustivamente cualquier actualización antes de aplicarla a las instancias de producción.
Para realizar una actualización de versión principal, realice primero las actualizaciones de sistema operativo disponibles. Una vez que se completen las actualizaciones del sistema operativo, actualice a cada versión principal: de 5.7 a 8.0 y luego de 8.0. a 8.4. Para obtener más información sobre la actualización de un clúster de base de datos multi-AZ de RDS para MySQL, consulte Actualización de la versión del motor de un clúster de base de datos multi-AZ para Amazon RDS. Las instancias de base de datos MySQL creadas antes del 24 de abril de 2014, muestran una actualización del sistema operativo disponible hasta que se haya aplicado la actualización. Para obtener más información acerca de las actualizaciones del sistema operativo, consulte Aplicación de actualizaciones a una instancia de base de datos.
Durante una actualización de versión principal de MySQL, Amazon RDS ejecuta el comando mysql_upgrade
binario de MySQL para actualizar tablas, si es necesario. Además, Amazon RDS vacía las tablas slow_log
y general_log
durante una actualización de versión principal. Para conservar información de registro, guarde el contenido de este antes de realizar la actualización de versión principal.
Las actualizaciones de versión principal de MySQL suelen realizarse en aproximadamente 10 minutos. Algunas actualizaciones podrían tardar algo más debido al tamaño de la clase de instancia de base de datos, o bien porque la instancia no sigue determinadas directrices de funcionamiento de Prácticas recomendadas para Amazon RDS. Si actualiza una instancia de base de datos desde la consola de Amazon RDS, el estado de la instancia indica cuándo finaliza la actualización. Si realiza la actualización utilizando la AWS Command Line Interface (AWS CLI), use el comando describe-db-instances y compruebe el valor de Status
.
Comprobaciones previas de actualizaciones
Amazon RDS realiza comprobaciones previas antes de la actualización para comprobar si hay incompatibilidades. Estas incompatibilidades varían en función de la versión de MySQL a la que se vaya a actualizar.
Entre las comprobaciones previas se incluyen algunas que a su vez se incluyen con MySQL y otras que el equipo Amazon RDS creó específicamente. Para obtener información acerca de las comprobaciones previas que proporciona MySQL, consulte la sección sobre la utilidad del comprobador de actualización
Las comprobaciones previas se ejecutan antes de detenerse la instancia de base de datos para la actualización, lo que quiere decir que no causan tiempos de inactividad al ejecutarse. Si las verificaciones previas encuentran una incompatibilidad, Amazon RDS cancela automáticamente la actualización antes de detenerse la instancia de base de datos. Amazon RDS también genera un evento por la incompatibilidad. Para obtener más información acerca de los eventos de Amazon RDS, consulte Uso de notificaciones de eventos de Amazon RDS.
Amazon RDS registra información detallada acerca de cada incompatibilidad en el archivo de registro PrePatchCompatibility.log
. En la mayoría de los casos, la entrada de registro incluye un vínculo a la documentación de SQL para corregir la incompatibilidad. Para obtener más información acerca de cómo visualizar los archivos de registro, consulte Visualización y descripción de archivos de registro de base de datos.
Debido a la naturaleza de las comprobaciones previas, analizan objetos en su base de datos. Este análisis genera un consumo de recursos y aumenta el tiempo de ejecución de la actualización.
Temas
Comprobaciones previas de actualizaciones de la versión 8.0 a la 8.4 de MySQL
MySQL 8.4 presenta numerosas incompatibilidades con MySQL 8.0. Dichas incompatibilidades pueden causar problemas durante una actualización de MySQL 8.0 a MySQL 8.4. Así pues, puede requerirse cierta preparación con respecto a su base de datos para que la actualización se realice correctamente. A continuación, mostramos una lista general de dichas incompatibilidades:
-
Ninguna tabla debe usar tipos o funciones de datos obsoletos.
-
No debe haber un definidor vacío ni faltar un definidor en los disparadores, y el contexto de creación de los disparadores tiene que ser válido.
-
No debe haber ninguna infracción de la palabra clave ni de la palabra reservada. Es posible que en MySQL 8.4 haya algunas palabras clave reservadas que no estaban reservadas previamente.
Para obtener más información, consulte la página sobre Palabras clave y palabras reservadas
en la documentación de MySQL. -
No tiene que haber tablas en la base de datos del sistema
mysql
de MySQL 8.0 que tengan el mismo nombre que una tabla usada por el diccionario de datos de MySQL 8.4. -
No tiene que haber modos SQL obsoletos en su configuración de variable del sistema
sql_mode
. -
No tiene que haber tablas ni procedimientos almacenados que tengan elementos de columna
ENUM
oSET
individuales que superen los 255 caracteres o 1020 bytes de longitud. -
Su instalación de MySQL 8.0 no tiene que usar características que no sean compatibles con MySQL 8.4.
Para obtener más información, consulte la sección Features removed in MySQL 8.4
en la documentación de MySQL. -
No tiene que haber nombres de restricción de clave externa que superen los 64 caracteres.
-
Para la compatibilidad con Unicode mejorada, consulte la siguiente información:
-
Tenga en cuenta la conversión de objetos que usen el conjunto de caracteres
utf8mb3
para usar el conjunto de caracteresutf8mb4
. El conjunto de caracteresutf8mb3
ha quedado obsoleto. -
Tenga en cuenta el uso de
utf8mb4
para referencias de conjuntos de caracteres, en vez de utilizarutf8
, ya que actualmenteutf8
es un alias del conjunto de caracteresutf8mb3
. Si es posible, cambieutf8
autf8mb4
primero y, a continuación, actualice la base de datos. -
Como los clientes antiguos pueden recibir un error de juego de caracteres desconocido para
utf8mb3
, actualice los clientes de la base de datos antes de actualizar la base de datos.
Para obtener más información, consulte la sección sobre el conjunto de caracteres utf8mb3 (codificación Unicode UTF-8 de 3 bytes)
en la documentación de MySQL. Para cambiar los conjuntos de caracteres, puede realizar manualmente una copia de seguridad, restauración y replicación de la base de datos. Puede utilizar las implementaciones azules/verdes de Amazon RDS. Para obtener más información, consulte Uso de las implementaciones azul/verde de Amazon RDS para actualizar las bases de datos.
-
Si inicia una actualización de MySQL de 8.0 a 8.4, Amazon RDS ejecutará comprobaciones previas de forma automática para detectar estas incompatibilidades. Para obtener información acerca de cómo actualizar a MySQL 8.4, consulte la sección sobre la actualización de MySQL
Estas comprobaciones previas son obligatorias. No tiene la opción de omitirlas. Las comprobaciones previas proporcionan las siguientes ventajas:
-
Le permiten evitar tiempos de inactividad no planeados durante la actualización.
-
Si hay incompatibilidades, Amazon RDS impide la actualización y proporciona un registro para que se informe sobre ellas. Luego podrá usar el registro para preparar su base de datos para la actualización a MySQL 8.4 y reducir así las incompatibilidades. Para obtener información detallada acerca de cómo eliminar incompatibilidades, consulte Preparing your installation for upgrade
en la documentación de MySQL.
Comprobaciones previas de actualizaciones de la versión 5.7 a la 8.0 de MySQL
MySQL 8.0 presenta numerosas incompatibilidades con MySQL 5.7. Dichas incompatibilidades pueden causar problemas durante una actualización de MySQL 5.7 a MySQL 8.0. Así pues, puede requerirse cierta preparación con respecto a su base de datos para que la actualización se realice correctamente. A continuación, mostramos una lista general de dichas incompatibilidades:
-
Ninguna tabla debe usar tipos o funciones de datos obsoletos.
-
No tiene que haber archivos *.frm huérfanos.
-
No debe haber un definidor vacío ni faltar un definidor en los disparadores, y el contexto de creación de los disparadores tiene que ser válido.
-
Ninguna tabla particionada debe usar un motor de almacenamiento que no tenga soporte de particiones nativo.
-
No debe haber ninguna infracción de la palabra clave ni de la palabra reservada. Es posible que en MySQL 8.0 haya algunas palabras clave reservadas que no estaban reservadas previamente.
Para obtener más información, consulte la página sobre Palabras clave y palabras reservadas
en la documentación de MySQL. -
No tiene que haber tablas en la base de datos del sistema
mysql
de MySQL 5.7 que tengan el mismo nombre que una tabla usada por el diccionario de datos de MySQL 8.0. -
No tiene que haber modos SQL obsoletos en su configuración de variable del sistema
sql_mode
. -
No tiene que haber tablas ni procedimientos almacenados que tengan elementos de columna
ENUM
oSET
individuales que superen los 255 caracteres o 1020 bytes de longitud. -
Antes de realizar la actualización a MySQL 8.0.13 o una versión superior, ninguna partición de tabla debe residir en espacios de tablas InnoDB compartidos.
-
No tiene que haber consultas ni definiciones de programas almacenadas de MySQL 8.0.12 o versiones anteriores que usen calificadores
ASC
oDESC
para cláusulasGROUP BY
. -
Su instalación de MySQL 5.7 no tiene que usar características que no sean compatibles con MySQL 8.0.
Para obtener más información, consulte la sección sobre características eliminadas en MySQL 8.0
, en la documentación de MySQL. -
No tiene que haber nombres de restricción de clave externa que superen los 64 caracteres.
-
Para la compatibilidad con Unicode mejorada, consulte la siguiente información:
-
Tenga en cuenta la conversión de objetos que usen el conjunto de caracteres
utf8mb3
para usar el conjunto de caracteresutf8mb4
. El conjunto de caracteresutf8mb3
ha quedado obsoleto. -
Tenga en cuenta el uso de
utf8mb4
para referencias de conjuntos de caracteres, en vez de utilizarutf8
, ya que actualmenteutf8
es un alias del conjunto de caracteresutf8mb3
. Si es posible, cambieutf8
autf8mb4
primero y, a continuación, actualice la base de datos. -
Como los clientes antiguos pueden recibir un error de juego de caracteres desconocido para
utf8mb3
, actualice los clientes de la base de datos antes de actualizar la base de datos.
Para obtener más información, consulte la sección sobre el conjunto de caracteres utf8mb3 (codificación Unicode UTF-8 de 3 bytes)
en la documentación de MySQL. Para cambiar los conjuntos de caracteres, puede realizar manualmente una copia de seguridad, restauración y replicación de la base de datos. Puede utilizar las implementaciones azules/verdes de Amazon RDS. Para obtener más información, consulte Uso de las implementaciones azul/verde de Amazon RDS para actualizar las bases de datos.
-
Si inicia una actualización de MySQL 5.7 a 8.0, Amazon RDS ejecutará comprobaciones previas de forma automática para detectar estas incompatibilidades. Para obtener información acerca de cómo actualizar a MySQL 8.0, consulte la sección sobre la actualización de MySQL
Estas comprobaciones previas son obligatorias. No tiene la opción de omitirlas. Las comprobaciones previas proporcionan las siguientes ventajas:
-
Le permiten evitar tiempos de inactividad no planeados durante la actualización.
-
Si hay incompatibilidades, Amazon RDS impide la actualización y proporciona un registro para que se informe sobre ellas. Luego podrá usar el registro para preparar su base de datos para la actualización a MySQL 8.0 y reducir así las incompatibilidades. Para obtener información detallada acerca de cómo eliminar incompatibilidades, consulte Preparing your installation for upgrade
en la documentación de MySQL y Upgrading to MySQL 8.0? Here is what you need to know... en el blog de MySQL Server.
Reversión tras un fallo en la actualización
Cuando se actualiza una instancia de base de datos de la versión 5.7 a la 8.0 o de la versión 8.0 a la 8.4 de MySQL, la actualización puede fallar. En particular, puede fallar si el diccionario de datos contiene incompatibilidades que no fueron capturadas por las comprobaciones previas. En este caso, la base de datos no se puede iniciar correctamente en la nueva versión de MySQL 8.0 a la versión 8.4. En ese momento, Amazon RDS revierte los cambios realizados para la actualización. Tras la reversión, la instancia de base de datos de MySQL ejecuta la versión original.
-
MySQL versión 8.0 (para una reversión desde la 8.4)
-
MySQL versión 5.7 (para una reversión desde la 8.0)
Cuando se produce un error en una actualización y se revierte, Amazon RDS genera un evento con el ID de evento RDS-EVENT-0188.
Normalmente, una actualización falla porque existen incompatibilidades en los metadatos entre las bases de datos de la instancia de base de datos y la versión de MySQL de destino. Cuando falla una actualización, se pueden ver los detalles de dichas incompatibilidades en el archivo upgradeFailure.log
. Resuelva las incompatibilidades antes de intentar actualizar nuevamente.
Durante un intento de actualización y de reversión fallidos, la instancia de base de datos se reinicia. Cualquier cambio de parámetros pendientes se aplica durante el reinicio y persiste después de la reversión.
Para obtener más información acerca de la actualización a MySQL 8.0, consulte los siguientes temas en la documentación de MySQL:
Para obtener más información acerca de cómo actualizar a MySQL 8.4, consulte Preparing Your Installation for Upgrade