SlideShare a Scribd company logo
1 of 44
Download to read offline
Alta Disponibilidad   con



                            Por: Ing. Dennis Cohn Muroy
Agenda

●   Alta disponibilidad
●   Replicación
●   DRBD
●   Heartbeat
●   Ruteando las consultas
●   Mejoras esperadas
Alta Disponibilidad
●   Servicios siempre disponibles
●   Tolerancia a Fallos
●   Redundancia y Sistemas de reemplazo
Consideraciones
●   Puntos de Falla (Redundancia)
    ●   Factibilidad de eliminar nodos
●   Tiempo
    ●   Hacer uso de equipos de respaldo
●   Pérdida de transacciones
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)
Maestro – Maestro
●   Insertar / modificar registros en más de una
    instancia MySQL
●   Datos replicados asíncronamente
●   Modos:
    ●   Activo – Pasivo
    ●   Activo – Activo
Maestro – Maestro: Configuración
Pasos 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;
Activo / Pasivo


Activo                     Pasivo
Activo / Activo


Activo                     Activo
Agregando un nuevo nodo...
Anillo con 4 nodos
¿Qué hacer en caso de fallo?
Detectando nodo con problemas
Reconfigurando el anillo
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)
Maestro – Maestro NO distribuye INSERTs
Maestro – Esclavo
●   Maestro: Solo escritura
●   Esclavo: Solo lectura

●   1 Maestro, N Esclavos
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
Maestro con un Esclavo

    Maestro




              Esclavo 1
Agregando un segundo esclavo

                Maestro




    Esclavo 2             Esclavo 1
En caso el maestro falle...

              Maestro




  Esclavo 2             Esclavo 1
Detectando la falla ...

            Maestro




Esclavo 2             Esclavo 1
Promoviendo un Esclavo a Maestro

                  Maestro




                            Esclavo 1
      Esclavo 2
                            Maestro
Maestro – Esclavo:
            Recomendaciones
●   InnoDB en el maestro (transacciones)
●   MyISAM en el esclavo (solo lectura)
●   Separar: Relay logs – archivos de datos
Pero se invierte MUCHO tiempo promoviendo
              un nuevo maestro.
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
Nodo Primario   Nodo Secundario
¿Cómo interactuar con la réplica en caso la
     base de datos primaria falle?
Heartbeat
●   Migración de servicio + ip de un nodo a otro

●   Comunicación entre 2 nodos:
    ●   Estado de procesos en el otro nodo
Comunicación normal


         IPV
Nodo activo falla


        IPV
Heartbeat detecta el fallo


             IPV
Se redirige el tráfico


           IPV
Tiempo ... 5 segundos


          IPV
Se restablece el nodo fallido


              IPV
Inicia sincronización


          IPV
¿A dónde debo remitir la consulta?
Ruteando las consultas
●   Maestro: Insert, Update, Delete
●   Esclavo: Select
●   Tipos
    ●   Enlazado con la aplicación
        –   Implementación
        –   SQL Relay
    ●   Transparente
        –   MySQL Proxy
        –   Tungsten
Una posible solución ...
IPV

                                          “Nodo” Maestro




Esclavo 1         Esclavo 2   Esclavo n
¿Qué viene más adelante?
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
Referencias
●   High Performance MySQL
●   Building Scalable Web Sites
●   DR:BD [www.drbd.org]
●   MySQL [www.mysql.com]
●   MySQL Replication Features
    (Thalmann, Lars)
Gracias


            Ing. Dennis Cohn Muroy
          dennis.cohn@pucp.edu.pe
           Follow me: @denniscm20

More Related Content

What's hot

MySQL Architecture and Engine
MySQL Architecture and EngineMySQL Architecture and Engine
MySQL Architecture and EngineAbdul Manaf
 
Creacion subredes
Creacion subredesCreacion subredes
Creacion subredesleztic
 
Gestion entrada y salida
Gestion entrada y salidaGestion entrada y salida
Gestion entrada y salidaDavid Martinez
 
Protocolos de cada capa del modelo osi
Protocolos de cada capa del modelo osiProtocolos de cada capa del modelo osi
Protocolos de cada capa del modelo osiWilfredo Matheu
 
Manual de conexión de base de datos distribuida
Manual  de conexión de base de datos distribuidaManual  de conexión de base de datos distribuida
Manual de conexión de base de datos distribuidaJorch Mendez
 
Enterprise Manager: Write powerful scripts with EMCLI
Enterprise Manager: Write powerful scripts with EMCLIEnterprise Manager: Write powerful scripts with EMCLI
Enterprise Manager: Write powerful scripts with EMCLIGokhan Atil
 
Redes II Practica 5 OSPF
Redes II Practica 5 OSPFRedes II Practica 5 OSPF
Redes II Practica 5 OSPFLuis Reyes
 
Protección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas OperativosProtección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas OperativosRichard J. Nuñez
 

What's hot (20)

MySQL Architecture and Engine
MySQL Architecture and EngineMySQL Architecture and Engine
MySQL Architecture and Engine
 
Subnetting
SubnettingSubnetting
Subnetting
 
Creacion subredes
Creacion subredesCreacion subredes
Creacion subredes
 
Gestion entrada y salida
Gestion entrada y salidaGestion entrada y salida
Gestion entrada y salida
 
Protocolos de cada capa del modelo osi
Protocolos de cada capa del modelo osiProtocolos de cada capa del modelo osi
Protocolos de cada capa del modelo osi
 
Manual de conexión de base de datos distribuida
Manual  de conexión de base de datos distribuidaManual  de conexión de base de datos distribuida
Manual de conexión de base de datos distribuida
 
Google y sus servidores
Google y sus servidoresGoogle y sus servidores
Google y sus servidores
 
Enterprise Manager: Write powerful scripts with EMCLI
Enterprise Manager: Write powerful scripts with EMCLIEnterprise Manager: Write powerful scripts with EMCLI
Enterprise Manager: Write powerful scripts with EMCLI
 
macros Lenguaje ensamblador
macros Lenguaje ensambladormacros Lenguaje ensamblador
macros Lenguaje ensamblador
 
Instalación del conector MySQL para .NET
Instalación del conector MySQL para .NETInstalación del conector MySQL para .NET
Instalación del conector MySQL para .NET
 
1.2. El procesador y sus registros internos
1.2. El procesador y sus registros internos1.2. El procesador y sus registros internos
1.2. El procesador y sus registros internos
 
Control de Flujo [Telecomunicaciones]
Control de Flujo [Telecomunicaciones]Control de Flujo [Telecomunicaciones]
Control de Flujo [Telecomunicaciones]
 
Redes II Practica 5 OSPF
Redes II Practica 5 OSPFRedes II Practica 5 OSPF
Redes II Practica 5 OSPF
 
Ciclo de instrucción
Ciclo de instrucciónCiclo de instrucción
Ciclo de instrucción
 
Lvm advanced topics
Lvm advanced topicsLvm advanced topics
Lvm advanced topics
 
Sistemas operativos para servidores
Sistemas operativos para servidoresSistemas operativos para servidores
Sistemas operativos para servidores
 
Presentacion de Microsoft SQL Server.
Presentacion de Microsoft SQL Server. Presentacion de Microsoft SQL Server.
Presentacion de Microsoft SQL Server.
 
MySQL Backup & Recovery
MySQL Backup & RecoveryMySQL Backup & Recovery
MySQL Backup & Recovery
 
Enrutamiento dinamico
Enrutamiento dinamicoEnrutamiento dinamico
Enrutamiento dinamico
 
Protección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas OperativosProtección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas Operativos
 

Viewers also liked

Sql server cluster
Sql server clusterSql server cluster
Sql server clusterjo_unwell
 
Conferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y RailsConferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y RailsDavid Calavera
 
Introducción a Ganglia
Introducción a GangliaIntroducción a Ganglia
Introducción a GangliaDardo Valdez
 
BDD: Descubriendo qué requiere realmente tu cliente
BDD: Descubriendo qué requiere realmente tu clienteBDD: Descubriendo qué requiere realmente tu cliente
BDD: Descubriendo qué requiere realmente tu clienteJorge Gamba
 
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo HolísticamenteSoftware Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo HolísticamenteAngel Nuñez
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Ricard Clau
 
Continous Delivering a PHP application
Continous Delivering a PHP applicationContinous Delivering a PHP application
Continous Delivering a PHP applicationJavier López
 
Automatizacion de proyectos con gradle
Automatizacion de proyectos con gradleAutomatizacion de proyectos con gradle
Automatizacion de proyectos con gradleEdson Chávez Montaño
 
Introducción a DDD
Introducción a DDDIntroducción a DDD
Introducción a DDDsergiopolo
 
PhpSpec 2.0 ilustrated by examples
PhpSpec 2.0 ilustrated by examplesPhpSpec 2.0 ilustrated by examples
PhpSpec 2.0 ilustrated by examplesMarcello Duarte
 
Building and Deploying Application to Apache Mesos
Building and Deploying Application to Apache MesosBuilding and Deploying Application to Apache Mesos
Building and Deploying Application to Apache MesosJoe Stein
 
A new model for Docker image distribution
A new model for Docker image distributionA new model for Docker image distribution
A new model for Docker image distributionDocker, Inc.
 

Viewers also liked (19)

Sql server cluster
Sql server clusterSql server cluster
Sql server cluster
 
Conferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y RailsConferencia Rails: Integracion Continua Y Rails
Conferencia Rails: Integracion Continua Y Rails
 
Introducción a Ganglia
Introducción a GangliaIntroducción a Ganglia
Introducción a Ganglia
 
BDD: Descubriendo qué requiere realmente tu cliente
BDD: Descubriendo qué requiere realmente tu clienteBDD: Descubriendo qué requiere realmente tu cliente
BDD: Descubriendo qué requiere realmente tu cliente
 
Introducción a LDAP
Introducción a LDAPIntroducción a LDAP
Introducción a LDAP
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo HolísticamenteSoftware Debt: Qué Es y Cómo Gestionarlo Holísticamente
Software Debt: Qué Es y Cómo Gestionarlo Holísticamente
 
Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2Escalabilidad y alto rendimiento con Symfony2
Escalabilidad y alto rendimiento con Symfony2
 
OAUTH introducción y entretenida explicación.
OAUTH introducción y entretenida explicación.OAUTH introducción y entretenida explicación.
OAUTH introducción y entretenida explicación.
 
Conferencia Monitoreo de Servidores con Nagios
Conferencia Monitoreo de Servidores con NagiosConferencia Monitoreo de Servidores con Nagios
Conferencia Monitoreo de Servidores con Nagios
 
TDD with phpspec2
TDD with phpspec2TDD with phpspec2
TDD with phpspec2
 
Continous Delivering a PHP application
Continous Delivering a PHP applicationContinous Delivering a PHP application
Continous Delivering a PHP application
 
Maven Overview
Maven OverviewMaven Overview
Maven Overview
 
Automatizacion de proyectos con gradle
Automatizacion de proyectos con gradleAutomatizacion de proyectos con gradle
Automatizacion de proyectos con gradle
 
Integrando sonar
Integrando sonarIntegrando sonar
Integrando sonar
 
Introducción a DDD
Introducción a DDDIntroducción a DDD
Introducción a DDD
 
PhpSpec 2.0 ilustrated by examples
PhpSpec 2.0 ilustrated by examplesPhpSpec 2.0 ilustrated by examples
PhpSpec 2.0 ilustrated by examples
 
Building and Deploying Application to Apache Mesos
Building and Deploying Application to Apache MesosBuilding and Deploying Application to Apache Mesos
Building and Deploying Application to Apache Mesos
 
A new model for Docker image distribution
A new model for Docker image distributionA new model for Docker image distribution
A new model for Docker image distribution
 

Similar to Alta disponibilidad con MySQL

Mysq Replication
Mysq ReplicationMysq Replication
Mysq ReplicationIrontec
 
MySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMiguel Angel Nieto
 
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...Nelson Calero
 
Escenarios de Sistemas Distribuidos con Chamilo LMS
Escenarios de Sistemas Distribuidos con Chamilo LMSEscenarios de Sistemas Distribuidos con Chamilo LMS
Escenarios de Sistemas Distribuidos con Chamilo LMSJose Arturo Mora Soto
 
Así que pusiste MongoDB. Dime ¿cómo lo administras?
Así que pusiste MongoDB. Dime ¿cómo lo administras?Así que pusiste MongoDB. Dime ¿cómo lo administras?
Así que pusiste MongoDB. Dime ¿cómo lo administras?Alejandro E Brito Monedero
 
JRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterpriseJRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterpriseJano González
 
Jaime Casanova - Domando a la bestia Replicación
Jaime Casanova - Domando a la bestia ReplicaciónJaime Casanova - Domando a la bestia Replicación
Jaime Casanova - Domando a la bestia ReplicaciónPGDay Campinas
 
Recuperación de desastres y soluciones de alta disponibilidad con SQL Server
Recuperación de desastres y soluciones de alta disponibilidad con SQL ServerRecuperación de desastres y soluciones de alta disponibilidad con SQL Server
Recuperación de desastres y soluciones de alta disponibilidad con SQL ServerSpanishPASSVC
 
PostgreSQL el core de OpenERP
PostgreSQL el core de OpenERPPostgreSQL el core de OpenERP
PostgreSQL el core de OpenERPCristian Salamea
 
Migrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLMigrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLscastell77
 
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011Jano González
 
Actividad No. 1.14: Replicación de datos en MySQL 5.1
Actividad No. 1.14: Replicación de datos en  MySQL 5.1Actividad No. 1.14: Replicación de datos en  MySQL 5.1
Actividad No. 1.14: Replicación de datos en MySQL 5.1Francisco Medina
 
Cluster MySQL en Windows
Cluster MySQL en WindowsCluster MySQL en Windows
Cluster MySQL en WindowsErick Cruz
 
Raid Por Software
Raid Por SoftwareRaid Por Software
Raid Por SoftwareRosariio92
 
PostgreSQL vs MySQL: PostgreSQL como alternativa.
PostgreSQL vs MySQL: PostgreSQL como alternativa.PostgreSQL vs MySQL: PostgreSQL como alternativa.
PostgreSQL vs MySQL: PostgreSQL como alternativa.Arturo Espinosa
 

Similar to Alta disponibilidad con MySQL (20)

Replicación Mysql
Replicación MysqlReplicación Mysql
Replicación Mysql
 
Mysq Replication
Mysq ReplicationMysq Replication
Mysq Replication
 
MySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - ClusterMySQL - High Availability - Load Balacing - Cluster
MySQL - High Availability - Load Balacing - Cluster
 
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Mar...
 
Escenarios de Sistemas Distribuidos con Chamilo LMS
Escenarios de Sistemas Distribuidos con Chamilo LMSEscenarios de Sistemas Distribuidos con Chamilo LMS
Escenarios de Sistemas Distribuidos con Chamilo LMS
 
Así que pusiste MongoDB. Dime ¿cómo lo administras?
Así que pusiste MongoDB. Dime ¿cómo lo administras?Así que pusiste MongoDB. Dime ¿cómo lo administras?
Así que pusiste MongoDB. Dime ¿cómo lo administras?
 
Jano Gonzalez - jruby
Jano Gonzalez - jrubyJano Gonzalez - jruby
Jano Gonzalez - jruby
 
JRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterpriseJRuby: Ruby en un mundo enterprise
JRuby: Ruby en un mundo enterprise
 
Intro cassandra
Intro cassandraIntro cassandra
Intro cassandra
 
Jaime Casanova - Domando a la bestia Replicación
Jaime Casanova - Domando a la bestia ReplicaciónJaime Casanova - Domando a la bestia Replicación
Jaime Casanova - Domando a la bestia Replicación
 
Recuperación de desastres y soluciones de alta disponibilidad con SQL Server
Recuperación de desastres y soluciones de alta disponibilidad con SQL ServerRecuperación de desastres y soluciones de alta disponibilidad con SQL Server
Recuperación de desastres y soluciones de alta disponibilidad con SQL Server
 
PostgreSQL el core de OpenERP
PostgreSQL el core de OpenERPPostgreSQL el core de OpenERP
PostgreSQL el core de OpenERP
 
Migrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQLMigrando de MSSQL a PostgreSQL
Migrando de MSSQL a PostgreSQL
 
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
 
Actividad No. 1.14: Replicación de datos en MySQL 5.1
Actividad No. 1.14: Replicación de datos en  MySQL 5.1Actividad No. 1.14: Replicación de datos en  MySQL 5.1
Actividad No. 1.14: Replicación de datos en MySQL 5.1
 
DB1 Unidad 8: Replicación
DB1 Unidad 8: ReplicaciónDB1 Unidad 8: Replicación
DB1 Unidad 8: Replicación
 
Cluster MySQL en Windows
Cluster MySQL en WindowsCluster MySQL en Windows
Cluster MySQL en Windows
 
Raid Por Software
Raid Por SoftwareRaid Por Software
Raid Por Software
 
PostgreSQL vs MySQL: PostgreSQL como alternativa.
PostgreSQL vs MySQL: PostgreSQL como alternativa.PostgreSQL vs MySQL: PostgreSQL como alternativa.
PostgreSQL vs MySQL: PostgreSQL como alternativa.
 
Replicacion en mysq
Replicacion en mysqReplicacion en mysq
Replicacion en mysq
 

Recently uploaded

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 

Recently uploaded (10)

POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 

Alta disponibilidad con MySQL

  • 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ón Pasos 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;
  • 11. Anillo con 4 nodos
  • 12. ¿Qué hacer en caso de fallo?
  • 13. Detectando nodo con problemas
  • 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 ... Maestro Esclavo 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
  • 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
  • 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
  • 40. IPV “Nodo” Maestro Esclavo 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