Download - Alta disponibilidad con MySQL
![Page 1: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/1.jpg)
conAlta Disponibilidad
Por: Ing. Dennis Cohn Muroy
![Page 2: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/2.jpg)
Agenda
● Alta disponibilidad● Replicación● DRBD● Heartbeat● Ruteando las consultas● Mejoras esperadas
![Page 3: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/3.jpg)
Alta Disponibilidad
● Servicios siempre disponibles● Tolerancia a Fallos● Redundancia y Sistemas de reemplazo
![Page 4: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/4.jpg)
Consideraciones
● Puntos de Falla (Redundancia)● Factibilidad de eliminar nodos
● Tiempo● Hacer uso de equipos de respaldo
● Pérdida de transacciones
![Page 5: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/5.jpg)
Replicación
● Replicar datos de un servidor MySQL (maestro) a otro (maestro / esclavo)
● Herramienta asíncrona● Usos
● Escalar soluciones: distribuir carga.● Seguridad de datos: backup a nivel de esclavos● Distribución de datos (grandes distancias)
![Page 6: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/6.jpg)
Maestro – Maestro
● Insertar / modificar registros en más de una instancia MySQL
● Datos replicados asíncronamente● Modos:
● Activo – Pasivo ● Activo – Activo
![Page 7: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/7.jpg)
Maestro – Maestro: Configuración
Pasos a aplicar a cada nodo:
● Crear usuario con permiso de replicación
● Editar /etc/my.cfg
● Indicar usuario a usar (CHANGE MASTER TO)
● Iniciar la función de escucha (start slave)
● Revisar los estados● show master status\G;● show slave status\G;
log-bin
binlog-do-db=<bd a replicar>
binlog-ignore-db=<bd ignorar>
server-id=<entero único>
![Page 8: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/8.jpg)
Activo / Pasivo
Activo Pasivo
![Page 9: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/9.jpg)
Activo / Activo
Activo Activo
![Page 10: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/10.jpg)
Agregando un nuevo nodo...
![Page 11: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/11.jpg)
Anillo con 4 nodos
![Page 12: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/12.jpg)
¿Qué hacer en caso de fallo?
![Page 13: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/13.jpg)
Detectando nodo con problemas
![Page 14: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/14.jpg)
Reconfigurando el anillo
![Page 15: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/15.jpg)
Maestro – Maestro: Recomendaciones
● AUTO_INCREMENT:● auto_increment_increment● auto_increment_offset
● Considerar redundancia:● Recursos del nodo = suma recursos consumidos
por cada nodo
● MySQL Multi Master Replicator Manager (MMM)
![Page 16: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/16.jpg)
Maestro – Maestro NO distribuye INSERTs
![Page 17: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/17.jpg)
Maestro – Esclavo
● Maestro: Solo escritura● Esclavo: Solo lectura
● 1 Maestro, N Esclavos
![Page 18: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/18.jpg)
Maestro – Esclavo: Configuración
● Maestro: crear usuario; permiso de replicación
● Maestro: /etc/my.cfg
● Maestro: Verificar estado
● Esclavo: /etc/my.cfg
● Esclavo: Indicar usuario a usar (CHANGE MASTER TO)
● Iniciar la función de escucha (start slave)
● Esclavo: Verificar estado
server-id=<entero único>
log-bin
binlog-do-db=<bd a replicar>
binlog-ignore-db=<bd ignorar>
server-id=<entero único>
![Page 19: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/19.jpg)
Maestro con un Esclavo
Maestro
Esclavo 1
![Page 20: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/20.jpg)
Agregando un segundo esclavo
Maestro
Esclavo 1Esclavo 2
![Page 21: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/21.jpg)
En caso el maestro falle...
Maestro
Esclavo 1Esclavo 2
![Page 22: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/22.jpg)
Detectando la falla ...
Maestro
Esclavo 1Esclavo 2
![Page 23: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/23.jpg)
Promoviendo un Esclavo a Maestro
Maestro
Esclavo 1Maestro
Esclavo 2
![Page 24: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/24.jpg)
Maestro – Esclavo: Recomendaciones
● InnoDB en el maestro (transacciones)● MyISAM en el esclavo (solo lectura)● Separar: Relay logs – archivos de datos
![Page 25: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/25.jpg)
Pero se invierte MUCHO tiempo promoviendo un nuevo maestro.
![Page 26: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/26.jpg)
DR:BD
● Raid 1 a nivel de red● Nodo primario / secundario● Modos de trabajo:
● Síncrono: – Escritura en disco = activo + pasivo
● Asíncrono: – Escritura en disco = activo
![Page 27: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/27.jpg)
Nodo Primario Nodo Secundario
![Page 28: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/28.jpg)
¿Cómo interactuar con la réplica en caso la base de datos primaria falle?
![Page 29: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/29.jpg)
Heartbeat
● Migración de servicio + ip de un nodo a otro
● Comunicación entre 2 nodos:● Estado de procesos en el otro nodo
![Page 30: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/30.jpg)
Comunicación normal
IPV
![Page 31: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/31.jpg)
Nodo activo falla
IPV
![Page 32: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/32.jpg)
Heartbeat detecta el fallo
IPV
![Page 33: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/33.jpg)
Se redirige el tráfico
IPV
![Page 34: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/34.jpg)
Tiempo ... 5 segundos
IPV
![Page 35: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/35.jpg)
Se restablece el nodo fallido
IPV
![Page 36: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/36.jpg)
Inicia sincronización
IPV
![Page 37: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/37.jpg)
¿A dónde debo remitir la consulta?
![Page 38: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/38.jpg)
Ruteando las consultas
● Maestro: Insert, Update, Delete● Esclavo: Select● Tipos
● Enlazado con la aplicación– Implementación– SQL Relay
● Transparente– MySQL Proxy– Tungsten
![Page 39: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/39.jpg)
Una posible solución ...
![Page 40: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/40.jpg)
IPV
“Nodo” Maestro
Esclavo 1 Esclavo 2 Esclavo n
![Page 41: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/41.jpg)
¿Qué viene más adelante?
![Page 42: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/42.jpg)
Mejoras esperadas
● Replicación Master – Master en anillo. Remover elementos del anillo con un solo comando
● Inclusión de un MySQL Heartbeat● Auto recuperación del relay log (CRASH)● Agregar soporte semi – síncrono (Google)
● MySQL 5.4 / MySQL 6.0
![Page 43: Alta disponibilidad con MySQL](https://reader034.vdocuments.co/reader034/viewer/2022052304/559849441a28ab48168b47ce/html5/thumbnails/43.jpg)
Referencias
● High Performance MySQL● Building Scalable Web Sites● DR:BD [www.drbd.org]● MySQL [www.mysql.com]● MySQL Replication Features
(Thalmann, Lars)