Post on 29-Oct-2018
transcript
REPLICACION DE BASE DE DATOS
Julián Andrés Pizarro Collazos
Omar David Vaca Maquiavelo
Versión 1.0
http://youtu.be/VcqLsXKF2Ho
Página 1
Ejemplo explicativo básico de una replicación.
La réplica proporciona una manera rápida y confiable de diseminar la información
corporativa entre múltiples localizaciones en un ambiente de negocio distribuido,
permitiendo distribuir la información de manera confiable
¿Qué es una réplica de base de datos?
Aparte de confiar en una base de datos para sus requisitos de almacenaje, se
deben de mover sus datos rápida y confiablemente a través de una organización.
Página 2
Servidor Maestro (Master Server)
1. Desactivar todos los escudos de Antivirus y Firewall de Windows.
1.1 Panel de Control > Sistema y Seguridad > Firewall
1.2. En este caso Avast Free Antivirus
Página 3
2. Modificar el archivo my.ini, este se encuentra en la siguiente ruta
C:\Program Files (x86)\MySQL\MySQL Server 5.0. Abrimos el archivo
para modificarlo, colocando lo siguiente (ver imagen) debajo de [mysqld]
en SERVER SECTION.
3. Reiniciamos los Servicios de MySQL. Inicio > Buscar: Servicios
Página 4
Procedemos a reiniciar los servicios de MySQL.
4. Ingresamos a la consola de Windows ya sea pulsando la tecla Windows
+ R o Inicio > Buscar, y escribimos el siguiente comando cmd. Ejecutar
Como Administrador.
Página 5
Hacemos un ping con la dirección IP (ping ip_slave) del esclavo
para conectarnos, ahora debemos entrar a la terminal de MySQL
con el comando mysql –u root –p
Una vez entramos a la terminal de MySQL insertemos el siguite comando:
grant replication slave on *.* to ‘nombre_esclavo’@’IP_esclavo’
identified by ‘contraseña’; este comando es para crear una cuenta de
usuario de replicación para que el esclavo se pueda loguear.
Página 6
Luego insertamos el siguiente: flush privileges; con este le daremos
todos los privilegios al maestro para poder hacer dicha replica.
Ahora lo que vamos hacer es mostrar las bases de datos con las que
contamos para tener la replica que queremos obtener, con el siguiente
comando digitamos: show databases; y procedemos a usar dicha base
de datos con el comando: use nombe_basedatos la cual hemos
escogido de las cuales tenemos en el motor MySQL.
5. Ahora bloqueremos las tablas de la base de datos que utilizaremos con
el comando: flush tables with read lock;
6. Con el siguiente comando show master status; mostraremos el nombre
del archivo log bin y su posición, ya que este nos servirá para configurar
el esclavo
7. Y salimos de la terminal de MySQL con el comando exit
Con el siguiente comando mysqldump –u root –p
nombre_basedatos>respaldo.sql lo que haremos es crear un
respaldo de la base de datos que utilizaremos (no es un BackUp).
Una vez ya creado el archivo de respaldo (respaldo.sql),
procedemos a buscarlo en la ruta C:\Program Files
(x86)\MySQL\MySQL Server 5.0\bin que es donde se
encuentra alojado después de haberse creado y procedemos a
copiarlo en el disco “C:\” del esclavo para que este lo encuentre de
Página 7
una manera fácil y rápida, y nuevamente entramos a la terminal de
MySQL con el comando mysql –u root –p
8. Ya realizada la copia de la base de datos desbloquearemos las tablas
con el comando: unlock tables;
9. Ahora pasamos a configurar el esclavo.
Servidor Esclavo (Slave Server)
10. Desactivar todos los escudos del Antivirus y Firewall de Windows (Ver
paso 1).
11. Modificar el archivo my.ini, este se encuentra en la siguiente ruta
C:\Program Files (x86)\MySQL\MySQL Server 5.0. Abrimos el archivo
para modificarlo, colocando lo siguiente (ver imagen) debajo de [mysqld]
en SERVER SECTION.
12. Abrimos la consola de Windows (Ver paso 4).
13. Hacemos un ping con la dirección IP (ping ip_master) del esclavo para
conectarnos, ahora debemos entrar a la terminal de MySQL con el
comando mysql –u root –p
Página 8
14. Lo siguiente es crear una nueva base de datos con el mismo nombre de
la base de datos que tiene el maestro a la cual se le está trabajando la
réplica, para crearla digitamos el comando: create database
nombre_basedatos;
15. Ya una vez creada la base de datos procedemos a utlizarla con el
comando: use nombre_basedatos y luego salimos de la terminal con el
comando: exit
16. Una vez ya tengamos el respaldo.sql en el disco “C:\” procedemos a
realizar a crear las tablas que respaldamos en dicho archivo el cual
hicimos en el maestro con el siguiente comando: mysql –u root –p
nombre_basedatos<c:\respaldo.sql esperamos que se realice dicho
proceso de respaldo y luego reiniciamos los servicios de MySQL (Ver
paso 3).
Muestra las bases que contiene MySQL en el esclavo, se procede
a crearla y a utilizarla, luego a crear las tablas con el archivo del
respaldo que creó el maestro.
Página 9
Reiniciamos los Servicios de MySQL.
17. Entramos nuevamente a la terminal de MySQL y paramos los servicios
del esclavo con el siguiente comando: stop slave; luego nos logueamos
o hacemos conexión con el maestro de la esta forma: change master to
master_host=’ip_maestro’,master_user=’nombre_esclavo’,master_pass
word=’contraseña’,master_log_file=’mysql-
bin.000032’,master_log_pos=308;
18. Ahora iniciamos los servicios en el esclavo con el comando: start slave;
Página 10
Comprobar Replicación
Slave (Esclavo)
Insertar el comando use nombre_basedatos
Mostrar las tablas insertando el comando show tables;
Se escoge una tabla cualquiera (se debe conocer sus valores informáticos)
con el comando select * from nombre_tabla;
Master (Maestro)
Nos devolvemos al maestro (el queda con en unlock tables;) e insertamos
el comando use nombre_basedatos
Ahora insertamos valores informaticos en la tabla que acaba de escoger el
esclavo con el comando insert into nombre_tabla values (‘’); ejemplo: insert
into zona values (‘A123’,’Zotano’);
Se inserta el comando select * from nombre_tabla; para comprobar que
hizo la inserción exitosamente.
Página 11
Slave (Esclavo)
Nuevamente nos devolvemos al esclavo y digitamos otra vez select * from
nombre_tabla; y este deberá mostrar la inserción que acaba de hacer el
maestro.
Para comprobar nuevamente de que hay replica correctamente escribimos
el siguiente comando que nos dirá si está funcionando como debe ser:
show slave status \G; si muestra un 0 está funcionando correctamente de lo
contrario mostrara un Null.