Вы находитесь на странице: 1из 14

Introduccin

Este manual describe cmo realizar la rplica de la base de datos en MySQL. La rplica de MySQL permite tener una copia exacta de una base de datos de un servidor principal (maestro) en otro servidor (esclavo), y todas las actualizaciones a la base de datos en el servidor principal se repliegan inmediatamente a la base de datos en el servidor auxiliar de modo que ambas bases de datos estn sincronizadas. Esto no es una poltica de respaldo porque si se corre un comando de borrado de forma accidental tambin ser realizado en el esclavo; sin embargo las rplicas pueden ayudar a proteger contra faltas de hardware.

Los esclavos nicamente deben usarse para leer, lo que implica que todas las consultas de escritura, habr que hacerlas sobre el maestro.

Surge de la necesidad de no tener un nico servidor de base datos, sino un conjunto de ellos sincronizados. A menudo esto se hace por razones de rendimiento y escalabilidad.

MANUAL REPLICACIN DE DATOS CON MySQL

Requerimientos: Dos laptops Las dos mquinas deben de tener la misma versin MySql 1.-Asignar la direccion IP al servidor maestro (192.168.0.100):

2.- Asignar la direecin IP al servidor esclavo (192.168.0.101):

3.- Ejecutar el CMD:

4.- Hacemos ping para comprobar que los servidores se encuentran conectados:

5.- Abrimos la consola de mysql:

6.- (Esta base de datos la crearemos en el servidor maestro y el esclavo)Desde la consola creamos la BD a la que llamaremos escuela (crate database escuela;), y ejecutamos otra lnea de cdigo para usarla: use escuela; , para crear una tabla ingresamos la siguiente lnea crate table alumnos (id_alumno varchar(15), nombres varchar(20)) type=in nodb;

7.- En el servidor maestro modificamos el archivo que se encuentra en la carpeta de mysql D:\AppServ\MySQL llamada my.ini. Al principio del documento que se abre en un bloc de notas agregamos las siguientes lneas (guardamos los cambios y reiniciamos el servicio MySql): # skip-networking # bind-address = 127.0.0.1

Aqu reiniciamos el sistema:

8.- En el Servidor 1, escribiremos: GRANT REPLICATION SLAVE ON *.* TO root IDENTIFIED BY 1234; FLUSH PRIVILEGES; Donde root va a ser el nombre del usuario del servidor 1, 1234 ser el password del servidor 1. Estos nombres de usuario y password los tenemos que crear para que podamos replicar del servidor 1.

Damos aceptar, en ingresamos QUIT;

En el Servidor 2, aremos lo mismo. Ingresando la sentencia: GRANT REPLICATION SLAVE ON *.* TO root IDENTIFIED BY 1234; FLUSH PRIVILEGES;

Damos aceptar e ingresamos: QUIT; Los nombres de usuario y password, para evitar confusiones pueden ser los mismos en ambos servidores. 10.- Vamos a modificar el archivo my.ini una vez ms. En el server 1 como en el server 2, agregando las siguientes lneas de cdigo.
server-id=1 repilcate-same-server-id=0 auto-increment-increment=2 auto-increment-offset=1 master-host=192.168.0.101 master-user=root master-password=1234 master-connect-retry=388 replicate-do-db=escuela log-bin=C:\AppServ\MySQL\data\mysql-slow.log binlog-do-db=escuela expire_logs_days=10 max_binlog_size=50M binlog_ignore_db=mysql low-priority-updates innodb_flush_log_at_trx_commit= 1 Guardamos cambios y reiniciamos el servicio MySQL.

En el Servidor 2 hacemos lo mismo: server-id=2 repilcate-same-server-id=0 auto-increment-increment=2 auto-increment-offset=1 master-host=192.168.0.100 master-user=root master-password=1234 master-connect-retry=388 replicate-do-db=escuela log-bin=C:\AppServ\MySQL\data\mysql-slow.log binlog-do-db=escuela expire_logs_days=10 max_binlog_size=50M binlog_ignore_db=mysql low-priority-updates innodb_flush_log_at_trx_commit= 1 Guardamos cambios y reiniciamos el servicio MySQL. 11.- En el Servidor 1, en la consola de MySQL ingresamos lo siguiente:

USE escuela; FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS;

Guardamos el nombre del archivo y la posicin, que nos muestra el servidor maestro.

12.- En el servidor 2 modificaremos el archivo my.ini, en la lnea master-connect-retry=98

Guardamos cambios y Reiniciamos servicio MySQL. Ah mismo en la consola MySQL, hacemos lo mismo que anteriormente como lo siguiente:

USE escuela; FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS;

Guardamos el nombre y posicin. Ingresamos la sentencia UNLOCK TABLES; y QUIT;

En el servidor 1, hacemos lo mismo que en el esclavo, modificaremos el archivo my.ini, cambiando la lnea master-connect-retry=98, guardamos cambio y reiniciamos servicio. 13.- En el servidor 2, ingresamos las siguientes sentencias: STOP SLAVE; (Puede demorar algn momento en parar el esclavo)

CHANGE MASTER TO MASTER_HOST=192.168.0.100, MASTER_USER=root, MASTER_PASSWORD=s1234, MASTER_LOG_FILE=mysql-bin.000001, MASTER_LOG_POS=98;

Continuamos ingresando la sentencia: START SLAVE;

SHOW SLAVE STATUS; (Esta ltima sentencia mostrar 2 valores con la palabra Yes)

Si esto aparece, quiere decir que estamos bien, solo falta comprobar en el servidor Maestro. Ingresamos QUIT;

En el servidor Maestro hacemos lo mismo y debe de mostrar en la ltima sentencia los 2 valores con la palabra Yes.

Hay que tener en cuenta el nombre del archivo mysql-slow.000002 este ira en el servidor maestro. Ingresamos la sentencia START SLAVE; y SHOW MASTER STATUS; esta ltima es la ms importante.

Tenemos que todo se encuentra bien, solo falta hacer la comprobacin, que en el video se especifica usando la herramienta NAVICAT.

Conclusin

Concluimos que un servidor esclavo puede servir como maestro si quiere preparar una cadena de replicaciones de replicacin. Tenga en cuenta que cuando se usa replicacin, todas las actualizaciones de las tablas que se replican deben realizarse en el servidor maestro. De otro modo, debe ser cuidadoso para evitar conflictos entre actualizaciones que hacen los usuarios a las tablas en el maestro y las actualizaciones que hacen en las tablas de los esclavos. Una rplica de MySql hace uso del fichero binario de transacciones para almacenar en el maestro todos los cambios para que un servidor externo lo lea y replique exactamente los mismos cambios en su propia base de datos. De este modo tenemos uno o ms servidores MySql esclavos haciendo las mismas transacciones que el maestro para as tener los mismos datos en diferentes servidores cosa que se realmente til y, no slo ante cadas, ya que es posible configurar nuestra aplicacin para compartirlas entre distintos nodos de MySql y mejorar as el rendimiento.

Fuentes de informacin

http://www.latascadexela.es/2009/08/configuracion-de-replicas-de-mysql.html

http://www.mygnet.net/articulos/mysql/680/

http://elchechoinmundo.blogspot.mx/2008/11/crear-replica-de-bases-de-datosmysql.html

Вам также может понравиться