Activar la réplica de la Mysql de Zabbix

Os pongo los pasos para montar una réplica de la bbdd con dos objetivos, el primero es tener una copia actualizada en real-time por si la bbdd master sufriera algún contratiempo.

El segundo objetivo, y no menos importante, es que cuando hacemos un dump y lo volcamos se optimiza el espacio libre en mysql y se puede liberar una gran cantidad de espacio en disco.

PASOS:
============================================
Modificar en el master /etc/mysql/my.cnf añadiendo estas líneas:

server-id=1
binlog-format = mixed
log-bin=mysql-bin
datadir=/var/lib/mysql
innodb_flush_log_at_trx_commit=1
sync_binlog=1

Reiniciamos el servicio de mysql en el master.
Creamos un usuario en servidor master para que pueda accer a la réplica

CREATE USER replicant@<<slave-server-ip>>;
GRANT REPLICATION SLAVE ON *.* TO replicant@<<slave-server-ip>> IDENTIFIED BY ‘<<choose-a-good-password>>’;

Realizamos un backup de la bbdd del master:

mysqldump –skip-lock-tables –single-transaction –flush-logs –hex-blob –master-data=2 -A > ~/dump.sql

Cuando acaba tenemos que ver los valores MASTER_LOG_FILE y MASTER_LOG_POS ya que luego arrancaremos el slave con ellos.

head dump.sql -n80 | grep “MASTER_LOG_POS”

transferimos el backup al servidor slave

scp ~/dump.sql.gz mysql-user@<<slave-server-ip>>:~/

Añadimos las siguientes líneas en el /etc/mysql/my.cnf del servidor SLAVE:

server-id = 101
binlog-format = mixed
log_bin = mysql-bin
relay-log = mysql-relay-bin
log-slave-updates = 1
read-only = 1

Reiniciamos el slave y cargamos la copia en la bbdd:

mysql -u root -p < ~/dump.sql

Añadimos la configuración del server master en la bbdd del SLAVE y arrancamos el servicio de slave:

CHANGE MASTER TO MASTER_HOST='<<master-server-ip>>’,MASTER_USER=’replicant’,MASTER_PASSWORD='<<s lave-server-password>>’, MASTER_LOG_FILE='<<value from above>>’, MASTER_LOG_POS=<<value from above>>;
START SLAVE;

Para chequear que todo es correcto:
SHOW SLAVE STATUS \G

Si todo es correcto el valor “Last_Error” debe estar en blanco
Cuando el valor Slave_IO_State aparezca “Waiting for master to send event” y el “Seconds_Behind_Master” indique que está a “0” indicará que está la réplica 100% correcta y sin delays.

Si tenemos problemas en la réplica (por ejemplo si hemos tocado un campo en el server slave) podemos decir que se salte el error así:
STOP SLAVE;SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;START SLAVE;

Y con eso tenemos una mysql replicada, con un downtime del servidor master menor a 1 minuto (lo que tarda en reiniciar el servicio de mysql) y muy controlable /limpio
Espero que os sirva!
Saludos!

Anuncios

3 thoughts on “Activar la réplica de la Mysql de Zabbix

  1. Tengo una consulta, mi escenario es el siguiente: tengo un servidor donde se aloja la aplicación y web de zabbix y otro donde está la BD, como es de suponer la configuración de la aplicación y web apuntan a la IP de la BD de Zabbix. Por lo que entiendo en tu publicación es que debo adicionar un servidor de BD, si esto es así, la aplicación zabbix a cual de las IP debería apuntar?

    Saludos desde Perú.

    Me gusta

    1. Buenas tardes,
      Lo primero pedirte disculpas por el retraso en contestar, llevo una época de locos en el trabajo 🙂
      La replicación es siempre a nivel de BBDD, no de Frontend (apache) ni de el proceso de zabbix server.
      Seguiras teniendo la aplicación apuntando a la misma bbdd que actualmente usas, con la ventaja de tener una BBDD de respaldo por si algún día surgen problemas y tienes que arrancar en otra localización.

      Por tanto lo que vas a tener replicado según el post es solamente la BBDD, que ya es bastante porque con ella puedes montar un zabbix de respaldo en menos de 10 minutos (contando el tiempo de compilación).
      Voy a hacer un pequeño post de cómo replicar tanto el frontend como los directorios de configuración, espero que te sirva.
      Gracias por leer.

      Me gusta

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s