0% encontró este documento útil (0 votos)
25 vistas

Replicación en MySQL

Este documento describe cómo configurar la replicación maestro-esclavo en MySQL. Explica los pasos para configurar el servidor maestro, como descomentar líneas en el archivo my.cnf para permitir la replicación, crear un usuario replicación y bloquear la base de datos. Luego genera un archivo SQL de la base de datos y lo copia al servidor esclavo. Finalmente, explica cómo configurar el servidor esclavo modificando su archivo my.cnf para apuntar al maestro, y reiniciar la replicación.

Cargado por

Sivoz Desarrollo
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
25 vistas

Replicación en MySQL

Este documento describe cómo configurar la replicación maestro-esclavo en MySQL. Explica los pasos para configurar el servidor maestro, como descomentar líneas en el archivo my.cnf para permitir la replicación, crear un usuario replicación y bloquear la base de datos. Luego genera un archivo SQL de la base de datos y lo copia al servidor esclavo. Finalmente, explica cómo configurar el servidor esclavo modificando su archivo my.cnf para apuntar al maestro, y reiniciar la replicación.

Cargado por

Sivoz Desarrollo
Derechos de autor
© © All Rights Reserved
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 3

Replicación en MySQL

Configuración del Servidor Maestro

En el fichero /etc/mysql/my.cnf comentamos las siguientes lineas , sin importar el valor


que tengan asignado, para que el demonio del mysql pueda escuchar en las interfaces de
red :

# skip-networking
# bind-address = 127.0.0.1

Ubicamos en el mismo archivo la clasula [mysqld] , debajo de ella buscamos las lineas
siguientes:

# server-id = 1
# log_bin = /var/log/mysql/mysql-bin.log
# binlog_do_db = include_database_name
# binlog_ignore_db = include_database_name

Estas lineas debemos descomentarlas y modificarlas dependiendo de lo que vamos a


hacer, la primera es para identificar el servidor, en este caso el servidor maestro es el Nº
1, la segunda linea es la que indica la ruta donde almacenarán los logs, la tercera linea
es para indicar el nombre de la base de datos que se va a replicar y a la que el servidor
irá registrando en el archivo que pusimos en la ruta de la linea anterior y por ultimo en
la siguiente linea colocamos el nombre de la base de datos que no registraremos.
Además de modificar estos valores debemos agregar dos lineas más quedando todo este
código de la siguiente forma:

server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = NombreBaseDatosReplicar
binlog_ignore_db = mysql
low-priority-updates
innodb_flush_log_at_trx_commit=1

La ultima linea agregada innodb_flush_log_at_trx_commit, cuando este valor es 1


(predeterminado), cada vez que se confirma una transacción el buffer de registros (log
buffer) se graba en el fichero de registro y se vuelca a disco.
Ya con esto terminamos la edición del archivo my.cnf en el maestro, nos salimos del
editor y procedemos a reiniciar el servicio de mysql

/etc/init.d/mysql restart
service mysqld restart

Bloquear y Extraer Base de Datos


Crear Usuario
Procedemos ahora a crear un usuario que tendrá permisos para que el servidor esclavo
pueda conectarse a la base de datos del servidor maestro ( si ya tiene un usuario creado
con tal permisología en la base de datos también puede re-asignarle permisos para la
replica en el servidor esclavo). Para ello procedemos a entrar al shell del mysql como
root y dentro ejecutamos la sentencia de creación del usuario:

GRANT REPLICATION SLAVE ON *.* TO 'usuario'@'%' IDENTIFIED BY


'password';
FLUSH PRIVILEGES;

Bloquear Base de Datos


Para generar la replica de la base de datos estas deben quedar con la misma data , para
ello debemos bloquear cualquier registro nuevo que se vaya a generar mientras
realizamos el proceso, siendo así usamos la base de datos especifica y posteriormente la
bloquearemos, esto se realizará ejecutando lo siguiente:

use nombreBaseDatos;
FLUSH TABLES WITH READ LOCK;

mysql> GRANT REPLICATION PRIVILEGES ON *.bbdd TO


‘usuario_replicacion’@'192.168.0.3′ IDENTIFIED BY ‘pass_replicacion’;
mysql> flush privileges;
mysql> LOCK ALL TABLES READ ONLY

SHOW MASTER STATUS;

Extraer Datos
Es necesario exportar la base de datos para posteriormente importarla en el servidor
Esclavo, para ello usaremos el comando mysqldump con el cual generaremos un
archivo .sql , ejecutamos entonces en el terminal lo siguiente:

mysqldump -u root -p --opt nombreBaseDatosReplicar >


nombreBaseDatos.sql

Generado el archivo .sql lo copiamos en el servidor esclavo. Ahora solo queda


desbloquear la base de datos en el servidor maestro para que siga su normal
funcionamiento, entramos de nuevo en el shell de mysql como root y ejecutamos el
comando:

unlock tables;

Configuración de MySQL como esclavo


Ahora editaremos el archivo my.cnf del servidor esclavo con el fin de definir que este
servidor funcionará como esclavo y se le indicará quien es el servidor maestro, para ello
abrimos el archivo y buscamos la clausula [mysqld]y colocamos lo siguiente:

server-id = 2
master-host = ipServidorMaestro
master-user = usuarioCreado
master-password = usuarioPassword
master-connect-retry = 60
replicate-do-db = nombreBaseDatos

Guardamos los cambios realizados y reiniciamos el servicio de mysql , posteriormente


entramos como root al mysql y apagamos el servicio de esclavo ejecutando el siguiente
comando:

SLAVE STOP;
Inmediatamente procedemos a ingresar los datos del ip del servidor mysql maestro, los
datos del usuario y además usaremos los datos que anotamos cuando se procedió a
bloquear la base de datos, es decir , el nombre del archivo y la posición, esto lo hacemos
con la siguiente sentencia:

CHANGE MASTER TO MASTER_HOST='ipServidorMaestro',


MASTER_USER='usuarioCreado', MASTER_PASSWORD='usuarioPassword',
MASTER_LOG_FILE='archivo mysql-bin.xxxxx', MASTER_LOG_POS='Nº XX';

Para finalizar iniciamos nuevamente el esclavo y salimos del mysql:

START SLAVE;

También podría gustarte