Replicación de Base de Datos Utilizando MySQL
-
Upload
irving-franco-hernandez -
Category
Documents
-
view
257 -
download
7
description
Transcript of Replicación de Base de Datos Utilizando MySQL
Replicación de bases de datos utilizando MySQL
Bases de Datos Distribuidas
M .en. TIC Roció González Mendoza
Ingeniería en Software
Irving Gerzain Franco Hernández
Sergio Valdivia Martínez
Septiembre-Diciembre 2015
Replicación de Base de Datos
Replicación es el proceso de copiar y administrar objetos de base de datos, tales como tablas, hacia
múltiples bases de datos en localidades remotas que son parte de un sistema de bases de datos
distribuido. Los cambios ejecutados en una localidad son capturados y guardados localmente antes
de ser aplicados a las localidades remotas. Los términos sistemas de bases de datos distribuidas y
replicación de bases de datos, están relacionados, pero no son equivalentes. En un sistema puro de
bases de datos distribuidas se maneja o administra una sola copia de todos los objetos de la base
de datos y sus datos, es decir que existe de manera única la ocurrencia de un objeto de base de
datos en todas las localidades, es decir la información se encuentra particionada de manera
horizontal entre todas las localidades. Las aplicaciones en una base de datos distribuida utilizan
transacciones distribuidas para acceder y modificar tanto los datos locales como remotos.
Figura 1. Ejemplo explicativo básico de una replicación.
Configuración del Servidor Maestro
1. Desactivar el Firewall de Windows y el antivirus que usa el Servidor Maestro.
1.1 Dirigirse al Panel de Control >Sistema >Firewall
Figura 2. Desactivar Firewall de Windows
1.2 En este caso es Bitdefender Internet Security
Figura 2.1 Desactivar antivirus
2. Modificar el archivo my.ini el cual se encuentra en el panel de control de XAMPP> MySQL>
Config. Abrimos el archivo para modificarlo, colocando lo siguiente (ver Figura 3).
Figura 3. Configuración del archivo.
3. Reiniciamos los Servicios de MySQL , para esto en el Panel de control de XAMPP
detenemos el servicio de y lo iniciamos nuevamente.
3.1 Procedemos a reiniciar los servicios de MySQL.
Figura 4 Reinicio de MySQL
4. Ingresamos a la consola de Windows usando la combinación de Teclas Windows +R y
escribiendo lo siguiente.
Figura 5. Ejecución de la consola
4.1 Una vez dentro de la consola haremos ping al ordenador que será el esclavo de la
replicación como se muestra en la imagen (Ver Figura 5.1 ).
Figura 5.1 Comprobación conexión entre el Maestro y el Esclavo.
4.2 Ahora tenemos que entrar a la terminal de MySQL (Ver Figura 5.2).
Figura 5.2 Ingreso a la terminal de MySQL.
4.3 Una vez dentro de la terminal de MySQL escribiremos el siguiente comando (Ver Figura
5.3)
4.4 Luego tecleamos el siguiente comando: flush privileges, con este le daremos todos los
privilegios al maestro para poder hacer dicha replica (Ver Figura 5.3).
4.5 Ahora lo que vamos hacer es mostrar las bases de datos con las que contamos para de
esta manera seleccionar a cual se hará la réplica.(Ver Figura 5.3).
Figura 5.3 Comandos para replicación.
5. Ahora bloqueremos las tablas de la base de datos que utilizaremos con el comando: flush
tables with read lock. (Ver Figura 5.3).
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 (Ver Figura 6).
7. Y salimos de la terminal de MySQL. (Ver Figura 7).
Figura 6. Status del Maestro.
Con el comando (Ver Figura 7), 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 (backgame.sql),
procedemos a buscarlo en la ruta C:\xampp\mysql\bin en este caso que se utilizó XAMPP.
Figura 7. Guardado de la Base de Datos.
8. Ingresamos nuevamente a la terminal de MySQL. (Ver Figura 9).
9. Ya realizada la copia de la base de datos desbloquearemos las tablas con el comando:
unlock tables. (Ver Figura 9).
10. Ahora pasamos a configurar el esclavo.
Figura 8. Carpeta Contenedora del archivo SQL.
Figura 9. Desbloqueo de Tablas.
Configuración del Servidor Esclavo
11. Desactivar todos los escudos del Antivirus y Firewall de Windows (Ver paso 1).
12. Modificar el archivo my.ini está en la ruta C:\xampp\mysql\bin. Abrimos el archivo para
modificarlo, colocando lo siguiente (Ver Figura 10).
Figura 10. Configuración del Esclavo.
13. Abrimos la consola de Windows (Ver paso 4).
14. Hacemos ping con la dirección IP (Ver Figura 11) del esclavo para comprobar que existía
conexión.
Figura 11. Comprobación de conexión entre el Mestro y el Esclavo.
15. Ahora debemos entrar a la terminal de MySQL (Ver Figura 12) .
Figura 12. Login en MYSQL.
16. 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 (Ver Figura 13).
Figura 13. Creación y uso de la Base de Datos en el esclavo.
17. Una vez ya tengamos el backgame.sql en el disco “C:\” procedemos a obtener las tablas
que respaldamos en dicho archivo el cual hicimos en el maestro (Ver Figura 14), y luego
reiniciamos los servicios de MySQL (Ver paso 3).
Figura 14. Recuperación de la Base de Datos.
18. Entramos nuevamente a la terminal de MySQL y detenemos los servicios del esclavo y
luego hacemos login al servidor maestro (Ver Figura 16).
Figura 15. Detención de los servicios del esclavo.
Figura 16. Login con el Maestro.
19. Ahora iniciamos los servicios del esclavo
Figura 17. Iniciar los servicios del Esclavo.
Verificación de replicación
Servidor Maestro
Nos situamos en el ordenador al servidor maestro como sabemos este desbloqueo las
tablas de nuestra base de datos que se replicará.
Procederemos a insertar valores a una tabla de nuestra base de datos
Usamos un sentencia select para comprobar que se insertó los datos correctamente
Figura 18. Inserción de Datos en la Base de Datos.
Esclavo
Regresamos a la portátil que es esclavo y utilizamos una sentencia select para comprobar
que la inserción del maestro se realizó correctamente en el esclavo
Para comprobar que existe replica correctamente tecleamos el comando que nos indica si
la réplica se está realizando exitosamente : show slave status \G; si muestra un 0 está
funcionando correctamente de lo contrario mostrara NULL
Figura 19. Sentencia select.
Figura 20. Comprobación de la replicación.
La parte que indica que la replicación es llevada a cabo es : Seconds_Behind_Mater el cual debe
mostrar 0 en caso de éxito de replicación o en su caso contrario muestra NULL.