Compartir a través de


Actualización de versión principal de Azure Database for MySQL: servidor flexible

Nota:

Este artículo contiene referencias al término esclavo, un término que Microsoft ya no usa. Cuando el término se elimine del software, se eliminará también de este artículo.

En este artículo se describe cómo actualizar la versión principal de MySQL localmente en el Servidor flexible de Azure Database for MySQL. Esta característica permite a los clientes realizar actualizaciones en contexto de sus servidores MySQL 5.7 a MySQL 8.0 sin necesidad de movimiento de datos o de realizar cualquier cambio en la cadena de conexión de la aplicación.

Importante

  • La duración del tiempo de inactividad varía en función del tamaño de la instancia de base de datos y del número de tablas que contiene.
  • Al iniciar una actualización de la versión principal de Azure Database for MySQL a través de la API de Rest o el SDK, evite modificar otras propiedades del servicio en la misma solicitud. No se permiten los cambios simultáneos y pueden provocar resultados no deseados o errores de solicitud. Haga modificaciones de propiedad en operaciones independientes tras finalizar la actualización.
  • Es posible que algunas cargas de trabajo no muestren una mejora en el rendimiento después de actualizar de 5.7 a 8.0. Se sugiere evaluar primero el rendimiento de la carga de trabajo mediante la creación de un servidor de réplica (como servidor de prueba), su promoción a servidor independiente y la ejecución de la carga de trabajo en el servidor de prueba antes de implementar la actualización en un entorno de producción.
  • La actualización de la versión principal de MySQL es irreversible. Es posible que se produzca un error en la implementación si la validación identifica que el servidor está configurado con las características que se quitan o están en desuso. Puede realizar cambios de configuración necesarios en el servidor e intentar la actualización de nuevo.

Requisitos previos

  • Las réplicas de lectura con la versión 5.7 de MySQL deben actualizarse antes de que el servidor principal sea compatible con la replicación entre diferentes versiones de MySQL; lea más sobre Compatibilidad de replicación entre versiones de MySQL.
  • Antes de actualizar los servidores de producción, ahora es más fácil y eficaz con nuestra característica Validación integrada en Azure Portal. Esta herramienta comprueba previamente la compatibilidad del esquema de la base de datos con MySQL 8.0, lo que resalta los posibles problemas. Aunque ofrecemos esta opción cómoda, también se recomienda encarecidamente usar la herramienta del comprobador de actualización de MySQL oficial de Oracle para probar la compatibilidad del esquema de la base de datos y realizar pruebas de regresión necesarias para comprobar la compatibilidad de las aplicaciones con características quitadas/en desuso en la nueva versión de MySQL.

    Nota:

    Al usar la herramienta oficial de Oracle para comprobar la compatibilidad del esquema, es posible que encuentre algunas advertencias que indican tokens inesperados en procedimientos almacenados, como: mysql.az_replication_change_master - at line 3,4255: unexpected token 'REPLICATION'mysql.az_add_action_history - PROCEDURE uses obsolete NO_AUTO_CREATE_USER sql_mode Puede omitir estas advertencias de forma segura. Hacen referencia a procedimientos almacenados integrados con el prefijo mysql., que se usan para admitir características de Azure MySQL. Estas advertencias no afectan a la funcionalidad de la base de datos.

  • Desencadene la copia de seguridad a petición antes de realizar la actualización de una versión principal en el servidor de producción, que se puede usar para revertir a la versión 5.7 desde la copia de seguridad a petición completa realizada.
  • Antes de proceder a la actualización de la versión principal, asegúrese de que no hay transacciones XA activas o pendientes en la base de datos, ya que las transacciones XA en curso pueden hacer que falle el proceso de actualización. Para evitar este problema, primero compruebe si hay transacciones de XA en el estado "preparado" ejecutando XA RECOVER;. Para las transacciones identificadas, use XA ROLLBACK '{xid}'; para revertir cada transacción, reemplazando {xid} por el identificador de transacción. Asegúrese de que todas las transacciones de XA se confirman o revierten antes de iniciar la actualización para mantener la coherencia de la transacción y reducir el riesgo de errores de actualización.

Realice una actualización de versión principal planificada de MySQL 5.7 a MySQL 8.0 utilizando el portal Azure para servidores SKU ampliable

Realizar una actualización de versión importante para un nivel de computación Azure Database for MySQL de SKU ampliable requiere un flujo de trabajo especializado. Esto se debe a que las actualizaciones de versiones importantes consumen muchos recursos, exigiendo una cantidad significativa de CPU y memoria. Las instancias SKU ampliables que se basan en créditos pueden tener problemas con estos requisitos, lo que puede provocar el fracaso del proceso de actualización. Por lo tanto, cuando se actualiza una SKU ampliable, el sistema primero actualiza el nivel de computación a una SKU de propósito general para garantizar que haya suficientes recursos disponibles para la actualización.

Para realizar una actualización de versión principal para un nivel de cómputo de Azure Database for MySQL de SKU ampliable mediante el Azure Portal, siga estos pasos:

  1. En Azure Portal, seleccione el Servidor flexible de Azure Database for MySQL 5.7 existente.

    Importante

    Se recomienda realizar la actualización primero en una copia restaurada del servidor, en lugar de actualizar directamente la copia de producción. Consulte Procedimientos para realizar una restauración a un momento dado.

  2. En la página Información general, en la barra de herramientas, seleccione Actualizar.

    Importante

    Antes de actualizar el vínculo de visita para ver la lista de características quitadas en MySQL 8.0. Compruebe los valores de sql_mode en desuso y quite o anule la selección de ellos del Servidor flexible de Azure Database for MySQL 5.7 actual mediante la hoja Parámetros del servidor en Azure Portal para evitar errores de implementación. sql_mode con valores NO_AUTO_CREATE_USER, NO_FIELD_OPTIONS, NO_KEY_OPTIONS y NO_TABLE_OPTIONS ya no se admiten en MySQL 8.0.

    Captura de pantalla que muestra la actualización del servidor flexible Azure Database for MySQL.

  3. Validación de la compatibilidad de esquemas

    Antes de continuar con la actualización, ejecute la herramienta oficial del comprobador de actualizaciones de MySQL de Oracle para validar que el esquema de base de datos actual es compatible con MySQL 8.0. Este paso es crucial para garantizar un proceso de actualización sin problemas.

  4. Decisión previa a la actualización

    Antes de proceder a la actualización, debe elegir el nivel de computación al que desea actualizar para realizar la actualización de la versión principal. De forma predeterminada, el sistema actualizará de SKU ampliable a la SKU de propósito general más básica, pero puede optar por actualizar a un nivel de computación superior si es necesario.

    Nota:

    Mientras su servidor funcione en el nivel "Uso general" durante la actualización, solo se le cobrarán los recursos reales de "Uso general" utilizados durante este periodo.

  5. Decisión posterior a la actualización

    Decida si desea conservar la SKU de uso general o volver a la SKU ampliable tras la actualización. Esta opción se le pedirá durante los pasos iniciales de la actualización.

    El sistema actualizará automáticamente su nivel de computación de SKU ampliable a la SKU de propósito general seleccionada que admita la actualización de la versión principal.

  6. Actualización de la versión principal

    Una vez actualizado el nivel de cálculo, el sistema iniciará el proceso de actualización de la versión principal. Supervise el progreso de la actualización a través del Azure Portal. El proceso de actualización puede llevar algún tiempo en función del tamaño y la actividad de su base de datos.

    Nota:

    Si la actualización de la versión principal falla, el nivel de computación no volverá automáticamente a la SKU ampliable anterior. Esto permite a los clientes continuar con la actualización de la versión principal sin necesidad de volver a realizar la actualización del nivel de cálculo.

  7. Reversión automática

    En función de su decisión previa a la actualización, el sistema conservará la SKU de uso general o volverá automáticamente a la SKU ampliable una vez completada la actualización.

    Nota:

    Si elige volver automáticamente a la SKU ampliable, el sistema volverá a la SKU B2S por defecto.

Realice una actualización de versión principal planificada de MySQL 5.7 a MySQL 8.0 utilizando el Azure Portal para servidores SKU de uso general y Crítico para la empresa

Para realizar una actualización de la versión principal de un servidor del Servidor flexible de Azure Database for MySQL 5.7 mediante Azure Portal, lleve a cabo los siguientes pasos.

  1. En Azure Portal, seleccione el Servidor flexible de Azure Database for MySQL 5.7 existente.

    Importante

    Se recomienda realizar la actualización primero en una copia restaurada del servidor, en lugar de actualizar directamente la copia de producción. Consulte Procedimientos para realizar una restauración a un momento dado.

  2. En la página Información general, en la barra de herramientas, seleccione Actualizar.

    Importante

    Antes de actualizar el vínculo de visita para ver la lista de características quitadas en MySQL 8.0. Compruebe los valores de sql_mode en desuso y quite o anule la selección de ellos del Servidor flexible de Azure Database for MySQL 5.7 actual mediante la hoja Parámetros del servidor en Azure Portal para evitar errores de implementación. sql_mode con valores NO_AUTO_CREATE_USER, NO_FIELD_OPTIONS, NO_KEY_OPTIONS y NO_TABLE_OPTIONS ya no se admiten en MySQL 8.0.

    Captura de pantalla que muestra la actualización del servidor flexible Azure Database for MySQL.

  3. Realizar validación previa a la actualización

    Antes de continuar con la actualización, seleccione el botón Validar para comprobar la compatibilidad del servidor con MySQL 8.0.

    Captura de pantalla que muestra la validación.

    Importante

    Al usar la característica "Validar" para comprobar la compatibilidad del esquema de la base de datos con MySQL 8.0, tenga en cuenta que implica bloquear las tablas para evaluar con precisión todo el esquema. Este proceso podría dar lugar a tiempos de espera de consulta.
    Por lo tanto, es aconsejable no realizar la validación durante las horas pico de horario comercial o cuando la base de datos está experimentando un tráfico elevado. Elegir un período de baja actividad para la validación puede ayudar a minimizar el impacto en las operaciones.

  4. En la barra lateral Actualizar, en el cuadro de texto Versión de MySQL para actualizar, compruebe la versión principal de MySQL a la que desea actualizar, es decir, la 8.0.

    Captura de pantalla que muestra la actualización.

    Para poder actualizar el servidor principal, primero debe haber actualizado los servidores de réplica de lectura asociados. Hasta que se complete, se deshabilitará Actualizar.

  5. En el servidor principal, seleccione el mensaje de confirmación para comprobar que se han actualizado todos los servidores de réplica y, a continuación, seleccione Actualizar.

    Captura de pantalla que muestra la actualización.

    En los servidores de réplica de lectura e independientes, Actualizar está habilitada de forma predeterminada.

Realización de una actualización planeada de la versión principal de MySQL 5.7 a MySQL 8.0 mediante la CLI de Azure

Para realizar una actualización de la versión principal de un Servidor flexible de Azure Database for MySQL 5.7 mediante la CLI de Azure, siga estos pasos.

  1. Instale la CLI de Azure para Windows o use la CLI de Azure en Azure Cloud Shell para ejecutar los comandos de actualización.

    En actualización necesita la versión 2.40.0 o posterior de la CLI de Azure. Si usa Azure Cloud Shell, ya está instalada la versión más reciente. Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.

  2. Después de iniciar sesión, ejecute el comando az mysql server upgrade.

    az mysql flexible-server upgrade --name {your mysql server name} --resource-group {your resource group} --subscription {your subscription id} --version 8
    
  3. En el símbolo del sistema de confirmación, escriba y para confirmar o n para detener el proceso de actualización y, a continuación, presione Entrar.

Realización de una actualización de la versión principal de MySQL 5.7 a MySQL 8.0 en un servidor de réplica de lectura mediante Azure Portal

Para realizar una actualización de la versión principal de un servidor flexible de Azure Database for MySQL 5.7 a MySQL 8.0 en una réplica de lectura mediante Azure Portal, realice los pasos siguientes.

  1. En Azure Portal, seleccione el servidor de réplica de lectura de Azure Database for MySQL 5.7 existente.

  2. En la página Información general, en la barra de herramientas, seleccione Actualizar.

Importante

Antes de actualizar el vínculo de visita para ver la lista de características quitadas en MySQL 8.0. Compruebe los valores de sql_mode en desuso y quite o anule la selección de los valores del Servidor flexible de Azure Database for MySQL 5.7 actual mediante la hoja Parámetros del servidor en Azure Portal para evitar errores de implementación.

  1. En la sección Actualización, seleccione Actualizar para actualizar un servidor de réplica de lectura del Servidor flexible de Azure Database for MySQL 5.7 a MySQL 8.0.

    Aparece una notificación para confirmar que la actualización se ha realizado correctamente.

  2. En la página Información general, confirme que el servidor de réplica de lectura del Servidor flexible de Azure Database for MySQL está ejecutando la versión 8.0.

  3. Ahora, vaya al servidor principal y realice una actualización de la versión principal en él.

Realice una actualización de la versión principal con un tiempo de inactividad mínimo desde MySQL 5.7 a MySQL 8.0 mediante réplicas de lectura

Para realizar una actualización de la versión principal de un servidor del Servidor flexible de Azure Database for MySQL 5.7 a MySQL 8.0 con un tiempo de inactividad mínimo mediante servidores de réplica de lectura, lleve a cabo los siguientes pasos.

  1. En Azure Portal, seleccione el Servidor flexible de Azure Database for MySQL 5.7 existente.

  2. Cree una réplica de lectura desde el servidor principal.

  3. Actualice la réplica de lectura a la versión 8.0.

  4. Una vez que confirme que el servidor de réplica se ejecuta en la versión 8.0, detenga la aplicación para que deje de conectarse al servidor principal.

  5. Compruebe el estado de replicación para asegurarse de que la réplica ha alcanzado la principal para que todos los datos estén sincronizados y que no se realicen nuevas operaciones en la principal.

  6. Confirme con el comando show replica status (Mostrar estado de réplica) en el servidor de réplica para ver el estado de replicación.

     SHOW SLAVE STATUS\G
    

    Si el estado de Slave_IO_Running y Slave_SQL_Running es y el valor de Seconds_Behind_Master es 0, la replicación funciona correctamente. Seconds_Behind_Master indica el retraso de la réplica. Si el valor no es 0, la réplica sigue procesando actualizaciones. Después de confirmar que el valor de Seconds_Behind_Master es ***, la replicación se puede detener de forma segura.

  7. Promocione la réplica de lectura a principal. Para ello debe detener la replicación.

  8. Establezca Parámetro del servidor read_only en 0 (OFF) para empezar a escribir en la principal promocionada.

  9. Apunte la aplicación a la nueva réplica principal (réplica anterior) que ejecuta la versión 8.0 del servidor. Cada servidor tiene una cadena de conexión única. Actualice la aplicación para que apunte a la réplica (anterior) en lugar de al origen.

Nota:

Este escenario solo incurre en tiempo de inactividad durante los pasos 4 a 7.

Preguntas más frecuentes

  • ¿El servidor tendrá un tiempo de inactividad del servidor? Si es este el caso, ¿cuánto tiempo dura?

    Para tener un tiempo de inactividad mínimo durante las actualizaciones, siga los pasos mencionados en Realizar una actualización de versión principal con tiempo de inactividad mínimo de MySQL 5.7 a MySQL 8.0 mediante réplicas de lectura. El servidor no estará disponible durante el proceso de actualización, por lo que se recomienda realizar esta operación durante la ventana de mantenimiento planeado. El tiempo de inactividad estimado depende del tamaño de la base de datos, el tamaño de almacenamiento aprovisionado (IOPS aprovisionado) y el número de tablas en la base de datos. El tiempo de actualización es proporcional al número de tablas del servidor. Para calcular el tiempo de inactividad del entorno de su servidor, se recomienda realizar primero la actualización en la copia restaurada del servidor.

  • ¿Qué ocurre con mis copias de seguridad después de la actualización?

    Todas las copias de seguridad (automatizadas o a petición) realizadas antes de la actualización de la versión principal, cuando se usa para la restauración siempre se restaurarán en un servidor con una versión anterior (5.7). Todas las copias de seguridad (automatizadas o a petición) realizadas después de la actualización de la versión principal se restaurarán en el servidor con la versión actualizada (8.0). Se recomienda realizar una copia de seguridad a petición antes de realizar la actualización de la versión principal para una reversión sencilla.

  • Actualmente uso la SKU ampliable, ¿Microsoft tiene pensado admitir la actualización de la versión principal para esta SKU en el futuro?

    La SKU ampliable no puede admitir la actualización de la versión principal debido a la limitación de rendimiento de esta SKU.

    Si necesita realizar una actualización de la versión principal en la instancia del Servidor flexible de Azure Database for MySQL y actualmente usa SKU ampliable, una solución temporal sería actualizar a la SKU De uso general o Crítico para la empresa, realizar la actualización y, a continuación, volver a la SKU ampliable.

    La actualización a una SKU superior podría implicar un cambio en los precios y podría dar lugar a un aumento de los costos de la implementación. Sin embargo, dado que no se espera que el proceso de actualización tarde mucho tiempo, los costos agregados no deben ser significativos.