Skip to Content

¿Qué es la alta disponibilidad de MySQL?

La alta disponibilidad de MySQL es una opción que puede seleccionar para permitir que su base de datos MySQL permanezca disponible en caso de una falla o interrupción. La función le permite establecer requisitos de tiempo de actividad más altos y tolerancia de pérdida de datos cero. En este artículo, analizaremos lo que significa el concepto general de alta disponibilidad y cómo funciona la opción de alta disponibilidad de MySQL. 

¿Qué es la alta disponibilidad?

La alta disponibilidad es la capacidad de un sistema o servicio de continuar funcionando y permanecer disponible cuando se produce una falla o una interrupción. Un sistema altamente disponible garantiza que las aplicaciones y los sistemas de misión crítica de una organización estén siempre en funcionamiento. Es especialmente importante para organizaciones en sectores como la salud, las finanzas y la aviación, donde la falla de un sistema de misión crítica podría tener consecuencias graves.

La alta disponibilidad generalmente se expresa como un porcentaje del tiempo de actividad definido por los acuerdos de nivel de servicio (SLA), con un puntaje de 100 que representa un sistema que nunca falla. Debido a que esto es prácticamente inalcanzable, la mayoría de las organizaciones buscan “cinco nueves” o una disponibilidad del 99,999 %.

Cómo MySQL logra una alta disponibilidad

Un sistema altamente disponible debe poder recuperarse instantáneamente si se produce una falla. Una arquitectura de alta disponibilidad requiere al menos tres elementos básicos que funcionen juntos para garantizar la recuperación y la alta disponibilidad:

Detección de fallas

MySQL tiene una opción de alta disponibilidad que permite que las aplicaciones cumplan con los requisitos para un mayor tiempo de actividad (y tolerancia de pérdida de datos cero). Cuando la opción Alta disponibilidad está activada, el sistema MySQL crea tres instancias en diferentes dominios de falla o zonas de disponibilidad.

Los datos se replican entre las tres instancias mediante MySQL Group Replication, y la aplicación se conecta a la instancia principal para leer y escribir datos hacia y desde la base de datos. Si se produce una falla, el sistema activa una conmutación por error automática a una instancia secundaria en cuestión de minutos.

Conmutación por error

El mecanismo de conmutación por error transfiere los servicios a una instancia replicada. Si hay más de una instancia de copia de seguridad disponible, el mecanismo de conmutación por error elige el mejor para promover al nodo primario. 

Un mecanismo de redireccionamiento

Una vez que se produce la conmutación por error a una instancia secundaria, la función Alta disponibilidad redirige todas las conexiones de aplicaciones y usuarios a lo que ahora es el nuevo nodo primario. También redirige todas las consultas del nodo primario anterior a la nueva base de datos primaria. 

Alta disponibilidad de MySQL: Tiempo de actividad

El tiempo de actividad es el tiempo que un sistema está disponible y funciona correctamente, y se expresa como un porcentaje del tiempo total que se espera que el sistema esté operativo. El tiempo de actividad alto significa que el sistema está disponible y funciona como se espera la mayor parte del tiempo. 

El tiempo de actividad que puede esperar con diferentes niveles de alta disponibilidad de MySQL dependerá de la solución de alta disponibilidad (HA) específica que implemente.

Replicación MySQL

MySQL Replication le permite configurar varios servidores para proporcionar redundancia y conmutación por error para admitir tiempos de actividad más altos que un servidor MySQL sin capacidad de alta disponibilidad. Una configuración de maestro-esclavo utiliza un único servidor maestro que acepta lecturas y escrituras y uno o más servidores esclavos de solo lectura. Los datos del servidor maestro se replican asíncronamente en los servidores esclavos.

Para implementar la conmutación por error, deberá configurar uno o más servidores esclavos como esperas que se pueden promover a maestro en caso de una falla. Por lo general, la conmutación por error es un proceso manual en el que debe promover el nodo esclavo al nodo maestro cambiando el estado del esclavo promovido al modo de lectura/escritura para que pueda aceptar consultas.

Debido a que la conmutación por error se realiza manualmente, llevará más tiempo y podría ser propensa a errores humanos, lo que provocará una interrupción más prolongada. MySQL Replication también utiliza replicación asíncrona, lo que significa que si el maestro falla, es posible que las transacciones cometidas en el maestro aún no se hayan replicado en los servidores esclavos. Si hay una pérdida de datos crítica, los datos deberán restaurarse, lo que aumenta el tiempo que el sistema permanece inactivo.

Replicación del grupo MySQL

MySQL Group Replication le permite lograr tiempos de actividad más altos que MySQL Replication. Al usar MySQL Group Replication, configura varios servidores MySQL en un grupo con un servidor designado como servidor primario y los otros servidores como servidores secundarios. Cada servidor del grupo mantiene una copia de los datos y utiliza la replicación para garantizar que las copias permanezcan sincronizadas. 

Si el servidor primario falla, los servidores secundarios del grupo detectan automáticamente la falla y comienzan el proceso de conmutación por error. Uno de los servidores secundarios se promociona automáticamente al nuevo servidor primario y comienza a atender las solicitudes de los clientes. Los otros miembros secundarios del grupo ahora reciben actualizaciones del nuevo servidor primario y continúan procesando solicitudes leídas por el cliente.

Si el servidor defectuoso vuelve a estar en línea, se une automáticamente al grupo como servidor secundario.

Debido a que la detección de fallas y la conmutación por error se producen automáticamente con la replicación de grupo MySQL, el tiempo de inactividad es mínimo y los usuarios y las aplicaciones generalmente no saben que se ha producido una interrupción. 

clúster MySQL

Una solución MySQL Cluster HA ofrece el más alto nivel de tiempo de actividad. Este sistema de base de datos distribuida y altamente disponible, junto con la conmutación por error automática y el equilibrio de carga, proporciona altos niveles de disponibilidad, rendimiento y escalabilidad, y está diseñado para proporcionar un tiempo de inactividad casi nulo. 

MySQL Cluster utiliza tres tipos de nodos que trabajan juntos para almacenar y administrar datos:

  • Nodos de datos: Almacene los datos y maneje las consultas de lectura y escritura.
  • Nodos del servidor MySQL: Recibir consultas de las aplicaciones del cliente, procesarlas en los nodos de datos y luego devolver el resultado a los clientes.
  • Nodos de administración: Administre el funcionamiento del clúster y maneje la conmutación por error y la recuperación si se produce una falla.

Si uno o más nodos de un clúster fallan, el clúster detecta automáticamente el problema y activa el proceso de conmutación por error. Todo el proceso generalmente ocurre en un segundo de una falla, sin interrumpir el servicio a las aplicaciones del cliente. El clúster sigue funcionando de forma normal, prácticamente sin tiempo de inactividad.

Pruebe FlashArray

Experimente cómo Pure Storage simplifica drásticamente los bloques y archivos en un entorno de autoservicio.

Pruebe ahora

Alta disponibilidad de MySQL: Tiempo de recuperación 

El tiempo de recuperación es la medición del tiempo que tarda un sistema MySQL en recuperarse de una interrupción. Un tiempo de recuperación más prolongado produce una menor disponibilidad y puede afectar directamente la capacidad de la empresa para generar ingresos, la productividad de los empleados y la satisfacción del cliente.

En MySQL , los tiempos de recuperación variarán según el tipo de replicación que utilice:

  • Los tiempos de recuperación de MySQL Replication para la replicación maestro-esclavo se verán afectados por el proceso de conmutación por error manual. Después de promocionar el servidor esclavo al nuevo nodo primario, deberá reiniciarlo para que pueda comenzar a replicar datos en los servidores esclavos restantes. Luego, deberá tener en cuenta las transacciones faltantes y resolver cualquier conflicto que pueda ocurrir.
  • La replicación de grupo utiliza un proceso automático de detección de fallas y conmutación por error que resulta en tiempos de recuperación más bajos que la replicación maestro-esclavo. Los mecanismos de detección y resolución de conflictos garantizan que los datos de cada servidor estén siempre sincronizados en todos los servidores del grupo. Group Replication también utiliza tipos de datos replicados (CRDT) sin conflictos para conciliar los datos automáticamente cuando se produce un conflicto. Con Group Replication, el sistema puede recuperarse de una falla con muy poco tiempo de inactividad.
  • MySQL Cluster utiliza un enfoque de “no compartir nada”, en el que a cada nodo del clúster se le asigna su propia memoria y almacenamiento en disco, y se comunica con otros nodos mediante una conexión de alta velocidad. MySQL Cluster continúa funcionando incluso si uno o más nodos fallan. El clúster detecta automáticamente el problema y activa el proceso de conmutación por error para recuperarse prácticamente sin tiempo de inactividad.

Cómo determinar sus requisitos de MySQL HA

Para determinar sus requisitos de alta disponibilidad de MySQL, deberá considerar varios factores, entre ellos:

  • La arquitectura actual de su sistema: ¿Qué componentes contiene su sistema actual y cómo se configuran? ¿Pueden admitir MySQL de alta disponibilidad?
  • Presupuesto: ¿Cuánto deberá invertir en recursos como hardware, software y personal? Además, considere los costos asociados con la capacitación y el mantenimiento continuo.
  • Necesidades comerciales: Considere sus objetivos de tiempo de recuperación (RTO) y los objetivos de punto de recuperación (RPO). ¿Cuál es su tiempo de recuperación ideal? ¿Con qué rapidez necesita recuperarse de una falla? Considere si su organización está sujeta a algún requisito regulatorio o de cumplimiento específico que requiera alta disponibilidad.
  • Criticidad de datos: ¿Qué tan críticos son sus datos comerciales? ¿Qué tan importante es estar actualizado? ¿Cuánta pérdida de datos puede pagar?

Cuándo usar la alta disponibilidad de MySQL

Consideremos un par de casos de uso que requieren soluciones de alta disponibilidad MySQL:

Sitios web de alto tráfico

Los sitios web de alto tráfico manejan miles de consultas y transacciones por segundo, sin mencionar miles de usuarios simultáneos. Las medidas de alta disponibilidad, como la redundancia del servidor y el equilibrio de carga, pueden garantizar que la base de datos permanezca disponible y pueda manejar la carga. 

Los servidores redundantes garantizarán que el sitio web permanezca disponible incluso si un servidor falla, y las solicitudes entrantes de equilibrio de carga en varios servidores evitarán que un solo servidor se sobrecargue y se desconecte.

Cargas de trabajo y aplicaciones de misión crítica

Las empresas con sistemas y aplicaciones de misión crítica requieren un alto nivel de disponibilidad y tiempo de actividad. La mayoría de las veces, estos sistemas no pueden permitirse experimentar tiempo de inactividad, y la base de datos debe permanecer disponible en todo momento. 

Las soluciones de HA de MySQL, como la replicación de grupo o el clúster, son ideales en este caso de uso porque emplean un mecanismo de conmutación por error automático que produce poco o ningún tiempo de inactividad.

Cómo Pure Storage admite la alta disponibilidad de MySQL

Pure Storage ® Evergreen ™ es una cartera de suscripciones que ofrecen implementaciones sin tiempo de inactividad. En combinación con la arquitectura de matriz de almacenamiento única de Pure Storage, Evergreen le permite actualizar la infraestructura de almacenamiento sin interrumpir las cargas de trabajo de servicio. 

Pure también admite clúster active-active  y conmutación por error automática y transparente con Purity ActiveCluster ™, un clúster extendido active-active en varios sitios, para cero RPO y RTO.

También considere Pure Cloud Block Store ™, que ofrece confiabilidad en la nube a nivel empresarial para aplicaciones de misión crítica. Las actualizaciones sin interrupciones y la alta disponibilidad en todas las zonas de disponibilidad logran una alta disponibilidad para la continuidad del negocio multinube y la recuperación ante desastres.

07/2024
Innovating the Educational Experience with Perdoceo Education & Pure Storage
When IT leaders at Perdoceo Education made the decision to adopt a cloud-first strategy, they didn’t hesitate to involve Pure Storage.
Casos de estudio de clientes
3 páginas
CONTÁCTENOS
¿Preguntas, comentarios?

¿Tiene alguna pregunta o comentario sobre los productos o las certificaciones de Pure?  Estamos aquí para ayudar.

Programe una demostración

Programe una demostración en vivo y compruebe usted mismo cómo Pure puede ayudarlo a transformar sus datos en potentes resultados. 

Llámenos: 800-976-6494

Medios de comunicación: pr@purestorage.com

 

Pure Storage, Inc.

2555 Augustine Dr.

Santa Clara, CA 95054

800-379-7873 (información general)

info@purestorage.com

CERRAR
¡Su navegador ya no es compatible!

Los navegadores más antiguos a menudo representan riesgos de seguridad. Para brindar la mejor experiencia posible al utilizar nuestro sitio, actualice a cualquiera de estos navegadores más recientes.