Mysql configurar una replicaci贸n maestro - esclavo 馃惉


Introduccion


La replicaci贸n de MySQL es un proceso que le permite mantener f谩cilmente m煤ltiples copias de datos de MySQL al copiarlos autom谩ticamente de una base de datos maestra a una esclava. Esto puede ser 煤til por muchas razones, incluida la preparaci贸n de una copia de seguridad de los datos, una forma de analizarla sin utilizar la base de datos principal o simplemente como un medio para escalar.

Este tutorial cubrir谩 un ejemplo muy simple de replicaci贸n de MySQL: un maestro enviar谩 informaci贸n a un solo esclavo. Para que el proceso funcione, necesitar谩 dos direcciones IP: una del servidor maestro y otra del esclavo.

Este tutorial usar谩 las siguientes direcciones IP:

10.132.152.60   - Base de datos maestra
10.132.130.91 - Base de datos de esclavos

Nota: ambos servidores deben tener mysql instalado

Primer paso: configurar la base de datos maestra

Abra el archivo de configuraci贸n de mysql en el servidor maestro.
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
Una vez dentro de ese archivo, debemos hacer algunos cambios.

El primer paso es encontrar la secci贸n que se ve as铆, vinculando el servidor al host local:
bind-address = 127.0.0.1

Reemplace la direcci贸n IP est谩ndar con la direcci贸n IP del servidor.

bind-address = 10.132.152.60
Buscamos y descomentamos estas lineas
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = wordpress
Despu茅s de realizar todos los cambios, contin煤e y guarde y salga del archivo de configuraci贸n.

Reiniciar MySQL.
sudo service mysql restart
Abre el shell MySQL.
mysql -u root -p

Necesitamos otorgar privilegios al esclavo. Puede usar esta l铆nea para nombrar a su esclavo y configurar su contrase帽a. El comando debe estar en este formato:
GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'password';

Ir a la par de:
FLUSH PRIVILEGES;
La siguiente parte es un poco quisquillosa. Para llevar a cabo la tarea, deber谩 abrir una nueva ventana o pesta帽a adem谩s de la que ya est谩 usando unos pasos m谩s adelante.

En su pesta帽a actual, cambie a "wordpress".
USE wordpress;
A continuaci贸n, bloquee la base de datos para evitar nuevos cambios:
FLUSH TABLES WITH READ LOCK;
Luego escribe:
SHOW MASTER STATUS;

Ver谩 una tabla que deber铆a verse m谩s o menos as铆:
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      107 | wordpress    |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
Esta es la posici贸n desde la cual la base de datos esclava comenzar谩 a replicarse. Registre estos n煤meros, ser谩n 煤tiles m谩s tarde.

Si realiza nuevos cambios en la misma ventana, la base de datos se desbloquear谩 autom谩ticamente. Por esta raz贸n, debe abrir la nueva pesta帽a o ventana y continuar con los pr贸ximos pasos all铆.

Continuando con la base de datos a煤n bloqueada, exporte su base de datos usando mysqldump en la nueva ventana (aseg煤rese de estar escribiendo este comando en el shell bash, no en MySQL).
mysqldump -u root -p --opt wordpress> wordpress.sql
Ahora, volviendo a su ventana original, desbloquee las bases de datos (haci茅ndolas escribibles de nuevo). Termine saliendo del caparaz贸n.
UNLOCK TABLES;
QUIT;
Ahora ya ha terminado con la configuraci贸n de la base de datos maestra.


Paso dos: configure la base de datos esclava

Una vez que haya configurado la base de datos maestra. Puede dejarlo de lado por un tiempo, y ahora comenzaremos a configurar la base de datos esclava.

Inicie sesi贸n en su servidor esclavo, abra el shell MySQL y cree la nueva base de datos que va a replicar del maestro (luego salga):
CREATE DATABASE wordpress;
EXIT;
Importe la base de datos que export贸 previamente de la base de datos maestra.
mysql -u root -p wordpress </path/to/wordpress.sql

Ahora tenemos que configurar la configuraci贸n del esclavo de la misma manera que lo hicimos con el maestro:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf


Tenemos que asegurarnos de tener algunas cosas configuradas en esta configuraci贸n. El primero es la identificaci贸n del servidor. Este n煤mero, como se mencion贸 antes, debe ser 煤nico. Como est谩 configurado en el valor predeterminado (todav铆a 1), aseg煤rese de cambiarlo.
server-id = 2
Despu茅s de eso, aseg煤rese de que tenga los siguientes tres criterios debidamente completados:
relay-log = /var/log/mysql/mysql-relay-bin.log
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = wordpress

Tendr谩 que agregar en la l铆nea de registro de retransmisi贸n: no est谩 all铆 por defecto. Una vez que haya realizado todos los cambios necesarios, guarde y salga del archivo de configuraci贸n del esclavo.

Reinicia MySQL una vez m谩s:
sudo service mysql restart
El siguiente paso es habilitar la replicaci贸n desde el shell de MySQL.

Abra el shell MySQL una vez m谩s e ingrese los siguientes detalles, reemplazando los valores para que coincidan con su informaci贸n:
CHANGE MASTER TO MASTER_HOST='10.132.152.60',MASTER_USER='slave_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=  107;
Este comando realiza varias cosas al mismo tiempo:

1.- Designa el servidor actual como el esclavo de nuestro servidor maestro.
2.- Proporciona al servidor las credenciales de inicio de sesi贸n correctas
3.- Por 煤ltimo, le permite al servidor esclavo saber d贸nde comenzar a replicar; el archivo de registro maestro y la posici贸n del registro provienen de los n煤meros que escribimos anteriormente.

Con eso, ha configurado un servidor maestro y esclavo.

Activar el servidor esclavo:

START SLAVE;
Puede ver los detalles de la replicaci贸n esclava escribiendo este comando. El \ G reorganiza el texto para hacerlo m谩s legible.
SHOW SLAVE STATUS\G

Si hay un problema al conectar, puede intentar iniciar el esclavo con un comando para omitirlo:
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;START SLAVE;







Comentarios

  1. Buenas tardes, muy buena su informaci贸n.
    Se puede convertir una base de datos esclavo a maestro?.
    Otra consulta dado el caso que el servidor maestro se da帽e y despu茅s de reparado hay que volver hacer los pasos de sus tutorial para tener el maestro - esclavo?.
    Gracias

    ResponderEliminar

Publicar un comentario

Facebook Like

Entri Populer

hackear wifi con kali linux 馃摗

Instalar Netbeans 10 en Windows 10

Instalar netbeans 10 en ubuntu 18.04