miércoles, 8 de mayo de 2013

Replicación con maquina virtual

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
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