Alta disponibilidad con MySQL

  • 1,768 views
Uploaded on

Este archivo fue presentado en el Linux Week 2010 en la Pontificia Universidad Católica del Perú. Muestra una posible solución para resolver los problemas relacionados con la alta disponibilidad de …

Este archivo fue presentado en el Linux Week 2010 en la Pontificia Universidad Católica del Perú. Muestra una posible solución para resolver los problemas relacionados con la alta disponibilidad de Bases de Datos MySQL

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,768
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
61
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Alta Disponibilidad con Por: Ing. Dennis Cohn Muroy
  • 2. Agenda● Alta disponibilidad● Replicación● DRBD● Heartbeat● Ruteando las consultas● Mejoras esperadas
  • 3. Alta Disponibilidad● Servicios siempre disponibles● Tolerancia a Fallos● Redundancia y Sistemas de reemplazo
  • 4. Consideraciones● Puntos de Falla (Redundancia) ● Factibilidad de eliminar nodos● Tiempo ● Hacer uso de equipos de respaldo● Pérdida de transacciones
  • 5. 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)
  • 6. Maestro – Maestro● Insertar / modificar registros en más de una instancia MySQL● Datos replicados asíncronamente● Modos: ● Activo – Pasivo ● Activo – Activo
  • 7. Maestro – Maestro: ConfiguraciónPasos a aplicar a cada nodo:● Crear usuario con permiso de log-bin replicación binlog-do-db=<bd a replicar>● Editar /etc/my.cfg binlog-ignore-db=<bd ignorar>● Indicar usuario a usar (CHANGE MASTER TO) server-id=<entero único>● Iniciar la función de escucha (start slave)● Revisar los estados ● show master statusG; ● show slave statusG;
  • 8. Activo / PasivoActivo Pasivo
  • 9. Activo / ActivoActivo Activo
  • 10. Agregando un nuevo nodo...
  • 11. Anillo con 4 nodos
  • 12. ¿Qué hacer en caso de fallo?
  • 13. Detectando nodo con problemas
  • 14. Reconfigurando el anillo
  • 15. 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)
  • 16. Maestro – Maestro NO distribuye INSERTs
  • 17. Maestro – Esclavo● Maestro: Solo escritura● Esclavo: Solo lectura● 1 Maestro, N Esclavos
  • 18. Maestro – Esclavo: Configuración● Maestro: crear usuario; server-id=<entero único> permiso de replicación log-bin● Maestro: /etc/my.cfg binlog-do-db=<bd a replicar> binlog-ignore-db=<bd ignorar>● Maestro: Verificar estado● Esclavo: /etc/my.cfg server-id=<entero único>● Esclavo: Indicar usuario a usar (CHANGE MASTER TO)● Iniciar la función de escucha (start slave)● Esclavo: Verificar estado
  • 19. Maestro con un Esclavo Maestro Esclavo 1
  • 20. Agregando un segundo esclavo Maestro Esclavo 2 Esclavo 1
  • 21. En caso el maestro falle... Maestro Esclavo 2 Esclavo 1
  • 22. Detectando la falla ... MaestroEsclavo 2 Esclavo 1
  • 23. Promoviendo un Esclavo a Maestro Maestro Esclavo 1 Esclavo 2 Maestro
  • 24. Maestro – Esclavo: Recomendaciones● InnoDB en el maestro (transacciones)● MyISAM en el esclavo (solo lectura)● Separar: Relay logs – archivos de datos
  • 25. Pero se invierte MUCHO tiempo promoviendo un nuevo maestro.
  • 26. 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
  • 27. Nodo Primario Nodo Secundario
  • 28. ¿Cómo interactuar con la réplica en caso la base de datos primaria falle?
  • 29. Heartbeat● Migración de servicio + ip de un nodo a otro● Comunicación entre 2 nodos: ● Estado de procesos en el otro nodo
  • 30. Comunicación normal IPV
  • 31. Nodo activo falla IPV
  • 32. Heartbeat detecta el fallo IPV
  • 33. Se redirige el tráfico IPV
  • 34. Tiempo ... 5 segundos IPV
  • 35. Se restablece el nodo fallido IPV
  • 36. Inicia sincronización IPV
  • 37. ¿A dónde debo remitir la consulta?
  • 38. Ruteando las consultas● Maestro: Insert, Update, Delete● Esclavo: Select● Tipos ● Enlazado con la aplicación – Implementación – SQL Relay ● Transparente – MySQL Proxy – Tungsten
  • 39. Una posible solución ...
  • 40. IPV “Nodo” MaestroEsclavo 1 Esclavo 2 Esclavo n
  • 41. ¿Qué viene más adelante?
  • 42. 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
  • 43. Referencias● High Performance MySQL● Building Scalable Web Sites● DR:BD [www.drbd.org]● MySQL [www.mysql.com]● MySQL Replication Features (Thalmann, Lars)
  • 44. Gracias Ing. Dennis Cohn Muroy dennis.cohn@pucp.edu.pe Follow me: @denniscm20