Configurar replicación nativa de MySQL en varios servidores

Los pasos para configurar la replicación de MySQL no eran muy complicados, ¿recuerdas Configurar replicación en MySQL?

Ahora si quisieramos que la replicación se haga en varios servidores. Básicamente la historia es la misma en cuanto a la creación de usuarios y los seteos para el log binario.

¿Qué cambia? ¿Que debo agregar? ¿Que recaudos debo tomar?

Vayamos por parte:

  • ¿Que cambia? nada, simplemente tendremos más archivos a modificar (/etc/my.cnf)
  • ¿Que debo agregar? además de los seteos clásicos con el host, usuario y contraseña del “master”, agregaremos algunas opciones para tomar ciertos recaudos
  • ¿Que recaudos debo tomar? lo principal viene dado por los campos auto incrementales, donde se recomienda modificar las opciones de desplazamiento (auto-increment-increment) y valor de los autoincrementales (auto-increment-offset). Finalmente, también es fundamental seter en 0 la variable replicate-same-server-id para evitar loops infinitos.

Asumiendo que tenemos resuelto el tema de los usuarios y configurados los logs binarios, esto es lo que deberiamos hacer para configurar la replicación nativa en un total de cuatro servidores:

replicacion

  • Servidor 1
    • Modificar el archivo /etc/my.cnf
[]
[mysqld]
server-id = 1
replicate-same-server-id = 0
auto-increment-increment = 4
auto-increment-offset = 1

master-host = 192.168.0.4
master-user = usuario_slave_para_s1
master-password = password_usuario_slave_para_s1
master-connect-retry = 60
replicate-do-db = example
[]

  • Reiniciar el servidor

En Linux:/etc/init.d/mysql restart

  • Servidor 2
    • Modificar el archivo /etc/my.cnf
[]
[mysqld]
server-id = 2
replicate-same-server-id = 0
auto-increment-increment = 4
auto-increment-offset = 2

master-host = 192.168.0.1
master-user = usuario_slave_para_s2
master-password = password_usuario_slave_para_s2
master-connect-retry = 60
replicate-do-db = example
[]

  • Reiniciar el servidor

En Linux:/etc/init.d/mysql restart

  • Servidor 3
    • Modificar el archivo /etc/my.cnf
[]
[mysqld]
server-id = 3
replicate-same-server-id = 0
auto-increment-increment = 4
auto-increment-offset = 3

master-host = 192.168.0.2
master-user = usuario_slave_para_s3
master-password = password_usuario_slave_para_s3
master-connect-retry = 60
replicate-do-db = example
[]

  • Reiniciar el servidor

En Linux:/etc/init.d/mysql restart

  • Servidor 4

    • Modificar el archivo /etc/my.cnf
[]
[mysqld]
server-id = 4
replicate-same-server-id = 0
auto-increment-increment = 4
auto-increment-offset = 4

master-host = 192.168.0.3
master-user = usuario_slave_para_s4
master-password = password_usuario_slave_para_s4
master-connect-retry = 60
replicate-do-db = example
[]

  • Reiniciar el servidor

En Linux:/etc/init.d/mysql restart

Omitiremos el paso de igualar las bases de datos, pues daremos por supuesto que se encuentran igualadas o bien que se trata de una instalación de cero.

Vía: HowToForge

Más información en ONLamp.com

3 comentario en este artículoDeje el suyo
  1. Qué buena entrada Luciano, gracias porque a veces me da mucha flojera entrar en el howtoforge por aquello de tener que estar traduciendo jeje.

  2. Luciano,

    Esto es exactamente lo que estaba buscando, ya que necesito replicar datos en varios servidores.

    Muchas gracias por compartir esto con todos !!!

    Saludos

  3. Luciano,

    Que pasa si uno de los servidores (por X razon) deja de funcionar… y luego entra en produccion nuevamente, sera que se “sincroniza” o se actualizan todos los datos automaticamente?

    Saludos

Deje su comentario

Por favor, ingrese su nombre

Por favor, ingrese un correo-e válido

Por favor, ingrese su mensaje

luauf.com 2012

WordPress