Este documento presenta varias alternativas de alta disponibilidad en MySQL, incluyendo replicación, almacenamiento compartido, y cluster. Explica conceptos como disponibilidad y como medirla. Describe las características y limitaciones de cada solución nativa de MySQL así como soluciones de terceros.
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
Todo lo que se necesita saber para usar Pacemaker como solución de alta disponibilidad en bases de datos.
Presentación dada en la conferencia MySQL NoSQL & Cloud Latin America en Buenos Aires el 15/10/2013.
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
Todo lo que se necesita saber para usar Pacemaker como solución de alta disponibilidad en bases de datos.
Presentación dada en la conferencia MySQL NoSQL & Cloud Latin America en Buenos Aires el 15/10/2013.
Presentación de la charla sobre Alta Disponibilidad y Balanceo de Carga en Linux presentada en los cursos del GUL de la Universidad Carlos III de Madrid.
UYOUG OTN Tour 2011 - RAC sin sorpresasNelson Calero
Presentación dada durante el OTN Tour 2011 en Montevideo.
Resumen:
Introducción a la versión clusterizada de la base de datos Oracle. Se presentan conceptos y consideraciones para su adpoción.
Recuperación de desastres y soluciones de alta disponibilidad con SQL ServerSpanishPASSVC
Esta presentación presenta las soluciones de recuperacion de desastres (Disaster Recovery) y alta disponibilidad (High Availability) con SQL Server y ofrece escenarios creativos por usar las soluciones para reportages (Reporting), BI y almacen de datos (Datawarehouse).
Esta presentación se ofreció como parte de la materia de Sistemas Distribuidos de la Maestría en Ingeniería del Software de CIMAT - Unidad Zacatecas.
El Ing. Yannick Warnier, Presidente de la Asociación Chamilo, presentó una panorámica de escenarios de implementación de sistemas distribuidos, los cuales, pueden ser aplicados a Chamilo LMS.
Presentación de la charla sobre Alta Disponibilidad y Balanceo de Carga en Linux presentada en los cursos del GUL de la Universidad Carlos III de Madrid.
UYOUG OTN Tour 2011 - RAC sin sorpresasNelson Calero
Presentación dada durante el OTN Tour 2011 en Montevideo.
Resumen:
Introducción a la versión clusterizada de la base de datos Oracle. Se presentan conceptos y consideraciones para su adpoción.
Recuperación de desastres y soluciones de alta disponibilidad con SQL ServerSpanishPASSVC
Esta presentación presenta las soluciones de recuperacion de desastres (Disaster Recovery) y alta disponibilidad (High Availability) con SQL Server y ofrece escenarios creativos por usar las soluciones para reportages (Reporting), BI y almacen de datos (Datawarehouse).
Esta presentación se ofreció como parte de la materia de Sistemas Distribuidos de la Maestría en Ingeniería del Software de CIMAT - Unidad Zacatecas.
El Ing. Yannick Warnier, Presidente de la Asociación Chamilo, presentó una panorámica de escenarios de implementación de sistemas distribuidos, los cuales, pueden ser aplicados a Chamilo LMS.
Stone Dead Fashion is a ready-made garments/sportswear/jersey manufacturer. Our main products are all kinds of garments item like trousers, shorts, shirts, t-shirt, polo shirt, sweet shirts, Sportswear, Jersey, Cap, Hat and sweaters with all kinds of Fabrications. Our factory is located in Ashuliya, the biggest international small commodity city in Dhaka, Bangladesh. We've been in Apparel industry more than 12 years and we always offer products with good quality and competitive price. http://www.sdfltd.com
Tarea de estudio de suelos para el diseño de edificacionesRomm Mendeztriana
ejercicios prácticos para analizar la dinámica en suelos con fin de tener mayor información y conocer procedimientos en la mecánica de suelos para diseñar diferentes tipos de fundaciones
You want to improve your software skills. That’s a given. You may be a mentor or a manager who needs to improve the knowledge sharing among your software developers across different projects. Code Reviews can do just that while improving code quality in your projects. Code Review not only builds developer team spirit but also offers new ways to improve a software solution. You’ll walk away from this session with in-depth understanding of Code Review to strengthen your team.
MySQL de 1995 a 5.5
• Por que hace sentido usar Software Libre
• MySQL en mundo Oracle
• Instancias mysql, schemas, tablas...
• Múlti instancias mysqld
• Replicación semi-sync (cómo Facebook usa MySQL)
• Demo de Monitor: Advisors & Query Analyzer
• Preguntas y Respuestas
Pedro Andrade – Latin America & Caribbean Sales
Manuel Contreras – Latin America & Caribbean Consulting Engineer
MySQL Global Business Unit
Charla impartida el 10 de Noviembre de 2011 en el libre software world congress.
Algunos trucos para mejorar el rendimiento de nuestro servidor MySQL
Vídeo de la charla: http://www.youtube.com/watch?v=_-fMNjebEX0
Sesión dinamizada junto a Pau Ferrer durante la HackFest de MoodleMoot Spain 2015 celebrada en Palma de Mallorca.
Adreça web de la presentació d'origen a Google docs: http://goo.gl/yx9ZH7. La penjada a Slideshare és una exportació en format PDF.
Database automation guide - Oracle Community Tour LATAM 2023Nelson Calero
The tasks of the DBA role are in permanent evolution. There are new and changed functionalities in database versions, cloud services, integrations, and new tools. Automation has been always a big portion of the DBA work, and is constantly challenging our processes. This presentation explore these automation changes using examples from experience of supporting hundreds of Oracle installations of varying size and complexity, including the process of choosing the right tool for the task, implementation, and subsequent maintenance, mainly using Ansible.
Terraform is a popular tool to handle your infrastructure as code. It is really simple to use, and there are plenty of examples and tutorials. What about when you need to use it for several months daily? In this session, I share my learnings after using it for almost a year to maintain databases in the cloud (OCI and AWS), highlighting the concepts and issues you need to get familiar with to speed up the learning curve, become more productive, and avoid common mistakes.
With the recent apparition of Kubernetes operators for Oracle, you have now the possibility to easily deploy and handle an Oracle database on a Kubernetes cluster.
Why you could want this? How do you do it? Which features those operators provide? Is it portable between the native Kubernetes cloud services offered by OCI, GCP, and AWS, and on-premises deployments?.
In this session, we will explore the basics of Kubernetes, the implications of running an Oracle database on it, and test the Google ElCarro and Oracle operators for Kubernetes in GCP, AWS, and OCI.
Automate Oracle database patches and upgrades using Fleet Provisioning and Pa...Nelson Calero
Each new version of the Oracle database includes improvements in the upgrade and patching utilities, forcing us to update our procedures to incorporate these changes.
The Fleet Provisioning & Patching (FPP, formerly RHP) utility, together with the change in its licensing announced at OOW 2019 that makes it free in RAC, now makes it possible to centrally manage the software life cycle.
This presentation shows examples of how to use FPP and different configuration options.
Presentation delivered at Oracle Open World 2019 (San Francisco, California)
Abstract: This session walks through everything you need to know to move your databases to Oracle Cloud, based on the speakers’ own experience in doing it, focused on Oracle Exadata cloud services. The speakers review the configuration required, common problems they had to resolve in the process of having several TB databases running in Oracle Cloud, and operational tasks after they were running there.
Automate your oracle cloud infrastructure operations v2.0 - OOW19Nelson Calero
Updated version for Oracle Open World 2019 of the same presentation done at Collaborate 2019
Abstract:
Oracle Cloud provides APIs and command-line utilities for handling your infrastructure in the cloud without using the web console. In addition, there are orchestration tools such as Terraform for building, changing, and versioning your infrastructure, enabling automation and configuration management. This session introduces Oracle Cloud Infrastructure services and APIs through examples from a DBA perspective: looking to minimize manual interventions when creating instances and containers, deploying a cluster with the Terraform Kubernetes installer, and backing up your databases. This presentation is an updated version of last year’s, including Oracle Cloud Infrastructure new-generation services and tools.
Automate the operation of your Oracle Cloud infrastructure v2.0Nelson Calero
Presentation delivered in Collaborate 19 conference in April 2019 in San Antonio
Abstract: The Oracle Cloud provides APIs and command line utilities to handle your infrastructure in the cloud without using the web console. In addition, there are orchestration tools such as Terraform to build, change and version your infrastructure, allowing automation and configuration management.
This session introduces to OCI services and APIs through examples from a DBA perspective, looking to minimize manual interventions when creating instances and containers, deploying a cluster using the project terraform-kubernetes-installer, and backing up your databases.
This is an updated version of a similar session a did last year, now focused on OCI new generation services and tools.
SSL certificates in the Oracle Database without surprisesNelson Calero
Presentation delivered on UKOUG conference in December 2019.
Abstract: Nowadays database installations are required to use secure connections to communicate with clients, from connecting to the database listener to interact with external services (for example to send emails from the database).
Also since a couple of years ago, it has been required to use stronger protocols like TLS 1.2 (SHA2 algorithm), which requires extra configuration in older database releases.
This presentation shows how SSL certificates work from a DBA perspective, which tools are available and examples of configuring and troubleshooting their usage from the Oracle database. It also explores the implications and how to implement TLS 1.2 and common errors found in real life usage.
Practical guide to Oracle Virtual environmentsNelson Calero
Virtualization and containers are the technologies that enable isolation of environments running on the same hardware, and can be used in some of the cloud offerings as well as in your local hardware.
This session will introduce you to Vagrant, Ansible, and Docker with examples, showing step by step guides to automatically create and provision virtual Oracle environments using different solutions (no need to code, just to configure existing code).
Automate your Oracle Cloud Infrastructure operationNelson Calero
The Oracle Cloud provides APIs and CLI utilities to handle your infrastructure in the cloud without using the web console. In addition, there are orchestration tools such as Terraform to build, change and version your infrastructure.
This presentation introduces to the topic through examples, minimizing manual interventions: creating instances and containers, using the REST api and opc tool, deploying a cluster using the project terraform-kubernetes-installer, and backing up your databases.
This is an overview of the cloud offering from key players, focused on Oracle Cloud (also Google and AWS), including costs, changes in architecture and operations, and the new role of the DBA with the outline of the migration procedure, backups and DR in this new world.
Redefining tables online without surprisesNelson Calero
The Oracle database includes several features to allow moving data online, ie: without preventing users to access it when it is being moved (DML operation are not blocked).
One of those features is to change a table definition, using the package DBMS_REDEFINITION.
While moving a table is an online operation since version 12.2, redefinition is still needed for some changes. Also is needed in older versions.
In this session best practices will be shown based on experience of using it with big tablespaces, with examples covering all the steps needed to use DBMS_REDEFINITION under different scenarios, including the problems you can find, how to resolve them and how this process is different in version 11.2 and 12.
Protect Sensitive Data: Implementing Fine-Grained Access Control in OracleNelson Calero
Using Oracle Enterprise Edition we can restrict the access to data from different users implementing security at row-level.
This presentation will walk through the implementation of a virtual private database evaluating different aspects of its usage, reviewing the changes introduced on different Oracle versions from its original 8i implementation to 12c.
First delivered on Kscope16 conference in Chicago, including scripts to illustrate each of the alternatives.
On version 12c Oracle introduced new features to allow Adaptive optimizations: Adaptive Plans and Adaptive Statistics. After a quick presentation of concepts, this session will explore the interaction of these features with other performance management techniques using examples, like SPM and SQL profiles. Attendees will get an updated picture of tools available to troubleshoot performance issues, and how to get the most of these new features.
My Experience Using Oracle SQL Plan Baselines 11g/12cNelson Calero
This presentation shows how to use the Oracle database functionality SQL Plan Baselines, with examples from real life usage on production (mostly 11gR2) and how to troubleshoot it.
SQL Plan Baselines is a feature introduced on 11g to manage SQL execution plans to prevent performance regressions. The concepts will be presented, along with examples, and some edge cases.
Presentación dada en el primer Webcast en español del Oracle RACSIG - http://oracleracsig.org/
Esta es una versión actualizada con funcionalidades de las últimas versiones (11g/12c) a la presentación que dí durante el OTN Tour 2011 en Montevideo, Oracle RAC sin sorpresas, donde se repasa lo que implica usar Oracle RAC, los desafíos y recomendaciones de cómo sacarle mejor provecho.
Este enfoque introductorio intenta facilitar el camino a los técnicos que están evaluando o comenzado a utilizar Oracle RAC, tarea que tiene una larga curva de aprendizaje.
AROUG BIDAY 2013 - Automatizar procesos de ETL con PL/SQLNelson Calero
Presentación dada en BI DAY 2013 organizado por el grupo de usuarios Oracle de Argentina (AROUG) el 12 de junio de 2013.
Difusión del evento: http://aroug.org/2013/05/bi-day-reserva-tu-lugar/
MariaDB y FOSS en infraestructura de salud y estándaresNelson Calero
Introducción a estándares en sistemas de salud, ejemplo de una institución y planes con tecnología FOSS.
Presentación dada en la primer "MySQL / NoSQL & Cloud Latin American Conference" en Buenos Aires, Argentina el 27 de junio de 2012.
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informáticavazquezgarciajesusma
En este proyecto de investigación nos adentraremos en el fascinante mundo de la intersección entre el arte y los medios de comunicación en el campo de la informática.
La rápida evolución de la tecnología ha llevado a una fusión cada vez más estrecha entre el arte y los medios digitales, generando nuevas formas de expresión y comunicación.
Continuando con el desarrollo de nuestro proyecto haremos uso del método inductivo porque organizamos nuestra investigación a la particular a lo general. El diseño metodológico del trabajo es no experimental y transversal ya que no existe manipulación deliberada de las variables ni de la situación, si no que se observa los fundamental y como se dan en su contestó natural para después analizarlos.
El diseño es transversal porque los datos se recolectan en un solo momento y su propósito es describir variables y analizar su interrelación, solo se desea saber la incidencia y el valor de uno o más variables, el diseño será descriptivo porque se requiere establecer relación entre dos o más de estás.
Mediante una encuesta recopilamos la información de este proyecto los alumnos tengan conocimiento de la evolución del arte y los medios de comunicación en la información y su importancia para la institución.
3Redu: Responsabilidad, Resiliencia y Respetocdraco
¡Hola! Somos 3Redu, conformados por Juan Camilo y Cristian. Entendemos las dificultades que enfrentan muchos estudiantes al tratar de comprender conceptos matemáticos. Nuestro objetivo es brindar una solución inclusiva y accesible para todos.
Inteligencia Artificial y Ciberseguridad.pdfEmilio Casbas
Recopilación de los puntos más interesantes de diversas presentaciones, desde los visionarios conceptos de Alan Turing, pasando por la paradoja de Hans Moravec y la descripcion de Singularidad de Max Tegmark, hasta los innovadores avances de ChatGPT, y de cómo la IA está transformando la seguridad digital y protegiendo nuestras vidas.
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta in...espinozaernesto427
Las lámparas de alta intensidad de descarga o lámparas de descarga de alta intensidad son un tipo de lámpara eléctrica de descarga de gas que produce luz por medio de un arco eléctrico entre electrodos de tungsteno alojados dentro de un tubo de alúmina o cuarzo moldeado translúcido o transparente.
lámparas más eficientes del mercado, debido a su menor consumo y por la cantidad de luz que emiten. Adquieren una vida útil de hasta 50.000 horas y no generan calor alguna. Si quieres cambiar la iluminación de tu hogar para hacerla mucho más eficiente, ¡esta es tu mejor opción!
Las nuevas lámparas de descarga de alta intensidad producen más luz visible por unidad de energía eléctrica consumida que las lámparas fluorescentes e incandescentes, ya que una mayor proporción de su radiación es luz visible, en contraste con la infrarroja. Sin embargo, la salida de lúmenes de la iluminación HID puede deteriorarse hasta en un 70% durante 10,000 horas de funcionamiento.
Muchos vehículos modernos usan bombillas HID para los principales sistemas de iluminación, aunque algunas aplicaciones ahora están pasando de bombillas HID a tecnología LED y láser.1 Modelos de lámparas van desde las típicas lámparas de 35 a 100 W de los autos, a las de más de 15 kW que se utilizan en los proyectores de cines IMAX.
Esta tecnología HID no es nueva y fue demostrada por primera vez por Francis Hauksbee en 1705. Lámpara de Nernst.
Lámpara incandescente.
Lámpara de descarga. Lámpara fluorescente. Lámpara fluorescente compacta. Lámpara de haluro metálico. Lámpara de vapor de sodio. Lámpara de vapor de mercurio. Lámpara de neón. Lámpara de deuterio. Lámpara xenón.
Lámpara LED.
Lámpara de plasma.
Flash (fotografía) Las lámparas de descarga de alta intensidad (HID) son un tipo de lámparas de descarga de gas muy utilizadas en la industria de la iluminación. Estas lámparas producen luz creando un arco eléctrico entre dos electrodos a través de un gas ionizado. Las lámparas HID son conocidas por su gran eficacia a la hora de convertir la electricidad en luz y por su larga vida útil.
A diferencia de las luces fluorescentes, que necesitan un recubrimiento de fósforo para emitir luz visible, las lámparas HID no necesitan ningún recubrimiento en el interior de sus tubos. El propio arco eléctrico emite luz visible. Sin embargo, algunas lámparas de halogenuros metálicos y muchas lámparas de vapor de mercurio tienen un recubrimiento de fósforo en el interior de la bombilla para mejorar el espectro luminoso y reproducción cromática. Las lámparas HID están disponibles en varias potencias, que van desde los 25 vatios de las lámparas de halogenuros metálicos autobalastradas y los 35 vatios de las lámparas de vapor de sodio de alta intensidad hasta los 1.000 vatios de las lámparas de vapor de mercurio y vapor de sodio de alta intensidad, e incluso hasta los 1.500 vatios de las lámparas de halogenuros metálicos.
Las lámparas HID requieren un equipo de control especial llamado balasto para funcionar
Alternativas de alta disponiblidad en MySQL - MySQL Meetup - Montevideo - Marzo 2012
1. Alternativas de HA en MySQL
Ing. Nelson Calero, OCP
nelson.calero@gmail.com
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
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