Replicacion
de una base de datos en MySQL utilizando una maquina virtual
Que es una
replicacion?
consiste
en replicar las consultas de
actualización (tanto DML como DDL) en una base de datos maestra (master) sobre una o varias bases
de datos esclavas (slave),
de manera que tengamos una copia de las mismas a lo largo del tiempo.
Para
empezar a utilizar la raplicacion de una base de datos utilizaremos los
siguientes programas :
·
Xampp (MySQL)
·
Virtual Box
·
Windows 7
·
Windows XP
Seguiremos
los siguentes pasos para la replicacion:
1.
Desactivaremos los Firewall de windows y tambien el antivirus
para asegurarnosque funcione.
2.
Iniciaremos Xampp y modificaremos el archivo My.ini
3.
En la sección The MySQL server pondremos las siguientes líneas
4.
Una vez hecho esto abrimos el cmd (Windows + R)
y utilizaremos la instrucción IPCONFIG para ver la dirección IP del PC y la
maquina virtual
5.
Ahora abrimos la maquina virtual para probar la
conexión usando PING
6.
Después de asegurarnos de la conexión nos
cambiaremos a la carpeta bin de mysql para iniciar la replicación
7.
Ahora daremos de alta al usuario que usaremos
para replicar la base de datos dándole privilegios de replicación usando la
sentencia GRANT
También usaremos la sentencia SHOW DATABASES para ver el
nombre de la base de datos a replicar, nosotros utilizaremos la base de datos
artículos_pedidos para este ejercicio.
8.- Bien ahora accedemos a la
base de datos y usaremos también la sentencia FLUSH TABLES WITH READ LOCK esta
sentencia no nos permitirá modificar las tablas de la base de datos que
escogimos
Una vez bloqueadas las tablas
mostraremos el estado del maestro, hay que guardar el nombre del archivo
mysql-bin.000007, y también la posición 264 ya que esta nos será de utilidad
para la replicación.
Salimos de MySQL y reiniciamos el
servicio desde el panel de control de XAMPP, Si se usa MySQL server podrá reiniciar
mediante el administrador de servicios de Windows.
10.- Ya reiniciado el servicio de
mysql volvemos al CMD para utilizar la sentencia mysqldump
para generar el archivo de
respaldo de la base de datos artículos_pedidos
Volvemos a entrar a MySQL
normalmente:
mysql –uroot –p
mysql –uroot –p
Y desbloqueamos las tablas usando
la sentencia UNLOCK TABLES.
11.- Ahora nos vamos a buscar el
archivo respaldo.sql que hicimos en
la carpeta bin (C:\xampp\mysql\bin)
de mysql para copiarla a un dispositivo USB y transferir la a la máquina
virtual que usaremos para el replicado.
Nota: el nombre del archivo respaldo.sql puede variar pero no la
extensión.
Hasta aquí terminamos con la
configuración del maestro y vamos a configurar el esclavo.
12.- Ya que iniciamos la máquina
virtual vamos a desactivar el firewall de Windows y si se tiene antivirus
también desactivarlo (en mi caso no tengo antivirus solo desactivare el
firewall)
Ahora vamos a configurar el archivo My.ini desde el panel de
control de XAMPP, agregando las líneas de log-bin= mysql-bin, server-id=2 ,
guardamos el archivo
Para que estos cambios tengan efecto vamos a reiniciar el
servicio de mysql desde el panel de control de XAMPP
13.- Vamos a CMD, nosotros sabemos la dirección IP de la máquina
virtual y no usaremos la sentencia IPCONFIG pero para asegurarnos que existe la
conexión haremos PING
14.- Todo bien, a continuación iniciamos mysql y creamos la base de datos(Create database
artículos_pedidos) y la usamos (USE artículos_pedidos)
15.- Salimos de mysql y hacemos que acepte el USB la máquina virtual para tener acceso al
archivo de respaldo
Copiamos esto al disco C: \ y ponemos la sentencia para cargar
el archivo con myqsl
16.- Reiniciamos y volvemos a entrar a mysql detenemos al
esclavo con la sentencia STOP SLAVE, cambiamos a maestro dando la dirección
IP(192.168.0.4), le damos el nombre del usuario replicador ( DUPLICA), asignamos
la contraseña (pass) y ahora
utilizaremos el nombre del archivo binario mysql-bin.000007
También cambiamos a la posición y utilizamos Start slave;
para iniciar al esclavo en la replicación
17.- mostraremos el estado de nuestra conexión
maestro/esclavo con la sentencia SHOW MASTER STATUS \G y observemos Mostramos la información del esclavo con show
slave \G;
Si la línea Seconds_behind_master es
igual a NULL entonces la conexión no funciono de lo contrario como aquí
que es igual a cero la conexión es correcta, para comprobarlo usamos la base de
datos y mostramos las tablas
18.- Ahora veamos el contenido de una de las tablas,
ejemplo: Select * from articulo;
Todo bien por ahora, pero para verificar si está replicando
volvemos al maestro y vamos a insertar un registro en la tabla que
seleccionamos “articulo’ , veamos la tabla primero para asegurarnos que tenemo
los 30 registros:
19.-Una vez verificada la información insertamos el registro
31 con la siguiente sentencia
insert into articulo values (31, 'Kentucky Club
higo' ,
20 , 80);
20.-El ingreso del registro fue correcto por lo tanto vamos
al esclavo y vemos los registros usando SELECT * FROM articulo para ver si la
replica funciono.
No hay comentarios:
Publicar un comentario