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




                                       mysqldump –u root –p
                    Con el siguiente comando
                    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)MySQLMySQL Server 5.0bin 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)MySQLMySQL 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.

Manual Técnico Para Hacer Réplica

  • 1.
    REPLICACION DE BASEDE DATOS Julián Andrés Pizarro Collazos Omar David Vaca Maquiavelo Versión 1.0 http://youtu.be/VcqLsXKF2Ho
  • 2.
    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.
  • 3.
    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
  • 4.
    Página 3 2. Modificarel archivo my.ini, este se encuentra en la siguiente ruta C:Program Files (x86)MySQLMySQL 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
  • 5.
    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.
  • 6.
    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.
  • 7.
    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 mysqldump –u root –p Con el siguiente comando 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)MySQLMySQL Server 5.0bin 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
  • 8.
    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)MySQLMySQL 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
  • 9.
    Página 8 14. Losiguiente 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.
  • 10.
    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;
  • 11.
    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.
  • 12.
    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.