Vous êtes sur la page 1sur 6

La replicación puede ser un proceso complejo.

Hay que tener en cuenta que este


se realiza para garantizar la disponibilidad de los datos en otra ubicación o bien
hacer frente a posibles problemas de uno de los servidores. En este artículo os
vamos a enseñar a realizar replicaciones de una base de datos MySQL de una forma
sencilla pero igualmente válida.
El manual queda dividido en tres partes. En la primera aprenderemos cómo copiar
la clave SSH generada por un usuario en un equipo a otro. Esto permitirá iniciar
sesión SSH en otro sin la necesidad de introducir la contraseña asociada a esa
cuenta. En la segunda parte hablaremos del script que debemos utilizar para
realizar la copia de la base de datos. En último lugar y de forma opcional,
modificaremos el cron para que el script se ejecute cada hora y se realice la
replicación de forma automática.
Todo este manual se desarrollará haciendo uso de una terminal de Linux.
RedesZone no se responsabilizará de un uso inadecuado del manual ni de pérdidas
de información.
Es recomendable que todo el manual se realice utilizando el usuario root, sobre
todo para evitar problemas durante el uso de mysqldump.

Copia de la clave SSH en otro equipo


La finalidad de esto no es otra que permitir que el script haga login en el equipo
remoto y transfiera la información obtenida del comando mysqldump que
utilizaremos en el siguiente apartado.
En primer lugar, tendremos que ejecutar el siguiente comando:

ssh-keygen -t rsa

A coación realizará una serie de preguntas, comenzando por el fichero destino:

Enter file in which to save the key (/home/demo/.ssh/id_rsa):

Introducir la frase de cifrado. Si se desea se puede dejar vacía:

Enter passphrase (empty for no passphrase):

La salida generada será similar a la siguiente:

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/demo/.ssh/id_rsa.
Your public key has been saved in /home/demo/.ssh/id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a
The key's randomart image is:
+--[ RSA 2048]----+
| .oo. |
| . o.E |
| + . o |
| . = = . |
| = S = . |
| o + = + |
| . o + o . |
| . o |
| |
+-----------------+

La clava está ubicada en /home/demo/.ssh/id_rsa.pub, tal y como hemos podido


comprobar, aunque el usuario puede elegir otra ubicación. Es recomendable dejar
esta para evitar problemas en la segunda parte del proceso.
Tenemos que copiar la clave al equipo remoto. Para realizar esta operación
ejecutaremos el siguiente comando:

ssh-copy-id root@192.168.200.50

La salida ofrecida por este comando debería ser similar a esto:

The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established.


RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts.
user@12.34.56.78's password:
Now try logging into the machine, with "ssh 'user@12.34.56.78'", and check in:
~/.ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

En esta salida, el usuario deberá confirmar que quiere añadir la identidad e


introducir las credenciales de login para la cuenta que se quiere utilizar en ese
servicio.
Una vez completado este proceso, tendríamos que ser capaces de hacer inicie de
sesión en este equipo sin introducir la contraseña:

ssh root@192.168.200.50

La primera parte de este manual la damos por zanjada y pasamos a la segunda.

Utilización de mysqldump y el inicio de sesión


vía SSH
Continuamos con la segunda parte. Para ello nos vamos a ayudar del comando
mysqldump pero con variaciones que nos permitirán trasladar de forma automática
el dump a la base de datos del servidor remoto.
Antes de continuar, indicar que conviene utilizar un usuario que esté bien
configurado en la base de datos. Hay que tener en cuenta que la contraseña de
acceso a la base de datos la vamos a dejar en texto plano. De ahí que sea
recomendable afinar los permisos que este usuario posea de cara a la lectura y
escritura de datos.
El comando a utilizar sería el siguiente:

mysqldump -u usuarioDB -p'contraseñDB' nombreDB | ssh userRemoto@direcciónIPRemo


ta mysql -u usuarioDBRemota -p'contraseñaDBRemota' nombreDBRemota

Tal y como se puede observar, la pipe separa en dos el comando. En la primera


parte lo que hacemos es un dump en formato texto de la base de datos escogida. Si
no incluimos la segunda parte, podemos ver como la salida es el código SQL que
genera la estructura de las tablas y la información ya existente. En la segunda parte,
se recibe este texto, se inicia sesión en SSH, se hace login en MySQL y se
selecciona la base de datos sobre la que se escribirán los datos.
Con este comando tendremos una réplica exacta de la base de datos seleccionada.
Beneficios de la Replicación de Base de Datos
Una replicación de base de datos es una técnica mediante la cual copiamos de forma exacta
en otra ubicación una instancia de la base de datos. Se utiliza en entornos distribuidos de
Sistemas de Gestión de Bases de Datos donde una sola base de datos tiene que ser utilizada
y actualizada en varios lugares de forma simultánea.

Actualmente existen en la red multitud de aplicaciones y de sistemas que tienen por debajo
una base de datos que sigue el modelo cliente-servidor. Muchas veces esos sistemas deben
de tener garantizada la accesibilidad por lo que para evitar problemas es necesario utilizar
este tipo de técnicas de replicación de base de datos de forma que un fallo en uno de los
servidores de base de datos no impida a los usuarios seguir utilizando la aplicación.

Mediante la replicación de base de datos, usuarios de todo el mundo pueden estar


accediendo a lo que para ellos son los mismos datos, aunque en realidad, físicamente esos
datos pueden estar de forma transparente para el usuario, en diferentes nodos o localidades.
Tipos de replicación de base de datos
Podemos hablar al menos de 3 tipos de replicación de base de datos:

 Replicación Instantánea: los datos de un servidor son simplemente copiados a otro


servidor o a otra base de datos dentro del mismo servidor. Al copiarse todo no necesitas un
control de cambios. Se suele utilizar cuando los datos cambian con muy poca frecuencia.

 Replicación Transaccional: primero se envía una copia completa de la base de datos y


luego se van enviando de forma periódica (o a veces continua) las actualizaciones de los
datos que cambian. Se utiliza cuando necesitas que todos los nodos con todas las
instancias de la base de datos tengan los mismos datos a los pocos segundos de realizarse
un cambio.

 Replicación de mezcla: los datos de dos o más bases de datos se combinan en una sola
base de datos. En primer lugar se envía una copia completa de la base de datos. Luego el
Sistema de Gestión de Base de Datos va comprobando los cambios que van apareciendo
en los distintos nodos y a una hora programada o a petición los datos se sincronizan. Es
sobre todo útil cuando cada nodo suele utilizar solo los datos que se actualizan allí pero que
por circunstancias necesita tener también los datos de los otros sitios.

3 Beneficios de la replicación de base de datos


La replicación te puede ofrecer grandes beneficios relacionados principalmente con el
rendimiento, disponibilidad y seguridad de los datos.

1. Aumento de la fiabilidad: mediante la replicación de base de datos a través de


múltiples servidores, te aseguras que los datos van a estar disponibles incluso en el caso
de que una de las máquinas tenga un fallo grave de hardware. El sistema distribuido de
gestión de bases de datos debe ser capaz de enrutar a los usuarios afectados a otro de
los nodos disponibles.
2. Mejora en el rendimiento: al estar los datos distribuidos en diferentes servidores, los
múltiples accesos no saturan los servidores. Esto es importante sobre todo en el caso de
aplicaciones que pueden tener miles o cientos de miles de peticiones simultáneas. El
rendimiento de las aplicaciones aumenta notablemente.
3. Mejora en la seguridad de los datos: en un sistema transaccional tradicional, todas las
actualizaciones de una base de datos se guardan en un mismo disco. La seguridad de tus
datos queda entonces en manos de la estrategia de copias de seguridad que tengas
implementada en ese servidor. Con la replicación de base de datosaumentas la
seguridad de los datos ya que las actualizaciones están siendo escritas en varios
servidores. Es decir, varios discos, varias fuentes de alimentación, CPU’s, etc. son
utilizadas para asegurar que tus datos estarán a salvo en algunos servidores, aunque
pueda ocurrir un desastre en otros.
En definitiva la replicación de base de datos se utiliza para propagar los datos en entornos
de base de datos distribuidas de forma que se mejora la confiabilidad y el rendimiento de las
aplicaciones que la utilizan. Tienes diferentes tipos de replicación de base de datos que
puedes utilizar. El escoger uno u otro dependerá de la naturaleza y utilización de los mismos.

Vous aimerez peut-être aussi