Este documento describe la replicación en MySQL. La replicación permite replicar datos entre servidores MySQL para propósitos como balanceo de carga, alta disponibilidad y seguridad. Existen diferentes arquitecturas de replicación como maestro-esclavo, maestro-maestro y circular. La replicación maestro-esclavo es la más común, donde los datos se escriben en el maestro y se leen en los esclavos.
Una metodología de Desarrollo es como una receta de cocina, hay se visualizan los requerimientos, las herramientas y técnicas a utilizar para crear el platillo (software). De su buen eso depende el éxito del proyecto.
Objetivo: Conocer el dominio del problema para poder comunicarse con clientes y usuarios para entender sus necesidades, tanto explícitas como implícitas y sus expectativas sobre el sistema a desarrollar.
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Micael Gallego
Esta presentación corresponde al "Tema 2: Tecnologías de desarrollo web" de la asignatura "Desarrollo de Aplicaciones Web" de 3º del Grado en Ingeniería del Software de la ETSII en la Universidad Rey Juan Carlos.
Caracterizar la fundamentación teórica del software, mediante el análisis de su evolución y del proceso de ingeniería, que permitan identificar el ámbito de la ingeniería de software.
Una metodología de Desarrollo es como una receta de cocina, hay se visualizan los requerimientos, las herramientas y técnicas a utilizar para crear el platillo (software). De su buen eso depende el éxito del proyecto.
Objetivo: Conocer el dominio del problema para poder comunicarse con clientes y usuarios para entender sus necesidades, tanto explícitas como implícitas y sus expectativas sobre el sistema a desarrollar.
Tema2: Tecnologías de desarrollo web (Desarrollo Aplicaciones Web)Micael Gallego
Esta presentación corresponde al "Tema 2: Tecnologías de desarrollo web" de la asignatura "Desarrollo de Aplicaciones Web" de 3º del Grado en Ingeniería del Software de la ETSII en la Universidad Rey Juan Carlos.
Caracterizar la fundamentación teórica del software, mediante el análisis de su evolución y del proceso de ingeniería, que permitan identificar el ámbito de la ingeniería de software.
Objetivo, importancia y limitaciones del proceso de prueba. Estrategias.
Pruebas de integración: ascendentes y descendentes.
Pruebas de sistema: configuración, recuperación, entre otras.
Pruebas de regresión.
Pruebas funcionales.
Pruebas de capacidad y rendimiento.
Pruebas de uso de recursos.
Pruebas de seguridad.
Pruebas manuales y automáticas. Herramientas software para la realización de pruebas.
Pruebas de usuario.
Pruebas de aceptación.
Versiones alfa y beta.
Se tratan temas sobre los pasos necesarios para planificar y efectuar las pruebas vinculadas a la implantación y aceptación del software. Muchas personas consideran que el software se termina cuando se escribe la última linea de código, pero el lograr que funcione en los equipos del cliente requiere todo un proceso. Esta presentación analiza estas situaciones.
Objetivo, importancia y limitaciones del proceso de prueba. Estrategias.
Pruebas de integración: ascendentes y descendentes.
Pruebas de sistema: configuración, recuperación, entre otras.
Pruebas de regresión.
Pruebas funcionales.
Pruebas de capacidad y rendimiento.
Pruebas de uso de recursos.
Pruebas de seguridad.
Pruebas manuales y automáticas. Herramientas software para la realización de pruebas.
Pruebas de usuario.
Pruebas de aceptación.
Versiones alfa y beta.
Se tratan temas sobre los pasos necesarios para planificar y efectuar las pruebas vinculadas a la implantación y aceptación del software. Muchas personas consideran que el software se termina cuando se escribe la última linea de código, pero el lograr que funcione en los equipos del cliente requiere todo un proceso. Esta presentación analiza estas situaciones.
2017-01-26 Internet Arriskuak: Andramendi Ikastola, Gurasoen saioaUrko Zurutuza
Aurkezpen hau Beasaingo Andramendi Ikastolako haurren gurasoei zuzendutakoa da, haiekin Internet-en dauden arriskuak ikusi eta ulertu ahal izateko: pribatutasuna, ziberbullying-a, grooming-a, sexting-a
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!Paradigma Digital
En el pasado Meetup, presentamos Couchbase de manera general, pero ha llegado el momento de ir ahondando en los detalles del producto para conocer todas sus capacidades. Esto nos permitirá estar en mejor disposición para adoptarlo en nuestros proyectos.
En esta ocasión, se hablará de la capa de operaciones y despliegue de Couchbase aunque no con un enfoque tradicional en máquinas físicas, sino siguiendo las buenas prácticas del mercado. Explicaremos y haremos el despliegue en Google Cloud con escalabilidad horizontal elástica y automática.
Para llevar a cabo esto haremos uso, entre otras, de las siguientes tecnologías: Google Cloud, Kubernetes, Python y, por supuesto, Couchbase.
Pondremos a prueba nuestra infraestructura con una pequeña aplicación, si queréis ver los resultados, no os lo podéis perder!
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
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
PostgreSQL vs MySQL: PostgreSQL como alternativa.Arturo Espinosa
Una plática rápida acerca de las diferencias entre PostgreSQL y MySQL para generar curiosidad en el neófito hacia alternativas que pueden favorecer su crecimiento en su carrera.
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
Es un diagrama para La asistencia técnica o apoyo técnico es brindada por las compañías para que sus clientes puedan hacer uso de sus productos o servicios de la manera en que fueron puestos a la venta.
(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.
Actualmente, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital, siendo este un componente electrónico, por tanto se ha desarrollado y se ofrece un amplio rango de soluciones al problema del almacenamiento de datos.
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.
2. Irontec – MySQL Replication
Introducción
● Un solo servidor de MySQL se convierte en el SPOF de
nuestra infraestructura.
● Si no hay datos, no hay servicio.
●
aptget install mysql es solo el primer paso, luego
queda mucho por hacer.
● En la era 2.0 todo está en bases de datos, su
optimización es imprescindible.
● MySQL nos ofrece muchas posibilidades.
2
3. Irontec – MySQL Replication
Introducción
● ¿Cómo evitamos un SPOF? Añadiendo más máquinas.
● Pero las máquinas deben ser iguales en cuanto a la
parte lógica, los datos deben estar replicados y
mantenerse sincronizados.
● La replicación nos ayuda a solventar en parte este
problema.
3
4. Irontec – MySQL Replication
Introducción
● ¿Que nos ofrece la replicación?
– Seguridad. Los datos están replicados en distintas
máquinas físicas, por lo que tenemos un live backup.
– Balanceo de carga. Podemos distribuir la carga entre
distintas máquinas.
– Alta disponibilidad. Al tener datos en varias máquinas,
si una se cae otra puede tomar el control.
– Quebraderos de cabeza. La informática es la ciencia
menos exacta que existe.
4
5. Irontec – MySQL Replication
Seguridad
● Una copia de la base de datos se puede hacer de varias
formas:
– Mysqldump
– Copiando las tablas del disco en caliente (parando antes la
BBDD).
– Replicación
– etc...
● La principal diferencia es que la replicación nos ofrece
un backup siempre actualizado. Las demás será de la
fecha de su programación.
● Utilizad siempre dos métodos como mínimo.
Nunca se debe dejar la replicación como único sistema
de backup.
5
6. Irontec – MySQL Replication
Arquitecturas de replicación
● Tenemos varias formas de montar una arquitectura de
replicación.
– Maestro-Maestro
– Maestro-Esclavo
– Circular
● Según lo que se necesite, se monta una u otra.
6
7. Irontec – MySQL Replication
Limitaciones
● Un esclavo solo puede tener un maestro. Por el
contrario, un maestro múltiples esclavos.
● No es recomendable montar una replicación por WAN.
La replicación es asíncrona y sensible a latencias.
● En un servidor esclavo esta prohibido escribir datos,
solo se usarán selects.
7
8. Irontec – MySQL Replication
Maestro-Esclavo
● Un maestro, múltiples esclavos.
● En el maestro se escribe, en el esclavo se lee.
8
9. Irontec – MySQL Replication
Maestro-Esclavo
● Primero debemos configurar el maestro.
Imprescindible:
– Habilitar los logs binarios.
– Crear un usuario que permita conectarse a los esclavos.
– Habilitar sync_binlog.
– Elegir un server-id.
logbin=mysqlbin
serverid=1
sync_binlog=1
9
10. Irontec – MySQL Replication
Maestro-Esclavo
● Dar permisos de conexión a los eslavos y dumpeamos
la BD:
mysqldump BD masterdata=2 > dump_file;
mysql> grant replication slave on *.* to
'replication'@10.10.10.1 identified by 'slave';
mysql> grant replication slave on *.* to
'replication'@10.10.10.2 identified by 'slave';
10
11. Irontec – MySQL Replication
Maestro-Esclavo
● Configuramos el eslavo:
– Seleccionamos un ID diferente para cada uno.
– Importamos la BD.
– Nos configuramos como esclavo de un maestro.
$mysql u root p < dump
serverid=101
mysql> CHANGE MASTER TO MASTER_HOST = ‘10.10.10.100’,
MASTER_USER = ‘replication’, MASTER_PASSWORD = ‘slave’,
MASTER_LOG_FILE = ‘master_log_file’, MASTER_LOG_POS =
master_log_pos;
11
12. Irontec – MySQL Replication
Maestro-Esclavo
● Master_log_pos y Master_log_file indican al esclavo
desde que posición del log binario deben leer, de
forma que no se repliquen datos que ya tenemos.
● Podemos sacarlo con un dump como ya hemos visto o
con el comando show master status;
● El log binario debe estár habilitado :)
12
13. Irontec – MySQL Replication
Maestro-Esclavo
● No se debe dejar al servidor la elección de cuando
escribir los datos al disco duro.
● Si el servidor se cae sin que algunos datos se escriban
en el log, es posible que estos se pierdan (dependerá
del sistema de ficheros).
● sync_binlog por defecto es 0, que deja que el servidor
decida cuando realizar la escritura al disco.
● Se recomienda un valor de 1, para que se fuerce la
escritura.
● Esto también es lento, dependerá de los discos duros
instalados.
● Si el servidor se cae, como mucho perderemos una
transacción. 13
14. Irontec – MySQL Replication
Maestro-Esclavo
● Para comprobar si la replicación es correcta tenemos el
comando show slave status.
● Este nos tiene que mostrar lo siguiente:
[...]
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
[...]
Seconds_Behind_Master: 0
Slave_IO_Running: Se encarga de conectarse al
maestro para comprobar cambios
Slave_SQL_Running: Se encarga de escribir las
sentencias SQL.
Seconds_Behind_Master: El lag en segundos entre
el maestro y el esclavo.
14
17. Irontec – MySQL Replication
Maestro-Esclavo
● El diagrama de las tablas es demasiado grande y no
entra ;)
http://dev.mysql.com/doc/refman/5.0/en/replication-rules-table-options.html
● Para rellenar la diapositiva pondré un dibujo:
No se quien es el autor :(
17
18. Irontec – MySQL Replication
Maestro-Maestro
● Lo que se escribe en uno se replica en el otro.
● Se puede escribir en los dos.
18
19. Irontec – MySQL Replication
Maestro-Maestro
● La arquitectura maestro-maestro es igual a la maestro
esclavo.
● Aquí los hosts realizan las dos tareas, maestro y esclavo
al mismo tiempo.
● Esta arquitectura soporta como máximo dos hosts, ya
que un esclavo solo puede tener como máximo un
maestro.
A es maestro de B. B es maestro de A.
A es esclavo de B. B es esclavo de A.
19
20. Irontec – MySQL Replication
Maestro-Maestro
● Se debe tener en cuenta, al igual que antes, lo
siguiente:
– Habilitar el log binario.
– Seleccionar un server-id.
– Establecer el valor de sync_binlog.
– Crear los usuarios para la replicación.
● El funcionamiento, opciones, monitorización, etc. es
todo igual.
20
21. Irontec – MySQL Replication
Maestro-Maestro
● Los auto-incrementales son el gran problema de este
tipo de arquitectura. Si se realizan dos insert al mismo
tiempo que incluya un campo autoincremental,
podemos tener un problema de ID duplicado.
● A envía a B un artículo cuyo ID autoincremental es
3000, B envía un artículo diferente a A cuyo
autoincremental es 3000 también. La replicación se
rompe.
– auto_increment_increment = 2
– auto_increment_offset = 1
● ¿Cómo sería para el server B?
21
22. Irontec – MySQL Replication
Circular
● Lo que se escribe en uno se replica en el siguiente, este
en el siguiente, este en... A → B → C → D → A
● Es la menos recomendable. En realidad está casi
prohibida también ;)
22
23. Irontec – MySQL Replication
Circular
● Es una forma de disponer de más de dos servidores en
arquitectura maestro-maestro.
● Contra más sean los hosts implicados, mayor el caos de
su administración.
A→B→C→D→E→A
● Si el host C se cae (por ejemplo) la replicación se
rompe. Lo escrito en B no se replica, lo escrito en D se
replica en todos menos en C, etc.
● Si se cae por ejemplo B y D, el caos es infinito. La
solución es salir corriendo.
● A no ser que no exista otra solución, no se
recomienda.
23
24. Irontec – MySQL Replication
Circular
● Los logs que reciben los esclavos, deben logearlos en el
log binario para enviarselo al siguiente en la cadena.
Esto no es el funcionamiento por defecto, los que se
recibe como esclavo no se logea. Para cambiarlo:
– logslaveupdates
● En algún momento de la cadena nos llegarán nuestros
propios logs. Para evitar formar un bucle:
– Replicatesameserverid=0
● También habrá que tener cuidado con los auto-
incrementales:
– auto_increment_increment=4
– auto_increment_offset=1
24
26. Irontec – MySQL Replication
Replicación rota
● Es recomendable tener el error-log habilitado, ahí se
guardará, entre otras cosas, cualquier error relacionado
con la replicación.
● ¡EJEMPLO!
Sep 11 11:13:16 test2 mysqld[6776]: 090911 11:13:16
[ERROR] Slave: Error 'Table 't' already exists' on
query. Default database: 'mysql'. Query: 'CREATE
TABLE t (c CHAR(20) CHARACTER SET utf8 COLLATE
utf8_bin)', Error_code: 1050
Sep 11 11:13:16 test2 mysqld[6776]: 090911 11:13:16
[ERROR] Error running query, slave SQL thread
aborted. Fix the problem, and restart the slave SQL
thread with "SLAVE START". We stopped at log 'mysql
bin.000003' position 421
26
27. Irontec – MySQL Replication
Replicación rota
● Forma rápida y no tan buena de solucionarlo:
● Decirle al esclavo que ignore esa querie y continue con
la replicación:
mysql> stop slave; Query OK, 0 rows affected (0.00
sec)
mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; Query
OK, 0 rows affected (0.00 sec)
mysql> start slave;
27
28. Irontec – MySQL Replication
Replicación rota
● Forma buena (y algo lenta) de solucionarlo:
http://www.maatkit.org/
● Maatkit makes MySQL easier to manage.
● Lo de “easier” ponedlo entre muchas comillas.
● Son una colección de herramientas que nos puede
ayudar en la administración de nuestro servidores, y en
este caso en particular, en rescatar una replicación.
● Todas las utilidades:
http://www.maatkit.org/doc/
28
29. Irontec – MySQL Replication
Replicación rota
● Para saber si dos tables están sincronizadas, podemos
sacar un checksum de estas y comparar:
– mktablechecksum
● Para sincronizar los datos de dos tablas:
– mktablesync
$ mktablechecksum h=host1,u=user,p=password h=host2
$ mktablesync –execute
u=user,p=pass,h=host1,D=db,t=tbl host2
29
30. Irontec – MySQL Replication
SandBox
● Para crear una laboratorio de pruebas podemos:
– Montar equipos físicos e instalarlos (de locos).
– Montar máquinas virtuales.
– Usar ¡sandbox!
30
31. Irontec – MySQL Replication
SandBox
● SandBox nos permite:
– Montar sistemas de replicación
– Probar versiones nuevas de MySQL facilmente
– Manejar múltiples instancias de MySQL desde un único
punto.
– Te olvidas de rmps, sources, debs... ¡tar.gz binario!
– Testear
– Testear
– Testear...
31
32. Irontec – MySQL Replication
SandBox
● No es un producto oficial de MySQL.
● Está escrito el perl (puag!) y aún así funciona bien.
http://mysqlsandbox.net/
● Tendremos que descargar un paquete tar.gz de MySQL
y Sandbox.
32
33. Irontec – MySQL Replication
Instalación
● ¡Como root!
root@shyris:~# tar xzf MySQLSandbox3.0.05.tar.gz
root@shyris:~# cd MySQLSandbox3.0.05/
root@shyris:~/MySQLSandbox3.0.05# perl Makefile.PL
root@shyris:~/MySQLSandbox3.0.05# make
root@shyris:~/MySQLSandbox3.0.05# make test
root@shyris:~/MySQLSandbox3.0.05# make install
root@shyris:/usr/local/bin# ls
low_level_make_sandbox make_multiple_sandbox make_sandbox
make_sandbox_from_source sb test_sandbox
make_multiple_custom_sandbox make_replication_sandbox
make_sandbox_from_installed msandbox sbtool
33
34. Irontec – MySQL Replication
Uso de SandBox
● Crear un sandbox con una única instancia de MySQL
punisher@shyris:~$ make_sandbox /home/punisher/MySQL/mysql
5.0.86perconahighperfb19.tar.gz
unpacking /home/punisher/MySQL/mysql5.0.86percona
highperfb19.tar.gz
Executing low_level_make_sandbox
basedir=/home/punisher/MySQL/5.0.86
sandbox_directory=msb_5_0_86
install_version=5.0
sandbox_port=5086
no_ver_after_name
my_clause=logerror=msandbox.err
34
35. Irontec – MySQL Replication
Uso de SandBox
● Parar sandbox:
– stop
● Arrancar sandbox:
– start
● Utilizar sandbox:
– use
● Reiniciar sandbox:
– restart
● Limpiar el sandbox:
– clean
35
36. Irontec – MySQL Replication
Crear entorno maestro-esclavo
● Facil, sencillo y para toda la familia:
punisher@shyris:~$ make_replication_sandbox
how_many_slaves=2 /home/punisher/MySQL/mysql5.0.86
perconahighperfb19.tar.gz
installing and starting master
installing slave 1
installing slave 2
starting slave 1
. sandbox server started
starting slave 2
. sandbox server started
initializing slave 1
initializing slave 2
replication directory installed in
$HOME/sandboxes/rsandbox_5_0_86
36
37. Irontec – MySQL Replication
Crear entorno maestro-esclavo
● Acceder al maestro
– m1
● Acceder al esclavo 1
– s1
● Acceder al esclavo 2
– s2
● Chequear esclavos
– check_slaves
37
38. Irontec – MySQL Replication
Crear entorno maestro-maestro
● Es muy dificil, ¡atentos!
punisher@shyris:~$ make_replication_sandbox
master_master /home/punisher/MySQL/mysql5.0.86percona
highperfb19.tar.gz
installing node 1
installing node 2
# server: 1:
# server: 2:
# server: 1:
# server: 2:
Circular replication activated
group directory installed in
$HOME/sandboxes/rcsandbox_5_0_86
38
40. Irontec – MySQL Replication
MMM
● Cuando ya sabemos que queremos y lo montamos,
llega el mantenimiento.
● Si tenemos un cluster de, por ejemplo, 2 maestros y 50
esclavos, comprobar el correcto funcionamiento es
complicado.
● ¿Y si deseamos parar algún esclavo?
● ¿Y si deseamos parar algún maestro?
● Es necesario reducir el tiempo de parada de
servicio al mínimo.
40
42. Irontec – MySQL Replication
MMM
● También el Perl. El mundo se ha vuelto loco...
● Características:
– Monitorización de la replicación
– Monitorización de los hosts
– Gestión del failover
– Balanceo de IPs entre nodos
– Gestión de grupos de escritura/lectura
42
43. Irontec – MySQL Replication
MMM
● La alta disponibilidad se hace mediante el balanceo de
Ips virtuales que saltarán de un servidor a otro en caso
de ser necesario.
– Exclusivo: Una única IP para muchos hosts. Si el host que
la tiene se cae se balancea a otro. Generalmente se usa
en los nodos de escritura.
– Balanceado: Una IP por cada host. Si uno de los hosts se
cae la IP se balancea a cualquier otro, pasando a tener
dos IPs virtuales. Se usa para nodos en lectura.
43
44. Irontec – MySQL Replication
MMM
● Se pueden meter los servidores dentro de dos roles,
escritura y lectura. Escritura es obligatorio, mientras que
el de lectura no tiene porque definirse.
● La diferencia es lógica:
– Nodos de escritura son aquellos en los que los datos se
escribirán.
– Nodos de lectura son aquellos de los cuales se leerán
datos.
● Escritura (maestro) – Lectura (esclavo)
44
45. Irontec – MySQL Replication
MMM
http://mysql-mmm.org/
● En el sistema de control se instalará:
– mysql-mmm-common_2.0.10-1_all.deb
– mysql-mmm-monitor_2.0.10-1_all.deb
● En los nodos:
– mysql-mmm-common_2.0.10-1_all.deb
– mysql-mmm-agent_2.0.10-1_all.deb
● ¡Junto con todas las dependencias!
45
46. Irontec – MySQL Replication
MMM
● Los ficheros de configuración se guardan en /etc/mysql-
mmm
● Todos tendrán un fichero llamado
mmm_common.conf que será exactamente igual.
● El nodo de control mmm_mon.conf
● Los servidores de MySQL mmm_agent.conf
46
47. Irontec – MySQL Replication
MMM
● mmm_common.conf
● Incluye la configuración de:
– Los Hosts
– Sus Ips
– Los roles
– Usuario/Contraseña del agente
– Usuario/Contraseña para la replicación
– La interfaz de red en la que se trabaja
47
48. Irontec – MySQL Replication
MMM
● mmm_mon.conf
● Incluye la configuración de:
– Usuario/Contraseña para la monitorización
– Ips a las que pingar
– Ruta de los binarios
– Ruta del PID
– Nidel de debug
48
49. Irontec – MySQL Replication
MMM
● mmm_agent
● Incluye la configuración de:
– El nombre de este servidor
– Todo el mmm_common.conf
– Y nada más :P
49
50. Irontec – MySQL Replication
MMM
● Como hemos visto, hay varios usuarios y contraseñas
definidos. Hay que crerlos en MySQL.
GRANT REPLICATION CLIENT ON *.* TO 'mmm_monitor'@'10.100.1.%'
IDENTIFIED BY 'RepMonitor';
GRANT SUPER, REPLICATION CLIENT, PROCESS ON *.* TO
'mmm_agent'@'10.100.1.%' IDENTIFIED BY 'RepAgent';
GRANT REPLICATION SLAVE ON *.* TO 'replication'@'10.100.1.%'
IDENTIFIED BY 'slave';
– El usuario monitor se usa para comprobar el estado de los
servidores Mysql.
– El usuario agent se usa para cambiar el read only mode,
poner offline un equipo, ejecutar un change_master, etc.
– El usuario replication slave... para replicación ;) 50
51. Irontec – MySQL Replication
MMM
● Una vez puesto en marcha los servicios, se deben
poner online los servidores desde el comando de
control.
MMM:~# mmm_control show
db1(10.100.1.1) master/AWAITING_RECOVERY. Roles:
db2(10.100.1.2) master/AWAITING_RECOVERY. Roles:
db3(10.100.1.3) slave/AWAITING_RECOVERY. Roles:
db4(10.100.1.4) slave/AWAITING_RECOVERY. Roles:
MMM:~# mmm_control set_online db1
OK: State of 'db1' changed to ONLINE. Now you can wait
some time and check its new roles!
MMM:~# mmm_control set_online db2
OK: State of 'db2' changed to ONLINE. Now you can wait
some time and check its new roles!
MMM:~# mmm_control set_online db3
OK: State of 'db3' changed to ONLINE. Now you can wait
some time and check its new roles!
MMM:~# mmm_control set_online db4
OK: State of 'db4' changed to ONLINE. Now you can wait
some time and check its new roles!
51
52. Irontec – MySQL Replication
MMM
● ¡Ejemplo! Parando un servidor en producción:
MMM:~# mmm_control set_offline db1
OK: State of 'db1' changed to ADMIN_OFFLINE. Now you can
wait some time and check all roles!
MMM:~# mmm_control show
db1(10.100.1.1) master/ADMIN_OFFLINE. Roles:
db2(10.100.1.2) master/ONLINE. Roles:
writer(10.100.1.10)
db3(10.100.1.3) slave/ONLINE. Roles: reader(10.100.1.12)
db4(10.100.1.4) slave/ONLINE. Roles: reader(10.100.1.11)
52
53. Irontec – MySQL Replication
MySQL Proxy
● El balanceo de carga se puede hacer bien por hardware
como por software.
● Existe un software creado para MySQL que nos puede
“ayudar”.
● Para que te ayude debes saber LUA.
http://forge.mysql.com/wiki/MySQL_Proxy
● Es un proxy que se pone entre el cliente y los servidores
de MySQL.
53
54. Irontec – MySQL Replication
MySQL Proxy
● Trae scripts de ejemplo, que entre otras cosas te
permite:
– Reescribir queries.
– Balanceo de carga.
– Loggeo avanzado.
– Failover.
– Análisis de queries.
54
55. Irontec – MySQL Replication
Se acabó
miguelangel@irontec.com
miguel2angel
http://miguelangelnieto.net
55