Documentos de Académico
Documentos de Profesional
Documentos de Cultura
master 192.168.2.10/24
slave(replica) 192.168.2.20/24
Queremos tener en el servidor slave una replica de la base de datos asir Base de datos asir tiene dos tablas: alumnos y asignaturas. Estructura da las tablas:
Configuracin en Master
Asignamos IP al servidor, 192.168.2.10/24 Instalamos servidor MySQL apt-get install mysql-server Creamos la base de datos asir y las tablas mysql -u root -p *clave root* create database asir; use asir; create table alumnos ( id_alumno int primary key auto_increment, nombre_alumno varchar(80) not null ); create table asignaturas ( id_asignatura int primary key auto_increment, nombre_asignatura varchar(80) not null ); Agregamos contenido a las tablas: alumnos insert into alumnos(nombre_alumno) insert into alumnos(nombre_alumno) insert into alumnos(nombre_alumno) insert into alumnos(nombre_alumno) insert into alumnos(nombre_alumno) insert into alumnos(nombre_alumno) insert into alumnos(nombre_alumno) insert into alumnos(nombre_alumno) insert into alumnos(nombre_alumno)
('Sergio'); ('Kike'); ('Pedro'); ('Fran Garcia'); ('Mara'); ('Andres'); ('Fran Truke'); ('Fran Cano'); ('Jose Juan'); ('Gestion de SGBD'); ('Sistemas'); ('Redes'); ('Empresa'); ('Aplicaciones'); ('Seguridad');
asignaturas insert into asignaturas(nombre_asignatura) insert into asignaturas(nombre_asignatura) insert into asignaturas(nombre_asignatura) insert into asignaturas(nombre_asignatura) insert into asignaturas(nombre_asignatura) insert into asignaturas(nombre_asignatura)
Cerramos la consola de MySQL, entramos en terminal con cuenta de superusuario y editamos el archivo /etc/mysql/my.cnf
Para que el servidor master acepta conexiones desde exterior, debemos quitar o comentar esta linea en el archivo /etc/mysql/my.cnf
Volvemos a la consola MySQL, bloqueamos la escritura de los datos en las tablas para crear una replicacin correcta: mysql> flush tables with read lock; mysql> set global read_only=on;
Bien, los logs de cambios de la base de datos asir estan creandose correctamente. Recordamos los valores de ultimo archivo (en este caso mysql-master-asir.000002) y la posicion (en este caso 106). Creamos una copia de seguridad de esta base de datos para restaurarla en el servidor slave: mysqldump -h localhost -u root -p asir > /backup.sql
Configuracin en Slave
Asignamos IP al servidor, 192.168.2.20/24 Instalamos servidor MySQL apt-get install mysql-server Creamos la base de datos asir: mysql -u root -p *clave root* create database asir;
Salimos de la consola MySQL, restauramos copia de seguridad de la base de datos asir del servidor master mysql -h localhost -u root -p asir < /backup.sql Configuramos el slave para que recibe las instrucciones de actualizar sus tabals desde el servidor master, editamos el archivo /etc/mysql/my.cnf
Los datos importantes estan marcados en rojo, son: Slave_IO_State: Waiting for master to send event es decir, el ervidor slave esta esperando que el servidor maestro envia los datos de replicacion: Slave_IO_Running: Yes nos dice que el servidor slave esta en modo de replica; Slave_SQL_Running: Yes nos dice que el servidor-replica esta ejecutado; Seconds_Behind_Master: 0 segundos de margen entre cambio de datos en el servidor maestro y esclavo (en nuestro caso es 0) Volvemos al servidor master, desbloqueamos las tablas: mysql> unlock tables; mysql> set global read_only= off; Para asegurarnos que todas las preferencias de los servidores estan correctamente aplicadas, reiniciamos ambos usando el comando: sudo reboot Cuando se inician, insertamos algun dato en la base de datos asir (tabla alumnos por ejemplo) en el servidor master:
Como vemos, la replicacion funcciona correctamente. Lo mismo pasara al hacer cualquier modificacion de la base de datos asir en el servidor master.