Introducción a Azure Database for MySQL

Completado

Azure Database for MySQL se puede implementar como un servidor flexible (versión preliminar) para hospedar la base de datos MySQL de su organización en Azure. Se trata de una base de datos como servicio totalmente administrada que puede controlar cargas de trabajo críticas con rendimiento predecible y escalabilidad dinámica.

Como desarrollador de bases de datos con muchos años de experiencia en la ejecución y administración de instalaciones locales de MySQL, desea explorar cómo Azure Database for MySQL admite y escala sus características.

En esta unidad, explorará las opciones de precios, compatibilidad de versiones, replicación y escalado de Azure Database for PostgreSQL.

Descripción de las ventajas de Azure Database for MySQL

Azure Database for MySQL se aprovisiona como un servidor de Azure Database for MySQL. El servidor de Azure Database for MySQL es equivalente a un servidor MySQL local y proporciona un punto central para la administración de varias bases de datos MySQL.

Para crear una base de datos de Azure Database for MySQL, primero debe aprovisionar un servidor de Azure Database for MySQL. Un servidor de Azure Database for MySQL es el elemento primario de una o varias bases de datos y proporciona el espacio de nombres para las bases de datos. Si elimina el servidor, también eliminará todas las bases de datos que contiene.

¿Qué proporciona el servidor de Azure Database for MySQL?

El servicio Azure Database for MySQL incluye alta disponibilidad sin costos adicionales y escalabilidad según sea necesario. Solo paga por lo que usa. Se proporcionan copias de seguridad automáticas con restauración a un momento dado.

El servidor ofrece seguridad de conexión para aplicar las reglas de firewall y, opcionalmente, requerir conexiones SSL. Muchos parámetros de servidor permiten configurar opciones del servidor, como los modos de bloqueo, el número máximo de conexiones y los tiempos de espera. Los cambios en los parámetros que están marcados como Dinámicos surten efecto de inmediato. Los parámetros estáticos requieren un reinicio del servidor. Reinicie el servidor con el botón Reiniciar en la página Información general del portal.

Los servidores de Azure Database for MySQL incluyen funcionalidades de supervisión para agregar alertas y para ver las métricas y los registros.

Planes de tarifa

Los planes de tarifa permiten contar una amplia gama de rendimiento y capacidad que va de uno a 64 núcleos virtuales y de 5 GB a 4 TB de almacenamiento. El plan de tarifa básico está diseñado para cargas de trabajo de proceso ligeras y admite hasta dos núcleos virtuales con 2 GB de memoria por núcleo. El plan de tarifa de uso general se adaptará a la mayoría de las cargas de trabajo empresariales y admite entre dos y 64 núcleos virtuales con 5 GB de memoria por núcleo. El plan de tarifa optimizado para memoria admite entre dos y 32 núcleos virtuales, tiene 10 GB de memoria por núcleo virtual y está diseñado para cargas de trabajo de alto rendimiento, incluido el análisis de datos en tiempo real. Aunque puede cambiar entre el plan de tarifa de uso general y el plan de tarifa optimizado para memoria, además cambiar el número de núcleos virtuales o almacenamiento en cuestión de segundos, no puede pasar al plan de tarifa básico ni moverse de este.

Image showing the pricing tiers in the Azure portal

Existen límites de conexión basados en los planes de tarifa y el número de núcleos virtuales. Para más información, vea Limitaciones en Azure Database for MySQL.

Control de versiones y actualizaciones

Azure Database for MySQL admite las versiones 5.6 (con la versión de corrección de errores 5.6.42), 5.7 (con la versión de corrección de errores 5.7.24) y 8.0 (con la versión de corrección de errores 8.0.15).

Nota:

Una puerta de enlace redirige las conexiones a las instancias de servidor. Los clientes de MySQL mostrarán la versión de la puerta de enlace en lugar de la versión de la instancia del servidor. Para ver la versión de la instancia del servidor, utilice el comando SELECT VERSION();.

Las versiones de corrección de errores se aplican automáticamente, pero no se admiten las actualizaciones de versión. Si desea actualizar de una versión a otra, debe realizar un volcado y una restauración.

Escalabilidad

Tal como se indicó, no puede pasar al plan de tarifa básico ni moverse de este. Sin embargo, sí puede modificar el número de núcleos virtuales, la generación de hardware, el volumen de almacenamiento y el período de retención de copia de seguridad. También puede cambiar entre el plan de tarifa de uso general y el optimizado para memoria.

Tenga en cuenta que el almacenamiento solo se puede aumentar, no disminuir, y se puede establecer para que aumente de manera automática. Si la característica de crecimiento automático está habilitada, el almacenamiento crece en 5 GB cuando el almacenamiento disponible es inferior a 1 GB o en un 10 % del volumen de almacenamiento (el valor que sea mayor) en el caso de los servidores con menos de 100 GB de almacenamiento. En el caso de servidores con más de 100 GB, el almacenamiento aumenta en un 5 % cuando el almacenamiento disponible es inferior al 5 %.

Alta disponibilidad

Azure Database for MySQL incluye un Acuerdo de Nivel de Servicio (SLA) con respaldo financiero para una disponibilidad del 99,99 %. Si se produce un error de hardware o una implementación de servicio, se crea automáticamente un nodo nuevo y el almacenamiento se conecta a este nodo. La conmutación por error se completará en decenas de segundos.

Si una instancia del servidor de Azure Database for MySQL se escala o reduce verticalmente, se produce un proceso similar con el almacenamiento de datos que se conecta a la instancia nueva. Si se realiza una conmutación por error, se produce un escalado o una reducción vertical, o bien ocurre una interrupción en el tráfico de Internet entre el cliente y Azure, es posible que se genere un error de conectividad transitorio en el cliente. Es importante que las aplicaciones tengan lógica de reintento. En el caso de una conmutación por error, una puerta de enlace dirigirá el tráfico al nodo nuevo sin que se requiera ningún tipo de configuración en el cliente.

Para información sobre cómo administrar los errores transitorios, consulte el artículo sobre cómo controlar los errores transitorios de conectividad para Azure Database for MySQL.

Replicación de datos en Azure Database for MySQL

Replicación de datos de entrada

La Replicación de datos de entrada usa la funcionalidad de replicación nativa de MySQL para replicar datos de un servidor MySQL externo en Azure Database for MySQL. Esto resulta útil si quiere aprovisionar un entorno híbrido con una instancia de MySQL local existente y una réplica basada en Azure. En este escenario, se proporcionan datos locales a los usuarios en un sistema distribuido globalmente. También podría utilizar Replicación de datos de entrada para replicar datos de una máquina virtual o de un servicio de base de datos MySQL que se hospede en otro proveedor de servicios en la nube.

Consideraciones sobre Replicación de datos de entrada

A continuación, encontrará algunos factores que se deben tomar en cuenta con respecto a Replicación de datos de entrada:

  • El servidor principal y el de réplica deben tener la misma versión, que debe ser, como mínimo, 5.6.
  • Ambos deben utilizar el motor InnoDB.
  • Todas las tablas deben tener una clave principal.
  • El servidor de Azure Database for MySQL debe tener un plan de tarifa De uso general o uno Optimizado para memoria.
  • Debe tener los derechos para crear usuarios y configurar el registro binario en el servidor maestro.
  • No se replica la base de datos del sistema mysql. Las cuentas y los permisos no se replican del servidor maestro a la réplica y se deben crear de manera manual.

Pasos para configurar Replicación de datos de entrada

Para configurar Replicación de datos de entrada, debe seguir una serie de pasos:

  • Cree un servidor de Azure Database for MySQL para usarlo como host de la réplica y cree las cuentas de usuario y los privilegios que sean necesarios.
  • Configure la replicación en el servidor maestro.
  • Realice un volcado y restauración del servidor maestro.
  • Use los procedimientos almacenados de Replicación de datos de entrada para configurar el servidor de destino.

Para más información, consulte Configuración de la Replicación de datos de entrada de Azure Database for MySQL.

Réplicas de lectura

Las réplicas de lectura usan la tecnología de replicación de MySQL nativa para crear instancias de réplicas asincrónicas de servidores de Azure Database for MySQL. Los servidores de réplica son de solo lectura y puede haber hasta cinco réplicas para cada servidor maestro. Para cada réplica de lectura, el costo mensual se factura en función de los núcleos virtuales y el almacenamiento que usa.

Usos de las réplicas de lectura

Servidores de informes

Al crear una réplica de solo lectura del servidor maestro, todas las cargas de trabajo de informes, BI y análisis se dirigen a la réplica. Esto quita la carga de trabajo del servidor maestro y reduce los conflictos mientras el servidor maestro ejecuta sus cargas de trabajo de escritura intensiva.

Acercar los datos a los usuarios

Puede crear réplicas entre regiones para a fin de acercar los datos a los usuarios y mejorar sus velocidades de lectura. Las réplicas entre regiones pueden estar en una región de réplica universal o en la región emparejada del servidor maestro. Cuando crea un servidor de réplica, se muestran las regiones disponibles.

Image showing replica regions

Configuración de réplicas de lectura

Puede configurar una réplica de lectura en Azure Portal:

Image showing replication setting in the Azure portal

Luego, puede especificar el nombre y la región de la réplica:

Image showing replication in the Azure portal

Nota:

Las réplicas de lectura no están disponibles en el plan de tarifa básico.

Para más información sobre las réplicas de lectura, consulte Réplicas de lectura en Azure Database for MySQL.

Administración y supervisión

Azure Database for MySQL tiene una amplia variedad de herramientas de supervisión que lo ayudarán a optimizar el servidor, recibir notificaciones de eventos y responder a las métricas de manera proactiva. También puede usar herramientas de administración de MySQL conocidas, como versiones recientes de MySQL Workbench, PHPMyAdmin y Navicat, a fin de administrar y supervisar los servidores de Azure Database for MySQL:

Image showing the MySQL Workbench tool connected to Azure Database for MySQL

Herramientas de Azure para supervisar Azure Database for MySQL

Entre las herramientas disponibles en Azure Portal para administrar y supervisar Azure Database for MySQL se incluyen las siguientes:

  • Métricas de Azure. Las métricas proporcionan datos numéricos cada minuto y se almacenan durante 30 días. Existe una amplia variedad de métricas que se usan para supervisar el servidor; también puede configurar alertas a fin de responder a las métricas.

    Image showing Azure metrics

    Para más información, consulte Plataforma de datos de Azure Monitor.

  • Registros de servidor y de auditoría. Los registros de servidor se habilitan para supervisar las consultas lentas y proporcionar registros de auditoría para el servidor. Los registros de servidor están disponibles fuera de SQL Database for MySQL a través de registros de diagnóstico de Azure.

    Image showing Azure server logs

    Para más información, consulte Registros de consultas lentas en Azure Database for MySQL. Los registros de auditoría son una característica en vista previa (GB) para proporcionar registros de auditoría a fin de realizar el seguimiento de la actividad de base de datos. Para activar los registros de auditoría, establezca el parámetro audit_log_enabled en ACTIVADO. Para más información sobre los registros de auditoría, consulte Registros de auditoría en Azure Database for MySQL.

  • Almacén de consultas. Se utiliza para realizar un seguimiento del rendimiento del servidor a lo largo del tiempo y proporcionar información para solucionar problemas. El Almacén de consultas conserva el historial de las consultas y las estadísticas de tiempo de ejecución para que el usuario pueda identificar las consultas de larga duración o que consumen muchos recursos. Para habilitar el Almacén de consultas, establezca el parámetro de servidor query_store_capture_mode en TODOS: Image showing Query Store capture mode

    Para ver datos sobre las consultas en el almacén, ejecute la consulta siguiente:

    SELECT * FROM mysql.query_store;
    

    Para ver datos sobre las estadísticas de espera, ejecute la consulta siguiente:

    SELECT * FROM mysql.query_store_wait_stats;
    

    Nota:

    El Almacén de consultas es una característica en vista previa (GB) y no está disponible en el plan de tarifa básico.

    Para más información sobre el Almacén de consultas, consulte Supervisión del rendimiento de Azure Database for MySQL con el Almacén de consultas.

  • Información de rendimiento de consultas. La herramienta Información de rendimiento de consultas muestra los datos del Almacén de consultas como visualizaciones para que el usuario pueda identificar las consultas que afectan el rendimiento. Información de rendimiento de consultas está en la sección Rendimiento inteligente de su instancia de Azure Database for MySQL, en Azure Portal.

    Nota:

    La Información de rendimiento de consultas es una característica en vista previa (GB) y no está disponible en el plan de tarifa básico.

    Para más información sobre la Información de rendimiento de consultas, consulte Información de rendimiento de consultas en Azure Database for MySQL.

  • Recomendaciones de rendimiento. Las Recomendaciones de rendimiento utilizan datos del Almacén de consultas para analizar las cargas de trabajo y los combina con características de la base de datos a fin de sugerir índices nuevos para mejorar el rendimiento. Recomendaciones de rendimiento está en la sección Rendimiento inteligente de su instancia de Azure Database for MySQL, en Azure Portal.

    Nota:

    Las Recomendaciones de rendimiento son una característica en vista previa (GB) y no están disponibles en el plan de tarifa básico.

    Para más información sobre las Recomendaciones de rendimiento, consulte Recomendaciones de rendimiento en Azure Database for MySQL.

Conectividad de clientes

Controladores de MySQL

Azure Database for MySQL utiliza MySQL Community Edition, es compatible con una amplia variedad de controladores y admite diversos lenguajes de programación. Las cadenas de conexión se proporcionan en Azure Portal:

Image showing connection strings

Para más información sobre los controladores de MySQL, consulte Herramientas de administración y controladores de MySQL compatibles con Azure Database for MySQL.

Configuración del firewall

La manera más sencilla de configurar el firewall es usar la configuración de seguridad de conexión para el servicio en Azure Portal. Agregue una regla para cada intervalo de direcciones IP de cliente. También puede usar esta página para aplicar conexiones SSL al servicio.

Image showing the firewall configuration for Azure Database for PostgreSQL

Haga clic en Agregar IP de cliente en la barra de herramientas para agregar la dirección IP del equipo de escritorio.

Si configuró réplicas de solo lectura, debe agregar una regla de firewall a cada una para que los clientes puedan acceder a ellas.

Errores de conexión transitorios

Cuando se conecta a una base de datos a través de Internet, es inevitable que se produzcan errores de conexión transitorios, los que deben administrar las aplicaciones cliente.

Para información sobre los errores transitorios de conectividad, consulte el artículo sobre cómo controlar los errores transitorios de conectividad para Azure Database for MySQL.

Características de MySQL que no admite Azure Database for MySQL

Si bien la mayoría de las características de MySQL están disponibles en Azure Database for MySQL, algunas no son compatibles. Debe revisar estas características para asegurarse de mitigar los posibles problemas que surjan al migrar.

Motores de almacenamiento

Azure Database for MySQL admite los motores de almacenamiento InnoDB y MEMORY. InnoDB es el motor de almacenamiento predeterminado para MySQL y proporciona un equilibrio entre el alto rendimiento y la alta confiabilidad. A menos que se especifique lo contrario, todas las tablas nuevas de MySQL utilizarán el motor de almacenamiento InnoDB.

Para más información sobre el motor de almacenamiento InnoDB, consulte el artículo de introducción a InnoDB.

Para almacenar datos en memoria, está disponible el motor de almacenamiento MEMORY. Estos datos tiene el riesgo de verse afectados por cualquier forma de bloqueo o interrupción, por lo que el motor de almacenamiento MEMORY solo debe usarse como un almacén temporal de alto rendimiento.

Para más información sobre el motor de almacenamiento MEMORY, consulte este artículo al respecto.

Azure Database for MySQL no admite los motores de almacenamiento MyISAM, BLACKHOLE, ARCHIVE ni FEDERATED. Los datos de MyISAM se deben convertir al motor de almacenamiento InnoDB. Los motores de almacenamiento BLACKHOLE, ARCHIVE y FEDERATED tienen roles especializados y no se utilizan como almacenes de datos típicos.

Privilegios y roles

No se expone el rol DBA, porque muchos parámetros y valores de servidor pueden infringir las reglas de transacción y disminuir el rendimiento. Por motivos similares, se restringe el privilegio SUPER, así como la cláusula DEFINER que utiliza el privilegio SUPER.

Restauración

Dos características de restauración funcionan de manera distinta en Azure Database for MySQL:

  • La restauración a un momento dado crea un servidor nuevo con una configuración idéntica al servidor en el que se basa.
  • Un servidor eliminado no se puede restaurar.