Replicación Maestro – Esclavo MySQL Server

Existen diversos esquemas de replicación de bases de datos en MySQL, su utilización es diversa pero se podría decir que lo más común es que se la utilice para garantizar la disponibilidad de la base de datos ante grandes volúmenes de carga. En esta oportunidad analizaremos el esquema de replicación Maestro – Esclavo.

mysql_replicacion

La replicación Maestro – Esclavo es útil cuando nosotros necesitamos realizar operaciones de selección, inserción, actualización y eliminado en el Master, mientras que el servidor Esclavo esta destinado principalmente a realizar operaciones de selección. Si realizamos cualquier otra operación estas no serán replicadas en el Maestro, cosa que si ocurre a la inversa.

Para el siguiente ejemplo utilizaremos unicamente un servidor Maestro y otro Esclavo, pero fácilmente se podría tener n Esclavos.

Servidor Maestro

Editar el archivo de configuración /etc/my.cnf de tal forma que sea similar a lo siguiente:

vim /etc/my.cnf
log-bin=mysql-bin
 server-id=1
 replicate-do-db=NOMBRE_BDD
 binlog-do-db=NOMBRE_BDD

Reiniciar el servicio

service mysqld restart

Mediante un cliente mysql, puede ser desde el cliente consola o phpmyadmin creamos un usuario con privilegios de replicación de la siguiente manera:

CREATE USER 'usuario'@'host' IDENTIFIED BY 'clave';
 GRANT REPLICATION SLAVE ON nombre_bdd.* TO 'usuario'@host' IDENTIFIED BY 'clave';

Obviamente debemos reemplazar por los valores adecuados, el nombre de usuario, clave, host, base de datos. Ejecutamos desde la misma consola:

FLUSH TABLES WITH READ LOCK;
 SHOW MASTER STATUS;

Veremos una tabla similar a la siguiente:

+------------------+----------+---------------+------------------+
| File             | Position | Binlog_Do_DB  | Binlog_Ignore_DB |
+------------------+----------+---------------+------------------+
| mysql-bin.000001 |       98 | dbmydnsconfig |                  |
+------------------+----------+---------------+------------------+

Debemos recordar los valores, para utilizarlos posteriormente. Finalmente ejecutamos:

UNLOCK TABLES;

En el Servidor Esclavo.

Editamos el archivo de configuración:

vim /etc/my.cnf

Agregamos lo siguiente con el fin de tener algo similar a:

server-id=2
 replicate-do-db=NOMBRE_BDD
 binlog-do-db=NOMBRE_BDD
 replicate-ignore-db = mysql
 replicate-wild-do-table=NOMBRE_BDD.%

En este caso note que he especificado que no se replique la base de datos mysql. Ejecutamos desde el cliente de MySQL:

CHANGE MASTER TO
 MASTER_HOST='host',
 MASTER_USER='usuario',
 MASTER_PASSWORD='clave',
 MASTER_PORT=3306,
 MASTER_LOG_FILE='mysql-BIN.000001',
 MASTER_LOG_POS=98;

Recuerden cambiar los valores por el correspondiente indicado al ejecutar en el Maestro SHOW MASTER STATUS. Finalmente ejecutamos

START SLAVE;

Y deberíamos tener funcionando el esquema de replicación Maestro – Esclavo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Blue Captcha Image
Refrescar

*