Actualización del motor de base de datos MySQL - Amazon Relational Database Service

Actualización del motor de base de datos MySQL

Cuando Amazon RDS admita una nueva versión de un motor de base de datos, podrá actualizar sus instancias de base de datos a la nueva versión. Hay dos tipos de actualizaciones para las bases de datos de MySQL: actualizaciones de versiones principales y actualizaciones de versiones secundarias.

Actualizaciones de la versión principal

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. Por lo tanto, debe realizar manualmente las actualizaciones de versiones principales de sus instancias de base de datos. Puede iniciar una actualización de versión principal modificando su instancia de base de datos. Antes de realizar una actualización de una versión principal, recomendamos que siga las instrucciones descritas en Actualizaciones de versiones principales de MySQL.

Para actualizaciones de versiones principales de implementaciones de instancias de base de datos multi-AZ, Amazon RDS actualiza simultáneamente las réplicas principal y en espera. La instancia de base de datos no estará disponible hasta que se complete la actualización. Actualmente, Amazon RDS no admite actualizaciones de versiones principales de implementaciones de clústeres de base de datos multi-AZ.

sugerencia

Puede minimizar el tiempo de inactividad necesario para la actualización de una versión principal mediante una implementación azul/verde. Para obtener más información, consulte Uso de las implementaciones azul/verde de Amazon RDS para actualizar las bases de datos.

Actualizaciones de la versión secundaria

Las actualizaciones de versiones secundarias solo incluyen cambios compatibles con las versiones anteriores de las aplicaciones existentes. Puede iniciar manualmente una actualización de versiones secundarias modificando su instancia de base de datos. O puede habilitar la opción Actualización automática de versiones secundarias al crear o modificar una instancia de base de datos. Si lo hace, Amazon RDS actualizará automáticamente su instancia de base de datos tras probar y aprobar la nueva versión. Para obtener información sobre cómo realizar una actualización, consulte Actualización de una versión del motor de una instancia de base de datos.

Cuando se actualiza la versión secundaria de un clúster de base de datos multi-AZ, Amazon RDS actualiza las instancias de base de datos de lector una por una. A continuación, una de las instancias de base de datos de lector pasa a ser la nueva instancia de base de datos de escritor. Amazon RDS actualiza luego la antigua instancia de escritor (que ahora es una instancia de lector).

nota

El tiempo de inactividad para realizar una actualización de una versión secundaria de una implementación de una instancia de base de datos multi-AZ puede durar varios minutos. Los clústeres de bases de datos multi-AZ suelen reducir el tiempo de inactividad de las actualizaciones de versiones secundarias a aproximadamente 35 segundos. Cuando se utilizan con RDS Proxy, se puede reducir aún más el tiempo de inactividad a un segundo o menos. Para obtener más información, consulte Uso de Amazon RDS Proxy . Como alternativa, puede utilizar un proxy de base de datos de código abierto como ProxySQL, PgBouncer o el controlador JDBC de AWS para MySQL.

Si la instancia de base de datos de MySQL usa las réplicas de lectura, debe actualizar todas las réplicas de lectura antes de actualizar la instancia de origen.

Información general de actualización

Cuando se utiliza la AWS Management Console para actualizar una instancia de base de datos, muestra los destinos de actualización válidos para la instancia de base de datos. También puede utilizar el siguiente comando de la AWS CLI para identificar los destinos de actualización válidos para una instancia de base de datos:

Para Linux, macOS o Unix:

aws rds describe-db-engine-versions \ --engine mysql \ --engine-version version-number \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

En Windows:

aws rds describe-db-engine-versions ^ --engine mysql ^ --engine-version version-number ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Por ejemplo, para identificar los destinos de actualización válidos para una instancia de base de datos de MySQL versión 8.0.28, ejecute el siguiente comando de la AWS CLI:

Para Linux, macOS o Unix:

aws rds describe-db-engine-versions \ --engine mysql \ --engine-version 8.0.28 \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

En Windows:

aws rds describe-db-engine-versions ^ --engine mysql ^ --engine-version 8.0.28 ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text

Amazon RDS toma dos o más instantáneas de la base de datos durante el proceso de actualización. Amazon RDS toma hasta dos instantáneas de la instancia de base de datos antes de realizar cualquier cambio en la actualización. Si la actualización de las bases de datos no funciona, puede restaurar una de estas instantáneas para crear una instancia de base de datos que ejecute la versión antigua. Amazon RDS toma otra instantánea de la instancia de base de datos cuando se completa la actualización. Amazon RDS toma estas instantáneas independientemente de si AWS Backup administra las copias de seguridad de la instancia de base de datos.

nota

Amazon RDS solo realiza instantáneas de base de datos si ha definido el periodo de retención de copia de seguridad de su instancia de base de datos en un número mayor que 0. Para cambiar el periodo de retención de copia de seguridad, consulte Modificación de una instancia de base de datos de Amazon RDS.

Después de completar la actualización, no puede volver a la versión anterior del motor de base de datos. Si desea volver a la versión anterior, restaure la primera instantánea de base de datos que se realizó para crear una nueva instancia de base de datos.

Puede controlar cuándo debe actualizar la instancia de base de datos a una nueva versión admitida por Amazon RDS. Este nivel de control le ayuda a mantener la compatibilidad con versiones de base de datos específicas y probar nuevas versiones con una aplicación antes de implementarlas en producción. Cuando esté listo, podrá efectuar actualizaciones de versiones en el momento que le resulte más conveniente.

Si la instancia de base de datos usa replicación de lectura, debe actualizar todas las réplicas de lectura antes de actualizar la instancia de origen.

Números de versión de MySQL

La secuencia de numeración de versiones del motor de base de datos de RDS para MySQL tiene el formato principal.secundaria.parche.AAAAMMDD o principal.secundaria.parche (por ejemplo, 8.0.33.R2.20231201 o 5.7.44). El formato utilizado depende de la versión del motor de MySQL. Para obtener información sobre la numeración de versiones del Soporte extendido de RDS, consulte Nombre de versiones con el Soporte extendido de Amazon RDS.

principal

El número de versión principal es tanto el entero como la primera parte fraccional del número de versión (por ejemplo, 8.0). Una actualización de versión principal aumenta la parte principal del número de versión. Por ejemplo, una actualización de 5.7.44 a 8.0.33 es una actualización de versión principal, donde 5.7 y 8.0 son los números de la versión principal.

secundaria.

El número de versión secundaria es la tercera parte del número de versión (por ejemplo, el 33 en 8.0.33).

parche

El parche es la cuarta parte del número de versión (por ejemplo, el R2 en 8.0.33.R2). Una versión de parche de RDS incluye correcciones de errores importantes que se agregan a una versión secundaria después de su lanzamiento.

AAAAMMDD

La fecha es la quinta parte del número de versión (por ejemplo, 20231201 en 8.0.33.R2.20231201). Una versión de fecha de RDS es un parche de seguridad que incluye correcciones de seguridad importantes que se agregan a una versión secundaria después de su lanzamiento. No incluye ninguna corrección que pueda cambiar el comportamiento de un motor.

Versión principal Versión secundaria Esquema de nomenclatura
8.0 ≥ 33 Las nuevas instancias de base de datos utilizan el formato principal.secundaria.parche.AAMMDD (por ejemplo, 8.0.33.R2.20231201).

Las instancias de base de datos existentes pueden usar el formato principal.secundaria.parche (por ejemplo, 8.0.33.R2) hasta la próxima actualización de la versión principal o secundaria.

< 33 Las instancias de base de datos existentes utilizan el formato principal.secundaria.parche (por ejemplo, 8.0.32.R2).
5.7 ≥ 42 Las nuevas instancias de base de datos utilizan el formato principal.secundaria.parche.AAMMDD (por ejemplo, 5.7.42.R2.20231201).

Las instancias de base de datos existentes pueden usar el formato principal.secundaria.parche (por ejemplo, 5.7.42.R2) hasta la próxima actualización de la versión principal o secundaria.

Número de versión de RDS

Los números de versión de RDS utilizan el esquema de nomenclatura major.minor.patch o major.minor.patch.YYYYMMDD. Una versión de parche de RDS incluye correcciones de errores importantes que se agregan a una versión secundaria después de su lanzamiento. Una versión de fecha de RDS (AAMMDD) es un parche de seguridad. Un parche de seguridad no incluye ninguna corrección que pueda cambiar el comportamiento de un motor. Para obtener información sobre la numeración de versiones del Soporte extendido de RDS, consulte Nombre de versiones con el Soporte extendido de Amazon RDS.

Para identificar el número de versión de Amazon RDS de la base de datos, primero debe crear la extensión rds_tools mediante el siguiente comando:

CREATE EXTENSION rds_tools;

Puede averiguar el número de versión de RDS de su base de datos de RDS para MySQL con la siguiente consulta SQL:

mysql> select mysql.rds_version();

Por ejemplo, la consulta de una base de datos de RDS para MySQL 8.0.34 devuelve lo siguiente:

+---------------------+ | mysql.rds_version() | +---------------------+ | 8.0.34.R2.20231201 | +---------------------+ 1 row in set (0.01 sec)

Actualizaciones de versiones principales de MySQL

Amazon RDS es compatible con las siguientes actualizaciones locales para versiones principales del motor de base de datos MySQL:

  • MySQL 5.6 a MySQL 5.7

  • MySQL 5.7 a MySQL 8.0

nota

Solo puede crear instancias de base de datos MySQL versión 5.7 y 8.0 con clases de instancia de base de datos de última generación y generación actual, además de la clase anterior db.m3.

En algunos casos, desea actualizar una instancia de base de datos MySQL versión 5.6 en una clase anterior (que no sea db.m3) a la versión 5.7 de MySQL. 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, puede modificar la instancia de base de datos para usar el motor de base de datos MySQL versión 5.7. 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 .

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 para una instancia de base de datos MySQL versión 5.6 en Amazon RDS a la versión 5.7 de MySQL o posterior, aplique antes todas las actualizaciones del sistema operativo disponibles. Una vez que se completen las actualizaciones del sistema operativo, actualice a cada versión principal: de 5.6 a 5.7 y luego de 5.7 a 8.0. 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 o clúster 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.

Las actualizaciones a la versión 5.7 de MySQL podrían ser lentas

La versión 5.6.4 de MySQL introdujo un formato de fecha y hora nuevo para las columnas datetime, time y timestamp que permite fracciones en los valores de fecha y hora. Al actualizar una instancia de base de datos a MySQL versión 5.7, MySQL fuerza la conversión de todos los tipos de columna de fecha y hora al formato nuevo.

Debido a que esta conversión reconstruye sus tablas, la actualización de la instancia de base de datos podría tardar un tiempo considerable. La conversión forzada se aplica a todas las instancias de base de datos que ejecutan una versión anterior a MySQL 5.6.4. También se aplica a todas las instancias de base de datos que se actualizaron de una versión anterior a MySQL 5.6.4 a una versión distinta de 5.7.

Si su instancia de base de datos ejecuta una versión anterior a MySQL 5.6.4 o se actualizó de una versión anterior a 5.6.4, recomendamos un paso adicional. En estos casos, recomendamos que convierta las columnas datetime, time y timestamp en su base de datos antes de actualizar su instancia de base de datos a la versión 5.7 de MySQL. Esta conversión puede reducir significativamente la cantidad de tiempo necesario para actualizar la instancia de base de datos a la versión 5.7 de MySQL. Para actualizar sus columnas de fecha y hora al nuevo formato, emita el comando ALTER TABLE <table_name> FORCE; para cada tabla que contenga las columnas de fecha u hora. Debido a que la alteración de una tabla la bloquea y la mantiene en modo de solo lectura, recomendamos que realice esta actualización durante un periodo de mantenimiento.

Para encontrar todas las tablas en su base de datos que tengan columnas datetime, time o timestamp y crear un comando ALTER TABLE <table_name> FORCE; para cada tabla, use la siguiente consulta:

SET show_old_temporals = ON; SELECT table_schema, table_name,column_name, column_type FROM information_schema.columns WHERE column_type LIKE '%/* 5.5 binary format */'; SET show_old_temporals = OFF;

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 o SET 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 o DESC para cláusulas GROUP 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 mejorar la compatibilidad de Unicode, piense en convertir objetos que usen el conjunto de caracteres utf8mb3 para usar el conjunto de caracteres utf8mb4. El conjunto de caracteres utf8mb3 ha quedado obsoleto. Asimismo, piense en utilizar utf8mb4 para referencias de conjuntos de caracteres, en vez de utilizar utf8, ya que actualmente utf8 es un alias del conjunto de caracteres utf8mb3.

    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.

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 en la documentació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.

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 previa, 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.

nota

Amazon RDS ejecuta estas comprobaciones previas solo para una actualización de MySQL 5.7 a MySQL 8.0. Para una actualización de MySQL 5.6 a MySQL 5.7, las comprobaciones previas se limitan a confirmar que no hay tablas huérfanas y que hay suficiente espacio de almacenamiento para reconstruir tablas. Las comprobaciones no se ejecutan para las actualizaciones a versiones de MySQL inferiores a la 5.7.

Revertir después de no actualizar de MySQL 5.7 a 8.0

Cuando se actualiza una instancia de base de datos de MySQL versión 5.7 a MySQL versión 8.0, 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. En ese momento, Amazon RDS revierte los cambios realizados para la actualización. Luego de la reversión, la instancia de base de datos de MySQL ejecuta MySQL versión 5.7. 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:

nota

Actualmente, la reversión automática después de una falla de actualización solo es compatible con las actualizaciones de versiones principales de MySQL 5.7 a 8.0.

Comprobación de una actualización

Antes de realizar una actualización de versión principal en su instancia de base de datos, realice una comprobación exhaustiva de su base de datos para determinar la compatibilidad con la versión nueva. Además, realice una comprobación exhaustiva de todas las aplicaciones que tienen acceso a la base de datos para determinar la compatibilidad con la versión nueva. Le recomendamos que utilice el siguiente procedimiento.

Para probar una actualización de versión principal
  1. Revise la documentación de actualización relativa a la nueva versión del motor de base de datos para ver si hubiera problemas de compatibilidad que pudieran afectar a su base de datos o aplicaciones:

  2. Si su instancia de base de datos forma parte de un grupo de parámetros de base de datos personalizado, cree un grupo nuevo con la configuración existente que sea compatible con la versión principal nueva. Especifique el grupo de parámetros de base de datos nuevo cuando actualice su instancia de prueba, para que la prueba de la actualización compruebe que funciona correctamente. Para obtener más información acerca de cómo crear un grupo de parámetros de base de datos, consulte Working with parameter groups (Trabajar con grupos de parámetros).

  3. Cree una instantánea de base de datos de la instancia de base de datos que se va a actualizar. Para obtener más información, consulte Creación de una instantánea de base de datos para una instancia de base de datos single-AZ.

  4. Restaure la instantánea de base de datos para crear una nueva instancia de base de datos de prueba. Para obtener más información, consulte Restauración desde una instantánea de un de base de datos.

  5. Modifique esta instancia de base de datos de prueba nueva para actualizarla a la nueva versión, utilizando uno de los métodos que se detalla a continuación. Si creó un grupo de parámetros nuevo en el paso 2, especifíquelo.

  6. Evalúe el almacenamiento utilizado por la instancia actualizada para determinar si la actualización necesita almacenamiento adicional.

  7. Ejecute tantas pruebas de control de calidad en la instancia de base de datos actualizada como necesite para asegurarse de que la base de datos y la aplicación funcionan correctamente con la versión nueva. Implemente las pruebas nuevas que sean necesarias para evaluar el impacto de cualquier problema de compatibilidad que haya identificado en el paso 1. Pruebe todas las funciones y los procedimientos almacenados. Dirija las versiones de prueba de sus aplicaciones a la instancia de base de datos actualizada.

  8. Si se superan todas las pruebas, realice la actualización de la instancia de base de datos de producción. Recomendamos que no permita operaciones de escritura en la instancia de base de datos hasta que confirme que todo funciona correctamente.

Actualización de una instancia de base de datos MySQL

Para obtener más información acerca de la actualización automática o manual de una instancia de base de datos MySQL, consulte Actualización de una versión del motor de una instancia de base de datos.

Actualizaciones de versiones secundarias automáticas para MySQL

Si especifica la siguiente configuración al crear o modificar una instancia de base de datos, puede actualizar automáticamente la instancia de base de datos.

  • La opción Auto minor version upgrade (Actualización automática de versión secundaria) está habilitada.

  • La configuración del Backup retention period (periodo de retención de copia de seguridad) es mayor que 0.

En la AWS Management Console, esta configuración se encuentra en Additional configuration (Configuración adicional). En la siguiente imagen se muestra la configuración Auto minor version upgrade (Actualización automática de versiones secundarias).

Auto minor version upgrade (Actualización automática de versiones secundarias)

Para obtener más información sobre estas opciones, consulte Configuración de instancias de base de datos.

Para algunas versiones principales de RDS para MySQL en algunas Regiones de AWS, RDS designa una versión secundaria como versión de actualización automática. Después de que Amazon RDS pruebe y apruebe una versión secundaria, la actualización de versión secundaria se produce automáticamente durante el periodo de mantenimiento. RDS no configura automáticamente versiones secundarias publicadas recientemente como la versión de actualización automática. Antes de que RDS asigne una versión de actualización automática más reciente, deben considerarse algunos criterios, como, por ejemplo, los que se indican a continuación:

  • Problemas de seguridad conocidos

  • Errores en la versión de la comunidad MySQL

  • Estabilidad general de la flota desde que se publicó la versión secundaria

Puede utilizar el siguiente comando de la AWS CLI para determinar la versión actual de destino de actualización secundaria automática para una versión secundaria de MySQL especificada en una Región de AWS específica.

Para Linux, macOS o Unix:

aws rds describe-db-engine-versions \ --engine mysql \ --engine-version minor-version \ --region region \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \ --output text

En Windows:

aws rds describe-db-engine-versions ^ --engine mysql ^ --engine-version minor-version ^ --region region ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^ --output text

Por ejemplo, el siguiente comando de la AWS CLI determina el destino de actualización secundaria automática para la versión secundaria 8.0.11 de MySQL en la Región de AWS de Este de EE. UU. (Ohio) (us-east-2).

Para Linux, macOS o Unix:

aws rds describe-db-engine-versions \ --engine mysql \ --engine-version 8.0.11 \ --region us-east-2 \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" \ --output table

En Windows:

aws rds describe-db-engine-versions ^ --engine mysql ^ --engine-version 8.0.11 ^ --region us-east-2 ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{AutoUpgrade:AutoUpgrade,EngineVersion:EngineVersion}" ^ --output table

Su resultado es similar al siguiente.

---------------------------------- | DescribeDBEngineVersions | +--------------+-----------------+ | AutoUpgrade | EngineVersion | +--------------+-----------------+ | False | 8.0.15 | | False | 8.0.16 | | False | 8.0.17 | | False | 8.0.19 | | False | 8.0.20 | | False | 8.0.21 | | True | 8.0.23 | | False | 8.0.25 | +--------------+-----------------+

En este ejemplo, el valor AutoUpgrade es True para la versión 8.0.23 de MySQL. Por lo tanto, el destino de actualización secundaria automática es la versión 8.0.23 de MySQL, que está resaltado en el resultado.

Una instancia de base de datos de MySQL se actualiza automáticamente durante el periodo de mantenimiento si se cumplen los siguientes criterios:

  • La opción Auto minor version upgrade (Actualización automática de versión secundaria) está habilitada.

  • La configuración del Backup retention period (periodo de retención de copia de seguridad) es mayor que 0.

  • La instancia de base de datos se ejecuta en una versión secundaria de motor de base de datos que es anterior a la versión secundaria de actualización automática actual.

Para obtener más información, consulte Actualización automática de la versión secundaria del motor.

Uso de una réplica de lectura para reducir el tiempo de inactividad al actualizar una base de datos de MySQL

En la mayoría de los casos, una implementación azul/verde es la mejor opción para reducir el tiempo de inactividad al actualizar una instancia de base de datos de MySQL. Para obtener más información, consulte Uso de las implementaciones azul/verde de Amazon RDS para actualizar las bases de datos.

Si no puede usar una implementación azul/verde y en la actualidad se está utilizando su instancia de base de datos de MySQL con una aplicación de producción, puede utilizar el siguiente procedimiento para actualizar la versión de base de datos de la instancia de base de datos. Este procedimiento puede reducir la duración del tiempo de inactividad de la aplicación.

Al utilizar una réplica de lectura, puede realizar la mayoría de los pasos de mantenimiento con anticipación y minimizar los cambios necesarios durante la interrupción real. Con esta técnica, puede probar y preparar la nueva instancia de base de datos sin realizar ningún cambio en su instancia de base de datos existente.

El siguiente procedimiento muestra un ejemplo de actualización de la versión 5.7 de MySQL a la versión 8.0 de MySQL. Puede usar los mismos pasos generales para actualizaciones a otras versiones principales.

nota

Cuando esté realizando la actualización de la versión 5.7 de MySQL a la versión 8.0 de MySQL, complete las comprobaciones previas antes de hacer la actualización. Para obtener más información, consulte Comprobaciones previas de actualizaciones de la versión 5.7 a la 8.0 de MySQL.

Para actualizar una base de datos MySQL mientras se está utilizando una instancia de base de datos
  1. Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/.

  2. Cree una réplica de lectura para la instancia de base de datos de MySQL 5.7. Este proceso permite crear una copia actualizable de su base de datos. También pueden existir otras réplicas de lectura de la instancia de base de datos.

    1. En la consola, elija Databases (Bases de datos) y, después, seleccione la instancia de base de datos que desea actualizar.

    2. En Actions (Acciones), elija Create read replica (Crear réplica de lectura).

    3. Proporcione un valor de DB instance identifier (Identificador de instancias de bases de datos) para su réplica de lectura y asegúrese de que el valor de DB instance class (Clase de instancia de base de datos) y otros ajustes coincidan con su instancia de base de datos de MySQL 5.7.

    4. Elija Create read replica (Crear réplica de lectura).

  3. (Opcional) Cuando se ha creado la réplica de lectura y Status (Estado) se muestra como Available (Disponible), convierta la réplica de lectura en una implementación Multi-AZ y habilite las copias de seguridad.

    De forma predeterminada, una réplica de lectura se crea como una implementación Single-AZ con copias de seguridad deshabilitadas. Dado que la réplica de lectura se convierte en la instancia de base de datos de producción, es una práctica recomendada configurar una implementación Multi-AZ y habilitar ahora las copias de seguridad.

    1. En la consola, elija Databases (Bases de datos) y, después, seleccione la réplica de lectura que acaba de crear.

    2. Elija Modify.

    3. Para Multi-AZ deployment (Implementación Multi-AZ), elija Create a standby instance (Crear una instancia en espera).

    4. En Backup Retention Period (Periodo de retención de copia de seguridad), elija un valor positivo distinto de cero, por ejemplo, 3 días y, después, elija Continue (Continuar).

    5. En Programación de modificaciones, elija Aplicar inmediatamente.

    6. Elija Modificar la instancia de base de datos.

  4. Cuando el Status (Estado) de la réplica de lectura se muestra como Available (Disponible), actualice la réplica de lectura a MySQL 8.0:

    1. En la consola, elija Databases (Bases de datos) y, después, seleccione la réplica de lectura que acaba de crear.

    2. Elija Modify.

    3. Para DB engine version (versión de motor de base de datos), elija la versión de MySQL 8.0 a la que se realizará la actualización y, luego, elija Continue (Continuar).

    4. En Programación de modificaciones, elija Aplicar inmediatamente.

    5. Elija Modify DB instance (Modificar instancia de base de datos) para comenzar la actualización.

  5. Cuando haya finalizado la actualización y el Status (Estado) se muestre como Available (Disponible), verifique que la réplica de lectura actualizada esté al día con la instancia de base de datos de MySQL 5.7 de origen. Para comprobarlo, conéctese a la réplica de lectura y ejecute el comando SHOW REPLICA STATUS. Si el campo Seconds_Behind_Master muestra 0, significa que la replicación está al día.

    nota

    Versiones anteriores de MySQL utilizaban SHOW SLAVE STATUS en lugar de SHOW REPLICA STATUS. Si usa una versión de MySQL anterior a la 8.0.23, utilice SHOW SLAVE STATUS.

  6. (Opcional) Cree una réplica de lectura de su réplica de lectura.

    Si desea que la instancia de base de datos tenga una réplica de lectura después de promocionarse a una instancia de base de datos independiente, puede crear la réplica de lectura ahora.

    1. En la consola, elija Databases (Bases de datos) y, después, seleccione la réplica de lectura que acaba de actualizar.

    2. En Actions (Acciones), elija Create read replica (Crear réplica de lectura).

    3. Proporcione un valor de DB instance identifier (Identificador de instancias de bases de datos) para su réplica de lectura y asegúrese de que el valor de DB instance class (Clase de instancia de base de datos) y otros ajustes coincidan con su instancia de base de datos de MySQL 5.7.

    4. Elija Create read replica (Crear réplica de lectura).

  7. (Opcional) Configure un grupo de parámetros de base de datos personalizado para la réplica de lectura.

    Si desea que la instancia de base de datos utilice un grupo de parámetros personalizado después de promocionarse a una instancia de base de datos independiente, puede crear el grupo de parámetros de base de datos ahora y asociarlo con la réplica de lectura.

    1. Cree un grupo de parámetros de base de datos personalizado para MySQL 8.0. Para obtener instrucciones, consulte Creación de un grupo de parámetros de base de datos.

    2. Modifique los parámetros que desea cambiar en el grupo de parámetros de base de datos que acaba de crear. Para obtener instrucciones, consulte Modificación de parámetros de un grupo de parámetros de base de datos.

    3. En la consola, elija Databases (Bases de datos) y, a continuación, elija la réplica de lectura.

    4. Elija Modify.

    5. Para el DB parameter group (grupo de parámetros de base de datos), elija el grupo de parámetros de base de datos de MySQL 8.0 que acaba de crear y, a continuación, elija Continue (Continuar).

    6. En Programación de modificaciones, elija Aplicar inmediatamente.

    7. Elija Modify DB instance (Modificar instancia de base de datos) para comenzar la actualización.

  8. Haga que su réplica de lectura de MySQL 8.0 sea una instancia de base de datos independiente.

    importante

    Cuando promocione su réplica de lectura de MySQL 8.0 a instancia de base de datos independiente, dejará de ser una réplica de su instancia de base de datos de MySQL 5.7. Recomendamos que promocione su réplica de lectura de MySQL 8.0 durante un periodo de mantenimiento cuando su instancia de base de datos de MySQL 5.7 de origen esté en modo de solo lectura y se hayan suspendido todas las operaciones de escritura. Cuando haya finalizado la promoción, puede dirigir sus operaciones de escritura a la instancia de base de datos de MySQL 8.0 actualizada para asegurarse de que no se pierda ninguna operación de escritura.

    Además, recomendamos que antes de promocionar su réplica de lectura de MySQL 8.0 realice todas las operaciones de lenguaje de definición de datos (DDL) necesarias en la réplica de lectura de MySQL 8.0. Un ejemplo es la creación de índices. Este enfoque evita los efectos negativos en el rendimiento de la réplica de lectura de MySQL 8.0 después de su promoción. Para promocionar una réplica de lectura, siga este procedimiento.

    1. En la consola, elija Databases (Bases de datos) y, después, seleccione la réplica de lectura que acaba de actualizar.

    2. En Actions (Acciones), seleccione Promote (Promover).

    3. Elija Yes (Sí) para habilitar las copias de seguridad automatizadas para la instancia de réplica de lectura. Para obtener más información, consulte Introducción a las copias de seguridad.

    4. Elija Continue.

    5. Elija Promote Read Replica.

  9. Ahora tiene una versión actualizada de su base de datos MySQL. En este punto, puede dirigir sus aplicaciones a la nueva instancia de base de datos de MySQL 8.0.