Alternativas de HA en MySQL
     Ing. Nelson Calero, OCP
      nelson.calero@gmail.com




    MySQL Meetup Montevideo
        8 de Marzo 2012
                                1 /47
Conceptos

Disponibilidad

• Porcentaje de tiempo en que un sistema/recurso está
  disponible para ser usado
     A = uptime/(uptime + downtime)

• Medida con escala de nueves:
    99% => 3 días, 15:36 horas /año
    99,9% => 8:46 horas/año o 43.8 minutos/mes
    99,99% => 53 minutos/año o 4.38 minutos/mes
    99,999% => 5 minutos/año o 0.44 minutos/mes


                                                        2/47
Conceptos - Disponibilidad

• Capacidad de continuar trabajando a pesar de fallas
  (hardware, software, externas).

Siendo más formales:
• Mean Time Between Failures (MTBF)
     Tiempo medio estimado entre fallas.
• Mean Time to Repair/Recover (MTTR)
     Tiempo medio para reparar las fallas

     Equivalente: A = MTBF / (MTBF + MTTR)

En un sistema, podemos diseñar la arquitectura para que altos
tiempos de MTTR en componentes no afecten la
disponibilidad total del sistema.
                                                                3/47
Soluciones de HA en MySQL

Hay varias posibilidades nativas:
  – Replicación
  – Storage compartido
  – Cluster

Y varias provistas por terceros:
   – MMM: Multi Master replication Manager for MySQL.
   – DRBD: replicación sincrónica de bloques usando la red
   – Pacemaker: Cluster resource manager
   – Galera: replicación sincrónica – parche
   – Tungsten: replicación a nivel de aplicación


                                                             4/47
MySQL - Replicación

Basada en transferencia y aplicación de Log Binario del master
a slaves, en forma asincrónica o semisincrónica (5.5).

• es en un sólo sentido (one-way)
• un slave puede tener un solo master
• por sentencias, registros cambiados (5.1), o mixto
• puede ser parcial, filtrando por base y tablas
• controlada por parámetros en my.cnf y comandos para
  configuración dinámica
• cluster implementa replicación sincrónica

Dos thread en cada slave:
• obtiene registros de binlog y genera relaylog (I/O thread)
• lee relaylog y aplica registros (SQL thread)


                                                                 5/47
MySQL - Replicación


 "MySQL replication by default is asynchronous. The master
writes events to its binary log but does not know whether or
when a slave has retrieved and processed them. With
asynchronous replication, if the master crashes, transactions
that it has committed might not have been transmitted to any
slave. Consequently, failover from master to slave in this case
may result in failover to a server that is missing transactions
relative to the master"

http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html




                                                                   6/47
MySQL - Replicación - funcionalidades

hasta 5.1 (2008):
   1. log binario de sentencias, registros, o mixto
   2. filtro de bases, tablas y transacciones
   3. sentencias no determinísticas
   4. disponible para Cluster

en 5.5 (2010):
   1. semisincrónica
   2. fsync mejorado en slave
   3. recuperación de corrupción en relay log
   4. heartbeat
   5. filtro de eventos por servidor
en 5.6 (m3):
   1. replication_event_checksum

                                                      7/47
Mysql - Replicación

Semisincrónica (5.5):

• parche original de google - 2007
• slaves confirman recepción de eventos al master
• commit se responde al cliente luego que un slave haya
  confirmado recepción de evento
• implementado con plugins en master y slave
   o rpl_semi_sync_master_enabled = 0/1;
   o rpl_semi_sync_master_timeout = N;
           1000 = 1 segundo
   o rpl_semi_sync_slave_enabled = 0/1;
• monitoreo
   o SHOW STATUS LIKE 'Rpl_semi_sync%';

                                                          8/47
MySQL - Replicación

• ¿Cómo habilitar log binario?
      log-bin     # en my.cnf

• Si slaves van a tener habilitada réplica, habilitar que su
  binlog incluya cambios aplicados del master
         log-slave-updates # en my.cnf
• ¿Cuándo se genera un archivo nuevo?
       – al reiniciar el servidor mysql
       – al llegar al tamaño máximo (max_binlog_size)
       – ejecutando FLUSH LOGS
• ¿Cuándo se borran los archivos de logbin?
       – cuando se llega a EXPIRE_LOGS_DAYS
       – ejecutando PURGUE MASTER LOGS


                                                               9/47
MySQL - Replicación

SET BINLOG_FORMAT=[row|statement|mixed|default];

statement
• almacena las sentencias SQL ejecutadas, DDL y DML.
• tamaño independiente del volumen de datos
• necesita que todas las tablas de la sentencia estén
   replicadas.
• sentencias no determinísticas no son replicadas

row
• almacena datos modificados
• lockea solo datos necesarios
• recomendado cuando hay poco volumen de cambios



                                                        10/47
MySQL - Replicación

binlog filtrado en master:
       • SET SQL_LOG_BIN=0
       • binlog-do-db, binlog-ignore-db


filtrada aplicación en slave:
       • replicate-do/ignore-db/table, replicate-do-table
       • mysql proxy

NOTA: Binlog filtrado implica que no sirve para recuperación !

Configurar para consistencia
 sync_binlog=1  # escribe binlog a disco después
                  de cada escritura
 innodb_support_xa=1 # sincroniza binlog con InnoDB
                        datafiles (caídas innodb que genera rollback)

                                                                        11/47
MySQL - Replicación

¿Replicación bi-direccional?
• No soportado.
   o Esto quiere decir: slave no actualiza datos en master,
     porque el flujo de datos es siempre en un sentido: del
     master al slave.
• Se puede configurar master y slave en un mismo servidor, y
  parece bi-direccional si ambos tienen configuración
  simétrica, pero son dos configuraciones distintas.
• Problemas a considerar:
   o autoincrementos
   o restricciones de unicidad (UKs)
   o cambios fuera de orden



                                                               12/47
MySQL - Replicación

Sentencias inseguras (unsafe) no son replicadas en formato
statement:
 • no determinísticas

• aquellas que pueden retornar valor distinto en slave
  sysdate(), user, UUID(), etc.

• otras sentencias no seguras:
  update ... limit
  insert delayed
  load data infile # desde 5.1.50

• algunas no determinísticas se consideran seguras:
  ej.: curtime(), last_insert_id()


                                                             13/47
MySQL - Replicación

Soporta cambios externos en la base de datos del slave:
• cambiar de engine en slaves
    •       master InnoDB y slave MyISAM
              Servía hace algunos años cuando InnoDB no tenía buena
              performance. Actualmente es discutible. Puede servir para algún caso
              particular. Medirlo en el sistema!
        ●
            Blackhole: filtro de datos

●
    cambiar configuración de slaves buscando mejor performance

• cambiar índices

• cambiar configuración raid



                                                                                     14/47
MySQL - Replicación - 5.1
 Replicación en cluster
 •   desde 5.1.6 master/slave. circular desde 5.1.18
 •   configuración de máxima disponibilidad




http://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-replication.html   15/47
MySQL - Replicación

Contras:

• no hay automatización oficial de failover, se requiere
  intervención manual o programación.

• escritura en slaves está limitada a un thread. Multi-thread en
  5.6 (está en m6).

• es asincrónica y no transaccional, por lo que puede perder
  datos. Mejorado en 5.5.2 (semisync) y 5.6 (crash recovery)

• slave necesita monitoreo: caídas, demoras, consistencia




                                                                   16/47
Soluciones de HA en MySQL


Nativas
  1. Replicación
  2. Storage compartido
  3. Cluster

De terceros
  1. MMM
  2. DRBD
  3. Pacemaker
  4. Galera
  5. Tungsten




                            17/47
MySQL - Storage compartido

Activo/activo
• no soportado en InnoDB
• MyISAM:
   o sobre cluster file system (OCFS2/GFS)
   o parámetros necesarios:
        external-locking
        query-cache=0
        delay_key_write=off
Activo/pasivo
• Necesita software de terceros para heartbeat
• Failover:
   o InnoDB aplica recovery
   o MyISAM necesita que se valide que no hay tablas
     corruptas: --myisam_recover como opción de arranque o
     myisamchk antes de levantarlo.

                                                             18/47
Soluciones de HA en MySQL


Nativas
  1. Replicación
  2. Storage compartido
  3. Cluster

De terceros
  1. MMM
  2. DRBD
  3. Pacemaker
  4. Galera
  5. Tungsten




                            19/47
MySQL - Cluster
Arquitectura shared nothing




http://dev.mysql.com/doc/mysql-cluster-excerpt/5.1/en/mysql-cluster-overview.html

                                                                                    20/47
MySQL - Cluster

A partir de mysql 5.5, cluster es una distribución independiente.
Actualmente está en producción 7.2

Nodo de datos - NDBD - Almacena datos e índices
●
  Desde 7.2 soporta varios procesos (nodos) en mismo host
Nodo SQL - mysqld (versión 5.1)
• Maneja comunicación con cliente: recibe sentencias SQL y se
  comunica con nodos de datos para ejecutarla
Nodo de Gestión - ndb_mgmd
• monitoreo, configuración y control del cluster
Datos se almacenan particionados y replicados entre NDBD
• fragmento activo (primario) y de failover (secundarios)
• parámetro NoOfReplicas es 2 por defecto
   o valores mayores soportan caídas de más nodos
                                                                    21/47
MySQL - Cluster

Caídas soportadas

nodo sql:
• clientes se desconectan y transacciones no commiteadas se
  pierden

nodo datos:
• máximo NoOfReplicas-1
• en caso de split-brain, vive el grupo con mayoría de nodos, y
  desempata nodo árbitro.

nodo gestión:
• no impacta el funcionamiento del cluster
• no se pueden agregar nuevos nodos hasta que vuelva


                                                                  22/47
MySQL - Cluster

Varias operaciones online:
• backup
• software upgrade
• agregar nodos de datos
• system restart en modo "rolling"
   o gestión, datos (de a uno, todos), sql (idem)

Balanceo de carga:
• Java Connector/J 5.0.6: jdbc:mysql:loadbalance://

Base ndbinfo con datos en vivo:
• nodos activos
• memoria usada (tabla memoryusage)
• varios contadores de actividad (tabla counters)


                                                      23/47
MySQL - Cluster

Recomendado para
• transacciones cortas y chicas
• sql con joins simples y búsquedas por PK
• alta disponibilidad

Casos de uso
• sistemas de tiempo real
• soporte a telefonía

Configuración - en práctico
• Usa un archivo de configuración global: config.ini
• local a cada nodo: my.cnf
   o ubicación de nodos de gestión
• logs por nodo (ndb_#_out.log) y global (ndb_#_cluster.log)


                                                               24/47
MySQL - Cluster

Limitaciones
• mínimo tres equipos, máximo 255 (48 nodos de datos)
• lento en joins de mucho volumen y agregaciones
• no soporta índices fulltext ni foreing keys
• datos se almacenan en memoria (solo columnas indexadas
  desde 5.5, antes todo), lo que limita el tamaño máximo de la
  base a la capacidad de los servidores de datos.
• estimación de memoria RAM necesaria en cada nodo:
    (SizeofDatabase x NumberOfReplicas x 1.1 ) /
    NumberOfDataNodes

 ndb_size.pl estima memoria necesaria en cluster a partir de
una instancia mysql común.
   http://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-programs-ndb-size-pl.html




                                                                                    25/47
MySQL - Cluster

MCM: MySQL Cluster Manager
• versión comercial: MySQL Cluster Carrier Grade Edition
• mcmd --bootstrap # instala cluster de 3 nodos configurado
• Redhat/OEL 5, SuSE EL10/11




                                                              26/47
Soluciones de HA en MySQL


Nativas
  1. Replicación
  2. Storage compartido
  3. Cluster

De terceros
  1. MMM
  2. DRBD
  3. Pacemaker
  4. Galera
  5. Tungsten




                            27/47
Mysql - Multi Master Manager

http://mysql-mmm.org/
  ●
    Scripts para monitoreo y failover de replicaciones
    master/master con un solo nodo soportando escrituras

Scripts:
 ●
   mmm_mond, mmm_agentd, mmm_control

Bug reportado 27/4/2011
• https://bugs.launchpad.net/mysql-mmm/+bug/771843
  "moving slaves to the new master can cause inconsistency accross
  databases"
• pasado a prioridad alta el 25/5, a resolver en v2.2




                                                                     28/47
Soluciones de HA en MySQL


Nativas
  1. Replicación
  2. Storage compartido
  3. Cluster

De terceros
  1. MMM
  2. DRBD
  3. Pacemaker
  4. Galera
  5. Tungsten




                            29/47
MySQL - DRBD

Distributed Replicated Block Device - http://www.drbd.org
• módulo en kernel linux que implementa replicación
  sincrónica de bloques usando la red (raid-1)




                                                            30/47
MySQL - DRBD

Necesita software de gestión de cluster para automatizar:
• heartbeat / pacemaker

Ventajas
• alternativa barata a una caja de storage (SAN)
• datos quedan locales al servidor activo (performance)
• es más seguro que replicación nativa (consistencia)
• actualizaciones de hardware/software usando failover
contras
• soportado solo en linux
• agrega complejidad
• corrupción se propaga
• no permite replicar parte de la base


                                                            31/47
MySQL - DRBD

Activo/activo
• Sobre GFS/OCFS2
• Sólo con MyISAM

Con LVM
• se puede usar debajo y sobre DRBD
• snapshots sólo si LVM va debajo
• snapshots en slave permiten montar el filesystem para
  maniobras read-only

Soporta mirroring sincrónico y asincrónico
• necesario para WAN, no recomendado para MySQL




                                                          32/47
Mysql - DRBD

Parámetros recomendados en MySQL:
• log-bin=nombre
     por defecto es hostname y puede cambiar
• innodb_log_file_size
     más chico permite recovery más rápido
• myisam_recover=force,backup
     para chequeo automático de corrupción en failover
• innodb_support_xa=1
     sincroniza binlog con innodb datafiles (caídas innodb que
     genera rollback)
• sync_binlog=1
     escribe binlog a disco después de cada escritura

                                                                 33/47
MySQL - DRBD

Posibles fallas

master
1. caída del servidor
2. tranca sin que falle, no liberando recursos. Requiere fencing
   del agente de cluster (heartbeat)
3. corte del enlace con secundario

secundario
1. caída del servidor
2. corrupción de datos por fallas en storage
3. corte del enlace con master




                                                                   34/47
Soluciones de HA en MySQL


Nativas
  1. Replicación
  2. Storage compartido
  3. Cluster

De terceros
  1. MMM
  2. DRBD
  3. Pacemaker
  4. Galera
  5. Tungsten




                            35/47
Pacemaker

Cluster resource manager - http://www.clusterlabs.org/
  gpl (v2), no hay versión enterprise.
●
  Apoyado por RedHat / Novell / LinBit.

Funcionalidades
• soporta infraestructura de OpenAIS y Heartbeat
• implementa STONITH para asegurar integridad de datos
• configuración redundante en CIB (cluster information base),
archivo XML
• usa cualquier recurso que pueda ser gestionado con scripts
• soporta varias configuraciones redundantes:
    activo/pasivo, activo/activo, N+1, etc.
➢
  Parte de Heartbeat hasta versión 2.1.3. Luego se independizó
➢
  1.0 más testeado sobre Heartbeat que con Corosync

                                                                 36/47
Pacemaker Stack
http://www.clusterlabs.org/wiki/Architecture#Supported_Cluster_Stacks




                                                                        37/47
Pacemaker Internals
http://www.clusterlabs.org/wiki/Architecture#Supported_Cluster_Stacks




                                                                        38/47
Pacemaker
con MySQL
●
  gran comunidad de usuarios
●
  percona-prm: Mysql Replication Manager (alpha)

Pasos para comenzar a utilizarlo:

●
    Configurar Heartbeat
     /etc/ha.d/ha.cf

●
    Configurar recursos
     Muchos parámetros, estudiar bien opciones
     Stonith para producción

●
    Probar escenarios !

                                                   39/47
Pacemaker

Recurso:
●
  clase: OCF/lsb/legacy-heartbeat/stonith
●
  parámetros
●
  operaciones de monitoreo
●
  scores: usado en toma de decisiones
      - = no usar
      + = usar
      INFINITY = constante

●
    lsb: script de inicio cumpliendo Linux Standard Base

●
    OCF: Open Cluster Framework, extensión de LSB




                                                           40/47
Pacemaker
●
    Ejemplo de configuración para DRBD:

$> crm configure edit
  primitive drbd_disk ocf:linbit:drbd 
      params drbd_resource="mysql" 
      op monitor interval="15s"
  primitive fs_drbd ocf:heartbeat:Filesystem 
      params device="/dev/drbd0" directory="/varios/01" fstype="ext3" 
      ms ms_drbd drbd_disk 
      meta master-max="1" master-node-max="1" clone-max="2" 
      clone-node-max="1" notify="true"
  colocation mnt_on_master inf: fs_drbd ms_drbd:Master
  order mount_after_drbd inf: ms_drbd:promote fs_drbd:start




                                                                          41/47
Soluciones de HA en MySQL


Nativas
  1. Replicación
  2. Storage compartido
  3. Cluster

De terceros
  1. MMM
  2. DRBD
  3. Pacemaker
  4. Galera
  5. Tungsten




                            42/47
MySQL - Galera

Replicación sincrónica
http://codership.com/products/galera_replication




                                                   43/47
MySQL - Galera

Características
• Réplica en tiempo de commit
• Sincrónica y multi-master
• gestiona variables de autoincremento
• Lleva ID de transacciones para garantizar consistencia
• controla datos a replicar al recibirlos y antes de aplicarlos
  (certificación)
• Implementación genérica. Primera versión en InnoDB.
• Parche para MySQL
• Configurable mediante variables en my.cnf
     'wsrep%';
• Publica variables de estado
   o show status like 'wsrep%';
• control de flujo con triggers (exceso de carga)


                                                                  44/47
Soluciones de HA en MySQL


Nativas
  1. Replicación
  2. Storage compartido
  3. Cluster

De terceros
  1. MMM
  2. DRBD
  3. Pacemaker
  4. Galera
  5. Tungsten




                            45/47
MySQL - Tungsten Replicator

Opensource, GPL V2, y versión enterprise
http://www.continuent.org

Funcionalidades
 • replicación en paralelo, multi-master y heterogena (aplica a
   PostgreSQL, MySQL y Oracle).
 • implementa ID de transacciones global
 • múltiples servicios de replicación por proceso (N-N)

Buena documentación:
http://code.google.com/p/tungsten-replicator/wiki/TungstenReplicatorCookbook
http://code.google.com/p/tungsten-replicator/wiki/Troubleshooting




                                                                               46/47
MySQL - Tungsten Replicator

Conector:
 • intermedia entre aplicación y BD
 • implementación nativa MySQL y PostgreSQL
 • incluye módulo router que se comunica con la BD, e
   implementa HA

Replicator: captura cambios y propaga a otros replicators,
usando protocolo propio TLH.

Manager: monitorea estado de componente, mediante módulos
monitores: replicator, database y cluster.




                                                             47/47

Más contenido relacionado

PDF
Alta disponibilidad con MySQL
PDF
Alta disponibilidad con Pacemaker
PPTX
Clúster de alta Disponibilidad
PDF
Clústers Alta Disponibilidad
PDF
Cluster con postgresql
DOCX
PDF
Alta Disponibilidad con PostgreSQL
PDF
Replicacion Postgresql
Alta disponibilidad con MySQL
Alta disponibilidad con Pacemaker
Clúster de alta Disponibilidad
Clústers Alta Disponibilidad
Cluster con postgresql
Alta Disponibilidad con PostgreSQL
Replicacion Postgresql

La actualidad más candente (20)

PDF
Cluster de alta disponibilidad con corosync, pacemaker & apache2
ODP
Alta disponibilidad y balanceo de carga en Linux
PDF
UYOUG 2012 - Oracle RAC 11gR2 - New features
PDF
UYOUG OTN Tour 2011 - RAC sin sorpresas
DOC
Replicacion con postgresql y slony
PDF
Guía de pgpool Paso a Paso
PDF
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
DOCX
Modelos de alta disponibilidad
ODP
PDF
Alta disponibilidad-con-heartbeat
PDF
Introduction to Oracle Clusterware 12c
PDF
Postgre sql y_replicacion_slony_p
PPTX
Recuperación de desastres y soluciones de alta disponibilidad con SQL Server
ODP
Postgresql Como Funciona Una Dbms Por Dentro
PDF
Dba PostgreSQL desde básico a avanzado parte2
PDF
Curso de PostgreSQL
PDF
Cluster en sql server
PPTX
AlwaysOn en SQL Server 2016
PDF
Escenarios de Sistemas Distribuidos con Chamilo LMS
PDF
Avances Clusterware en Oracle 11g Release 2
Cluster de alta disponibilidad con corosync, pacemaker & apache2
Alta disponibilidad y balanceo de carga en Linux
UYOUG 2012 - Oracle RAC 11gR2 - New features
UYOUG OTN Tour 2011 - RAC sin sorpresas
Replicacion con postgresql y slony
Guía de pgpool Paso a Paso
III LLAMPAGEEK 2013: Base de Datos Distribuidas con PostgreSQL.
Modelos de alta disponibilidad
Alta disponibilidad-con-heartbeat
Introduction to Oracle Clusterware 12c
Postgre sql y_replicacion_slony_p
Recuperación de desastres y soluciones de alta disponibilidad con SQL Server
Postgresql Como Funciona Una Dbms Por Dentro
Dba PostgreSQL desde básico a avanzado parte2
Curso de PostgreSQL
Cluster en sql server
AlwaysOn en SQL Server 2016
Escenarios de Sistemas Distribuidos con Chamilo LMS
Avances Clusterware en Oracle 11g Release 2
Publicidad

Destacado (20)

PDF
Propuesta Web CGM
ODP
Tecnologias del pasado
DOCX
What's New in Windows 7 Guide - ITpro.fi - riippumaton IT ...
PDF
Apparel manufacturers
PPTX
Pick to light
DOCX
Tarea de estudio de suelos para el diseño de edificaciones
PDF
Code Review: How and When
DOC
A report-on-american-and-efird-inc-a-e-bangladesh Ltd
PDF
TCFI 3 Installation Manual
DOCX
Modulo solucion creativa de problemas en ambientes de aprendizaje guia 2
PDF
Discurso del Lehendakari - Desayuno empresas vascas en México (Estados de Que...
DOCX
Anupa_IndependentProjectReport_MAD13026
PPTX
Ciclos formativos de grado medio. Isabel Bosch Linares. Orientadora.
PDF
Notarized-w-Receipts-NYS-Venom-Drugs-and-Bombing-Criminal-Report-December-4-2...
PDF
pdf.pdf
PDF
Wedding suggestions 2014,1
PDF
Reunion Mensual 01 14 Ene09
PPTX
La webera
PDF
Instrumentos juridicos contra_el_crimen_organizado_-_pdf
DOCX
Anuncio para fruta plantas1
Propuesta Web CGM
Tecnologias del pasado
What's New in Windows 7 Guide - ITpro.fi - riippumaton IT ...
Apparel manufacturers
Pick to light
Tarea de estudio de suelos para el diseño de edificaciones
Code Review: How and When
A report-on-american-and-efird-inc-a-e-bangladesh Ltd
TCFI 3 Installation Manual
Modulo solucion creativa de problemas en ambientes de aprendizaje guia 2
Discurso del Lehendakari - Desayuno empresas vascas en México (Estados de Que...
Anupa_IndependentProjectReport_MAD13026
Ciclos formativos de grado medio. Isabel Bosch Linares. Orientadora.
Notarized-w-Receipts-NYS-Venom-Drugs-and-Bombing-Criminal-Report-December-4-2...
pdf.pdf
Wedding suggestions 2014,1
Reunion Mensual 01 14 Ene09
La webera
Instrumentos juridicos contra_el_crimen_organizado_-_pdf
Anuncio para fruta plantas1
Publicidad

Similar a Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Marzo 2012 (20)

PDF
Actividad No. 1.14: Replicación de datos en MySQL 5.1
PPTX
Replicación de una Base de Datos en MySQL.pptx
PDF
MySQL de 1995 a 5.5
PDF
Replicación Mysql
PDF
Mysq Replication
PPT
Bases distribuidas en mysql
PDF
Replicacion en mysq
PDF
Replicación maestro
PDF
Manual Técnico Para Hacer Réplica
PDF
Oracle Day 2013 ~ MySQL Replication
DOCX
Manual replicación instantanea
DOCX
trabajo 4
PDF
MySQL Cluster CGE 7.2
DOCX
Arquitectura maestro maestro
PPTX
My sql
PDF
MySQL - High Availability - Load Balacing - Cluster
PPTX
DOC
Manual de conexión de base de datos distribuida
PPTX
PPTX
Servidor mysql
Actividad No. 1.14: Replicación de datos en MySQL 5.1
Replicación de una Base de Datos en MySQL.pptx
MySQL de 1995 a 5.5
Replicación Mysql
Mysq Replication
Bases distribuidas en mysql
Replicacion en mysq
Replicación maestro
Manual Técnico Para Hacer Réplica
Oracle Day 2013 ~ MySQL Replication
Manual replicación instantanea
trabajo 4
MySQL Cluster CGE 7.2
Arquitectura maestro maestro
My sql
MySQL - High Availability - Load Balacing - Cluster
Manual de conexión de base de datos distribuida
Servidor mysql

Más de Nelson Calero (20)

PDF
Database automation guide - Oracle Community Tour LATAM 2023
PDF
Terraform Tips and Tricks - LAOUC 2022
PDF
Oracle on kubernetes 101 - Dec/2021
PDF
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
PDF
Oracle Exadata Cloud Services guide from practical experience - OOW19
PDF
Automate your oracle cloud infrastructure operations v2.0 - OOW19
PDF
Automate the operation of your Oracle Cloud infrastructure v2.0
PDF
SSL certificates in the Oracle Database without surprises
PDF
Practical guide to Oracle Virtual environments
PDF
Automate your Oracle Cloud Infrastructure operation
PDF
Welcome to databases in the Cloud
PDF
Redefining tables online without surprises
PPTX
Protect Sensitive Data: Implementing Fine-Grained Access Control in Oracle
PDF
Evolution of Performance Management: Oracle 12c adaptive optimizations - ukou...
PDF
Oracle Exadata Maintenance tasks 101 - OTN Tour 2015
PDF
My Experience Using Oracle SQL Plan Baselines 11g/12c
PDF
Oracle RAC sin sorpresas - v2014
PDF
AROUG BIDAY 2013 - Automatizar procesos de ETL con PL/SQL
PDF
MariaDB y FOSS en infraestructura de salud y estándares
PDF
Collaborate 2012 - Administering MySQL for Oracle DBAs
Database automation guide - Oracle Community Tour LATAM 2023
Terraform Tips and Tricks - LAOUC 2022
Oracle on kubernetes 101 - Dec/2021
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...
Oracle Exadata Cloud Services guide from practical experience - OOW19
Automate your oracle cloud infrastructure operations v2.0 - OOW19
Automate the operation of your Oracle Cloud infrastructure v2.0
SSL certificates in the Oracle Database without surprises
Practical guide to Oracle Virtual environments
Automate your Oracle Cloud Infrastructure operation
Welcome to databases in the Cloud
Redefining tables online without surprises
Protect Sensitive Data: Implementing Fine-Grained Access Control in Oracle
Evolution of Performance Management: Oracle 12c adaptive optimizations - ukou...
Oracle Exadata Maintenance tasks 101 - OTN Tour 2015
My Experience Using Oracle SQL Plan Baselines 11g/12c
Oracle RAC sin sorpresas - v2014
AROUG BIDAY 2013 - Automatizar procesos de ETL con PL/SQL
MariaDB y FOSS en infraestructura de salud y estándares
Collaborate 2012 - Administering MySQL for Oracle DBAs

Último (20)

PPTX
seguridad digital ,paloma bernabe alvarez.
PPTX
1.Introducción a los sistemas de control.pptx
PDF
004-CC2014-Irrigacion Mbb equinos del mundo
PDF
Sociedad y ética digital en inteligencia artificial
PDF
Control total para proteger tus activos en base al riesgo
PPTX
Redes neuronales artificiales y como entrenarlas
PDF
Conceptos básicos de programación PseInt laura.pdf
PPTX
Gestión de la exposición, cómo anticiparse a los ciberataques
PDF
Reduciendo el Ciber Riesgo en Entornos Financieros
PPTX
en este libro encontrarás la lectura inicial para tus niños
PDF
EL RESPETO mejororado para aprender .pdf
PDF
PLAN DE ASEGURAMIENTO CURSOS CORTOS 2024.pdf
PPTX
Del SIEM Tradicional al SOC del Futuro: La Evolución Inteligente
PPTX
Desarrollo Seguro en un mundo multi-stack con Pruebas de Seguridad de Forma A...
PDF
Introducción a REALITY (agosto de 2024).pdf
PDF
Estrategia de Apoyo Juan José Narvaéz 9-4
PDF
Estrategia de apoyo de tecnología 9-5 Daylin Castaño
PPTX
LEGALIZACIÓN Y VERIFICACIÓN DE UN APARATO TAXÍMETRO
DOCX
Conceptos básicos de programación PseInt laura.docx
PDF
conceptosbsicosdeprogramacinpseintlaura.pdf
seguridad digital ,paloma bernabe alvarez.
1.Introducción a los sistemas de control.pptx
004-CC2014-Irrigacion Mbb equinos del mundo
Sociedad y ética digital en inteligencia artificial
Control total para proteger tus activos en base al riesgo
Redes neuronales artificiales y como entrenarlas
Conceptos básicos de programación PseInt laura.pdf
Gestión de la exposición, cómo anticiparse a los ciberataques
Reduciendo el Ciber Riesgo en Entornos Financieros
en este libro encontrarás la lectura inicial para tus niños
EL RESPETO mejororado para aprender .pdf
PLAN DE ASEGURAMIENTO CURSOS CORTOS 2024.pdf
Del SIEM Tradicional al SOC del Futuro: La Evolución Inteligente
Desarrollo Seguro en un mundo multi-stack con Pruebas de Seguridad de Forma A...
Introducción a REALITY (agosto de 2024).pdf
Estrategia de Apoyo Juan José Narvaéz 9-4
Estrategia de apoyo de tecnología 9-5 Daylin Castaño
LEGALIZACIÓN Y VERIFICACIÓN DE UN APARATO TAXÍMETRO
Conceptos básicos de programación PseInt laura.docx
conceptosbsicosdeprogramacinpseintlaura.pdf

Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Marzo 2012

  • 1. Alternativas de HA en MySQL Ing. Nelson Calero, OCP [email protected] MySQL Meetup Montevideo 8 de Marzo 2012 1 /47
  • 2. Conceptos Disponibilidad • Porcentaje de tiempo en que un sistema/recurso está disponible para ser usado A = uptime/(uptime + downtime) • Medida con escala de nueves: 99% => 3 días, 15:36 horas /año 99,9% => 8:46 horas/año o 43.8 minutos/mes 99,99% => 53 minutos/año o 4.38 minutos/mes 99,999% => 5 minutos/año o 0.44 minutos/mes 2/47
  • 3. Conceptos - Disponibilidad • Capacidad de continuar trabajando a pesar de fallas (hardware, software, externas). Siendo más formales: • Mean Time Between Failures (MTBF) Tiempo medio estimado entre fallas. • Mean Time to Repair/Recover (MTTR) Tiempo medio para reparar las fallas Equivalente: A = MTBF / (MTBF + MTTR) En un sistema, podemos diseñar la arquitectura para que altos tiempos de MTTR en componentes no afecten la disponibilidad total del sistema. 3/47
  • 4. Soluciones de HA en MySQL Hay varias posibilidades nativas: – Replicación – Storage compartido – Cluster Y varias provistas por terceros: – MMM: Multi Master replication Manager for MySQL. – DRBD: replicación sincrónica de bloques usando la red – Pacemaker: Cluster resource manager – Galera: replicación sincrónica – parche – Tungsten: replicación a nivel de aplicación 4/47
  • 5. MySQL - Replicación Basada en transferencia y aplicación de Log Binario del master a slaves, en forma asincrónica o semisincrónica (5.5). • es en un sólo sentido (one-way) • un slave puede tener un solo master • por sentencias, registros cambiados (5.1), o mixto • puede ser parcial, filtrando por base y tablas • controlada por parámetros en my.cnf y comandos para configuración dinámica • cluster implementa replicación sincrónica Dos thread en cada slave: • obtiene registros de binlog y genera relaylog (I/O thread) • lee relaylog y aplica registros (SQL thread) 5/47
  • 6. MySQL - Replicación "MySQL replication by default is asynchronous. The master writes events to its binary log but does not know whether or when a slave has retrieved and processed them. With asynchronous replication, if the master crashes, transactions that it has committed might not have been transmitted to any slave. Consequently, failover from master to slave in this case may result in failover to a server that is missing transactions relative to the master" http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html 6/47
  • 7. MySQL - Replicación - funcionalidades hasta 5.1 (2008): 1. log binario de sentencias, registros, o mixto 2. filtro de bases, tablas y transacciones 3. sentencias no determinísticas 4. disponible para Cluster en 5.5 (2010): 1. semisincrónica 2. fsync mejorado en slave 3. recuperación de corrupción en relay log 4. heartbeat 5. filtro de eventos por servidor en 5.6 (m3): 1. replication_event_checksum 7/47
  • 8. Mysql - Replicación Semisincrónica (5.5): • parche original de google - 2007 • slaves confirman recepción de eventos al master • commit se responde al cliente luego que un slave haya confirmado recepción de evento • implementado con plugins en master y slave o rpl_semi_sync_master_enabled = 0/1; o rpl_semi_sync_master_timeout = N;  1000 = 1 segundo o rpl_semi_sync_slave_enabled = 0/1; • monitoreo o SHOW STATUS LIKE 'Rpl_semi_sync%'; 8/47
  • 9. MySQL - Replicación • ¿Cómo habilitar log binario? log-bin # en my.cnf • Si slaves van a tener habilitada réplica, habilitar que su binlog incluya cambios aplicados del master log-slave-updates # en my.cnf • ¿Cuándo se genera un archivo nuevo? – al reiniciar el servidor mysql – al llegar al tamaño máximo (max_binlog_size) – ejecutando FLUSH LOGS • ¿Cuándo se borran los archivos de logbin? – cuando se llega a EXPIRE_LOGS_DAYS – ejecutando PURGUE MASTER LOGS 9/47
  • 10. MySQL - Replicación SET BINLOG_FORMAT=[row|statement|mixed|default]; statement • almacena las sentencias SQL ejecutadas, DDL y DML. • tamaño independiente del volumen de datos • necesita que todas las tablas de la sentencia estén replicadas. • sentencias no determinísticas no son replicadas row • almacena datos modificados • lockea solo datos necesarios • recomendado cuando hay poco volumen de cambios 10/47
  • 11. MySQL - Replicación binlog filtrado en master: • SET SQL_LOG_BIN=0 • binlog-do-db, binlog-ignore-db filtrada aplicación en slave: • replicate-do/ignore-db/table, replicate-do-table • mysql proxy NOTA: Binlog filtrado implica que no sirve para recuperación ! Configurar para consistencia sync_binlog=1 # escribe binlog a disco después de cada escritura innodb_support_xa=1 # sincroniza binlog con InnoDB datafiles (caídas innodb que genera rollback) 11/47
  • 12. MySQL - Replicación ¿Replicación bi-direccional? • No soportado. o Esto quiere decir: slave no actualiza datos en master, porque el flujo de datos es siempre en un sentido: del master al slave. • Se puede configurar master y slave en un mismo servidor, y parece bi-direccional si ambos tienen configuración simétrica, pero son dos configuraciones distintas. • Problemas a considerar: o autoincrementos o restricciones de unicidad (UKs) o cambios fuera de orden 12/47
  • 13. MySQL - Replicación Sentencias inseguras (unsafe) no son replicadas en formato statement: • no determinísticas • aquellas que pueden retornar valor distinto en slave sysdate(), user, UUID(), etc. • otras sentencias no seguras: update ... limit insert delayed load data infile # desde 5.1.50 • algunas no determinísticas se consideran seguras: ej.: curtime(), last_insert_id() 13/47
  • 14. MySQL - Replicación Soporta cambios externos en la base de datos del slave: • cambiar de engine en slaves • master InnoDB y slave MyISAM Servía hace algunos años cuando InnoDB no tenía buena performance. Actualmente es discutible. Puede servir para algún caso particular. Medirlo en el sistema! ● Blackhole: filtro de datos ● cambiar configuración de slaves buscando mejor performance • cambiar índices • cambiar configuración raid 14/47
  • 15. MySQL - Replicación - 5.1 Replicación en cluster • desde 5.1.6 master/slave. circular desde 5.1.18 • configuración de máxima disponibilidad http://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-replication.html 15/47
  • 16. MySQL - Replicación Contras: • no hay automatización oficial de failover, se requiere intervención manual o programación. • escritura en slaves está limitada a un thread. Multi-thread en 5.6 (está en m6). • es asincrónica y no transaccional, por lo que puede perder datos. Mejorado en 5.5.2 (semisync) y 5.6 (crash recovery) • slave necesita monitoreo: caídas, demoras, consistencia 16/47
  • 17. Soluciones de HA en MySQL Nativas 1. Replicación 2. Storage compartido 3. Cluster De terceros 1. MMM 2. DRBD 3. Pacemaker 4. Galera 5. Tungsten 17/47
  • 18. MySQL - Storage compartido Activo/activo • no soportado en InnoDB • MyISAM: o sobre cluster file system (OCFS2/GFS) o parámetros necesarios:  external-locking  query-cache=0  delay_key_write=off Activo/pasivo • Necesita software de terceros para heartbeat • Failover: o InnoDB aplica recovery o MyISAM necesita que se valide que no hay tablas corruptas: --myisam_recover como opción de arranque o myisamchk antes de levantarlo. 18/47
  • 19. Soluciones de HA en MySQL Nativas 1. Replicación 2. Storage compartido 3. Cluster De terceros 1. MMM 2. DRBD 3. Pacemaker 4. Galera 5. Tungsten 19/47
  • 20. MySQL - Cluster Arquitectura shared nothing http://dev.mysql.com/doc/mysql-cluster-excerpt/5.1/en/mysql-cluster-overview.html 20/47
  • 21. MySQL - Cluster A partir de mysql 5.5, cluster es una distribución independiente. Actualmente está en producción 7.2 Nodo de datos - NDBD - Almacena datos e índices ● Desde 7.2 soporta varios procesos (nodos) en mismo host Nodo SQL - mysqld (versión 5.1) • Maneja comunicación con cliente: recibe sentencias SQL y se comunica con nodos de datos para ejecutarla Nodo de Gestión - ndb_mgmd • monitoreo, configuración y control del cluster Datos se almacenan particionados y replicados entre NDBD • fragmento activo (primario) y de failover (secundarios) • parámetro NoOfReplicas es 2 por defecto o valores mayores soportan caídas de más nodos 21/47
  • 22. MySQL - Cluster Caídas soportadas nodo sql: • clientes se desconectan y transacciones no commiteadas se pierden nodo datos: • máximo NoOfReplicas-1 • en caso de split-brain, vive el grupo con mayoría de nodos, y desempata nodo árbitro. nodo gestión: • no impacta el funcionamiento del cluster • no se pueden agregar nuevos nodos hasta que vuelva 22/47
  • 23. MySQL - Cluster Varias operaciones online: • backup • software upgrade • agregar nodos de datos • system restart en modo "rolling" o gestión, datos (de a uno, todos), sql (idem) Balanceo de carga: • Java Connector/J 5.0.6: jdbc:mysql:loadbalance:// Base ndbinfo con datos en vivo: • nodos activos • memoria usada (tabla memoryusage) • varios contadores de actividad (tabla counters) 23/47
  • 24. MySQL - Cluster Recomendado para • transacciones cortas y chicas • sql con joins simples y búsquedas por PK • alta disponibilidad Casos de uso • sistemas de tiempo real • soporte a telefonía Configuración - en práctico • Usa un archivo de configuración global: config.ini • local a cada nodo: my.cnf o ubicación de nodos de gestión • logs por nodo (ndb_#_out.log) y global (ndb_#_cluster.log) 24/47
  • 25. MySQL - Cluster Limitaciones • mínimo tres equipos, máximo 255 (48 nodos de datos) • lento en joins de mucho volumen y agregaciones • no soporta índices fulltext ni foreing keys • datos se almacenan en memoria (solo columnas indexadas desde 5.5, antes todo), lo que limita el tamaño máximo de la base a la capacidad de los servidores de datos. • estimación de memoria RAM necesaria en cada nodo: (SizeofDatabase x NumberOfReplicas x 1.1 ) / NumberOfDataNodes ndb_size.pl estima memoria necesaria en cluster a partir de una instancia mysql común. http://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-programs-ndb-size-pl.html 25/47
  • 26. MySQL - Cluster MCM: MySQL Cluster Manager • versión comercial: MySQL Cluster Carrier Grade Edition • mcmd --bootstrap # instala cluster de 3 nodos configurado • Redhat/OEL 5, SuSE EL10/11 26/47
  • 27. Soluciones de HA en MySQL Nativas 1. Replicación 2. Storage compartido 3. Cluster De terceros 1. MMM 2. DRBD 3. Pacemaker 4. Galera 5. Tungsten 27/47
  • 28. Mysql - Multi Master Manager http://mysql-mmm.org/ ● Scripts para monitoreo y failover de replicaciones master/master con un solo nodo soportando escrituras Scripts: ● mmm_mond, mmm_agentd, mmm_control Bug reportado 27/4/2011 • https://bugs.launchpad.net/mysql-mmm/+bug/771843 "moving slaves to the new master can cause inconsistency accross databases" • pasado a prioridad alta el 25/5, a resolver en v2.2 28/47
  • 29. Soluciones de HA en MySQL Nativas 1. Replicación 2. Storage compartido 3. Cluster De terceros 1. MMM 2. DRBD 3. Pacemaker 4. Galera 5. Tungsten 29/47
  • 30. MySQL - DRBD Distributed Replicated Block Device - http://www.drbd.org • módulo en kernel linux que implementa replicación sincrónica de bloques usando la red (raid-1) 30/47
  • 31. MySQL - DRBD Necesita software de gestión de cluster para automatizar: • heartbeat / pacemaker Ventajas • alternativa barata a una caja de storage (SAN) • datos quedan locales al servidor activo (performance) • es más seguro que replicación nativa (consistencia) • actualizaciones de hardware/software usando failover contras • soportado solo en linux • agrega complejidad • corrupción se propaga • no permite replicar parte de la base 31/47
  • 32. MySQL - DRBD Activo/activo • Sobre GFS/OCFS2 • Sólo con MyISAM Con LVM • se puede usar debajo y sobre DRBD • snapshots sólo si LVM va debajo • snapshots en slave permiten montar el filesystem para maniobras read-only Soporta mirroring sincrónico y asincrónico • necesario para WAN, no recomendado para MySQL 32/47
  • 33. Mysql - DRBD Parámetros recomendados en MySQL: • log-bin=nombre por defecto es hostname y puede cambiar • innodb_log_file_size más chico permite recovery más rápido • myisam_recover=force,backup para chequeo automático de corrupción en failover • innodb_support_xa=1 sincroniza binlog con innodb datafiles (caídas innodb que genera rollback) • sync_binlog=1 escribe binlog a disco después de cada escritura 33/47
  • 34. MySQL - DRBD Posibles fallas master 1. caída del servidor 2. tranca sin que falle, no liberando recursos. Requiere fencing del agente de cluster (heartbeat) 3. corte del enlace con secundario secundario 1. caída del servidor 2. corrupción de datos por fallas en storage 3. corte del enlace con master 34/47
  • 35. Soluciones de HA en MySQL Nativas 1. Replicación 2. Storage compartido 3. Cluster De terceros 1. MMM 2. DRBD 3. Pacemaker 4. Galera 5. Tungsten 35/47
  • 36. Pacemaker Cluster resource manager - http://www.clusterlabs.org/ gpl (v2), no hay versión enterprise. ● Apoyado por RedHat / Novell / LinBit. Funcionalidades • soporta infraestructura de OpenAIS y Heartbeat • implementa STONITH para asegurar integridad de datos • configuración redundante en CIB (cluster information base), archivo XML • usa cualquier recurso que pueda ser gestionado con scripts • soporta varias configuraciones redundantes: activo/pasivo, activo/activo, N+1, etc. ➢ Parte de Heartbeat hasta versión 2.1.3. Luego se independizó ➢ 1.0 más testeado sobre Heartbeat que con Corosync 36/47
  • 39. Pacemaker con MySQL ● gran comunidad de usuarios ● percona-prm: Mysql Replication Manager (alpha) Pasos para comenzar a utilizarlo: ● Configurar Heartbeat /etc/ha.d/ha.cf ● Configurar recursos Muchos parámetros, estudiar bien opciones Stonith para producción ● Probar escenarios ! 39/47
  • 40. Pacemaker Recurso: ● clase: OCF/lsb/legacy-heartbeat/stonith ● parámetros ● operaciones de monitoreo ● scores: usado en toma de decisiones - = no usar + = usar INFINITY = constante ● lsb: script de inicio cumpliendo Linux Standard Base ● OCF: Open Cluster Framework, extensión de LSB 40/47
  • 41. Pacemaker ● Ejemplo de configuración para DRBD: $> crm configure edit primitive drbd_disk ocf:linbit:drbd params drbd_resource="mysql" op monitor interval="15s" primitive fs_drbd ocf:heartbeat:Filesystem params device="/dev/drbd0" directory="/varios/01" fstype="ext3" ms ms_drbd drbd_disk meta master-max="1" master-node-max="1" clone-max="2" clone-node-max="1" notify="true" colocation mnt_on_master inf: fs_drbd ms_drbd:Master order mount_after_drbd inf: ms_drbd:promote fs_drbd:start 41/47
  • 42. Soluciones de HA en MySQL Nativas 1. Replicación 2. Storage compartido 3. Cluster De terceros 1. MMM 2. DRBD 3. Pacemaker 4. Galera 5. Tungsten 42/47
  • 43. MySQL - Galera Replicación sincrónica http://codership.com/products/galera_replication 43/47
  • 44. MySQL - Galera Características • Réplica en tiempo de commit • Sincrónica y multi-master • gestiona variables de autoincremento • Lleva ID de transacciones para garantizar consistencia • controla datos a replicar al recibirlos y antes de aplicarlos (certificación) • Implementación genérica. Primera versión en InnoDB. • Parche para MySQL • Configurable mediante variables en my.cnf 'wsrep%'; • Publica variables de estado o show status like 'wsrep%'; • control de flujo con triggers (exceso de carga) 44/47
  • 45. Soluciones de HA en MySQL Nativas 1. Replicación 2. Storage compartido 3. Cluster De terceros 1. MMM 2. DRBD 3. Pacemaker 4. Galera 5. Tungsten 45/47
  • 46. MySQL - Tungsten Replicator Opensource, GPL V2, y versión enterprise http://www.continuent.org Funcionalidades • replicación en paralelo, multi-master y heterogena (aplica a PostgreSQL, MySQL y Oracle). • implementa ID de transacciones global • múltiples servicios de replicación por proceso (N-N) Buena documentación: http://code.google.com/p/tungsten-replicator/wiki/TungstenReplicatorCookbook http://code.google.com/p/tungsten-replicator/wiki/Troubleshooting 46/47
  • 47. MySQL - Tungsten Replicator Conector: • intermedia entre aplicación y BD • implementación nativa MySQL y PostgreSQL • incluye módulo router que se comunica con la BD, e implementa HA Replicator: captura cambios y propaga a otros replicators, usando protocolo propio TLH. Manager: monitorea estado de componente, mediante módulos monitores: replicator, database y cluster. 47/47