sql >> Base de Datos >  >> RDS >> Mysql

La mejor solución DBaaS para MySQL

Como la base de datos de código abierto más popular, MySQL se ha implementado en muchos lugares, desde pequeñas empresas emergentes hasta organizaciones muy grandes. Los casos de uso varían desde aplicaciones de sitios web simples hasta entornos de misión crítica con requisitos de tiempo de actividad del 99,999 %. MySQL simplemente hace el trabajo y es fácil trabajar con él.

Aunque MySQL es relativamente fácil de administrar, no se ejecuta por sí solo. Hay una cierta sobrecarga de administración:el software debe parchearse de vez en cuando, la base de datos debe monitorearse en busca de fallas o anomalías en el rendimiento o la seguridad, las fallas deben manejarse y recuperarse, las copias de seguridad deben administrarse ... y el la lista continúa. Por lo tanto, no debería sorprender que los proveedores de nube más grandes ofrezcan servicios DBaaS públicos basados ​​en MySQL.

Tres proveedores de nube que ofrecen MySQL como servicio incluyen:

  • Servicio web de Amazon con RDS para MySQL
  • Google Compute Engine con CloudSQL para MySQL
  • Microsoft Azure, Microsoft Azure MySQL

En este blog, compararemos las soluciones de estos proveedores de nube.

Versión y parches de MySQL

La última versión de MySQL que está disponible en Amazon Web Services (AWS) es MySQL 8.0.20, que es bastante similar a la última versión del Oracle MySQL oficial (8.0.21 en el momento de escritura). Además de la versión más reciente, AWS RDS también proporciona la versión anterior de MySQL (versión principal 5.5, 5.6 y 5.7), para que pueda implementar la versión exacta que sea compatible con su aplicación.

En Google Cloud Platform (GCP), la versión de MySQL compatible con CloudSQL para MySQL sigue siendo MySQL 5.6 y 5.7, la última versión secundaria de la versión 5.6 es 5.6.42 mientras que para la versión 5.7, la última la versión secundaria es 5.7.25.

La base de datos Azure para MySQL es compatible con las versiones 5.6, 5.7, 8.0, lamentablemente no proporcionan la versión menor (o la versión de corrección de errores de la base de datos, como la llama Azure) cuando se implementa desde la consola. Para determinar la versión de su instancia de servidor MySQL, se puede usar SELECT VERSION(); comando en el indicador de MySQL.

Problemas conocidos y limitaciones

Hay algunos problemas conocidos y restricciones que existen en la base de datos como un servicio, mientras que no sucede en MySQL en las instalaciones o en las máquinas virtuales. En RDS, algunas de las limitaciones son:

  • El complemento de llavero de MySQL no es compatible.
  • El tamaño máximo del límite de almacenamiento para una tabla es de 16 TB cuando se usa el motor de almacenamiento InnoDB.
  • Hay algunos parámetros que requieren consideraciones especiales al usar RDS, por ejemplo:long_query_time, lower_case_table_name.

Existen algunas limitaciones y problemas conocidos en CloudSQL para MySQL, divididos en diferentes categorías, por ejemplo:problemas de durabilidad y disponibilidad de datos, problemas de conexión de instancias, problemas administrativos y problemas con la exportación e importación de datos. Cada categoría tiene problemas y limitaciones específicos, algunos de ellos son: 

  • Las operaciones de ejecución prolongada no se pueden cancelar ni detener.
  • Los nombres de las instancias no se pueden usar inmediatamente después de que eliminemos la instancia.
  • La cláusula DEFINER hará que la importación falle.

La base de datos Azure para MySQL tiene algunas limitaciones y problemas conocidos relacionados con la actualización, los privilegios y el motor de almacenamiento. Algunos de los detalles son:

  • Actualmente no se admite la actualización importante de la base de datos. Necesita hacer un volcado y restaurar en un nuevo servidor para una actualización importante.
  • La base de datos Azure para MySQL actualmente es compatible con los motores de almacenamiento InnoDB y Memory.
  • La base de datos del sistema en Azure Database para MySQL está configurada como de solo lectura. No puede cambiar nada en la base de datos del sistema mysql.

Debe verificar las limitaciones y los problemas conocidos de MySQL en cada proveedor de la nube y compararlos con sus requisitos para comprender si afecta la aplicación.

Copia de seguridad y restauración

Amazon RDS for MySQL ejecuta la copia de seguridad automatizada según la programación, toma una instantánea del volumen de la instancia de la base de datos. El período predeterminado de retención de la copia de seguridad es de 7 días. No solo eso, RDS carga sus registros de transacciones para las instancias de la base de datos en S3 cada 5 minutos para mantener la recuperación en un punto en el tiempo.

Puede restaurar una copia de seguridad a un momento específico creando una nueva instancia dentro del período de retención de la copia de seguridad. Puede elegir la última hora restaurable para restaurar a la última hora posible, o puede elegir una opción personalizada para definir una hora específica para restaurar los datos.

La copia de seguridad que se realiza en CloudSQL para MySQL es incremental. Contiene solo los cambios de datos después de la copia de seguridad anterior. La copia de seguridad más antigua es similar al tamaño de su base de datos actual. Cuando se elimina la copia de seguridad más antigua, el tamaño de la siguiente copia de seguridad más antigua aumenta, por lo que la copia de seguridad completa aún existe.

La copia de seguridad automática se realiza todos los días y se conserva durante 7 días de forma predeterminada. CloudSQL almacena datos de respaldo en 2 regiones para redundancia. Una región puede estar en la misma que se está ejecutando la instancia y la otra puede estar en una región diferente.

La recuperación de un punto en el tiempo en CloudSQL creará una nueva instancia, la configuración de la instancia se heredará con el origen de la instancia. Antes de realizar la recuperación de un punto en el tiempo, asegúrese de haber habilitado el registro binario. Cuando realiza una recuperación de un punto en el tiempo, solo necesita completar el nombre del registro binario y la posición de recuperación.

La base de datos Azure para MySQL realiza copias de seguridad de archivos de datos y registros de transacciones. La programación de la copia de seguridad en sí es una combinación de copia de seguridad completa y diferencial para servidores con un tamaño de almacenamiento de hasta 4 TB, mientras que la copia de seguridad instantánea se realiza para un servidor de almacenamiento máximo de hasta 16 TB.

La copia de seguridad completa se ejecuta una vez a la semana, mientras que las copias de seguridad diferenciales se realizan dos veces al día. El período de retención predeterminado de la copia de seguridad es de 7 días, pero siempre puede configurar la retención hasta 35 días.

Hay dos tipos de restauración en la base de datos de Azure para MySQL, que es:

  • Restauración en un momento dado, disponible como una opción de copia de seguridad redundante, o puede crear un nuevo servidor en la misma región que su servidor original, utilizando la copia de seguridad completa y el registro de transacciones para restaurar los datos.
  • Restauración geográfica, disponible si configura una redundancia geográfica en la opción de almacenamiento. Le permitirá restaurar su copia de seguridad en diferentes regiones.

Tenga en cuenta que ni AWS, Google ni Azure le permiten descargar sus copias de seguridad.

Supervisión de la base de datos

RDS brinda integración de monitoreo con CloudWatch, puede ver algunas de las métricas, como la utilización de CPU, conexiones de base de datos, IOPS de escritura y lectura, rendimiento de escritura y lectura, latencia de lectura y escritura. Puede crear una alarma para activar la alerta desde CloudWatch, en función de alguna categoría de métrica y simplemente definir el umbral.

Al igual que RDS, GCP CloudSQL también se integra con stackdriver, puede ver métricas como:uso de CPU, uso de memoria, conexiones activas, transacciones por segundo, bytes de entrada/salida, operaciones de escritura y lectura, retraso de replicación .

La base de datos Azure para MySQL proporciona algunas métricas, por ejemplo; Conexiones activas, porcentaje de CPU, conexión fallida, porcentaje de E/S, porcentaje de memoria, retraso de replicación, porcentaje de almacenamiento, almacenamiento utilizado. También puede crear alertas en bases de datos de Azure para MySQL, elegir las métricas y definir las reglas.

Conclusión

Basado en 4 áreas clave; Versión y parches de MySQL, problemas conocidos y limitaciones, copia de seguridad y restauración, monitoreo de la base de datos, en mi opinión, Amazon RDS para MySQL sigue siendo la mejor base de datos como servicio para MySQL. Proporciona versiones y parches detallados, problemas muy limitados y limitaciones en comparación con otros. Es una forma conveniente de ejecutar MySQL, con la salvedad de que el precio del servicio ha subido en los últimos años.