Nothing Special   »   [go: up one dir, main page]

Replicacion MySQL Maestro

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 7

Replicacion MySQL maestro-esclavo

En este artculo vamos a continuar con la alta disponibilidad de


MySQL creando una sencilla arquitectura de replicacin maestro-
esclavo (master-slave). Nuestro sistema va a contar con dos
servidores MySQL, uno que har la funcin de maestro, que recibir
todos los !"#$ES de tablas y los enviar mediante un lo% binario a
otro servidor MySQL esclavo &'odramos 'oner tantos como
quisieramos(.
!artimos de la base que tenemos instalado MySQL en ambos
servidores, sino toca instalarlo como si de una instalacin estndar se
tratara &'or yum, com'ilando, 'or 'aquetes 'recom'ilados, etc(.
$ambi)n utili*aremos la base de datos world 'ara hacer 'ruebas,
dis'onible en+ htt'+,,do-nloads.mysql.com,docs,-orld.sql.*i'
.amos a utili*ar la si%uiente nomenclatura 'ara los hosts+
mysql-master
mysql-slave
Lo 'rimero que debemos saber a la hora de con/%urar los dos nodos
es que+
0. El servidor Master debe tener activado el lo% binario &log-bin(.
1. #mbos deben tener un identi/cador 2nico &server-id(.
3. El servidor maestro deber tener un usuario con 'rivile%io
REPL!"#$% SL"&E.
P'esta en marc(a del Master (mysql-master)
!ara activar el lo% binario, accedemos al /chero de con/%uracin
,etc,my.cnf y a4adimos lo%5bin dentro de la seccin 6mysqld7.
En la misma seccin 6mysqld7 debemos asi%nar un n2mero 2nico a
modo de identi/cador tanto al Master como al Slave, en este caso
asi%namos 0 al Master+
Master my.cnf+
[mysqld]
log-bin
server-id=1
8einiciamos el servidor maestro y veri/camos que los lo%s binarios se
han creado en el directorio de datos+
#ccedemos 'or shell a la consola MySQL y creamos el usuario con el
'rivile%io 8E!L9:#$9;N SL#.E, 0<1.0=>.0.01< es la 9! del servidor
esclavo+
#'rovechamos 'ara volcar la base de datos -orld sobre la que
haremos al%unas 'ruebas+
P'esta en marc(a del Slave (mysql-slave)
En la seccin 6mysqld7 del /chero de con/%uracin ,etc,my.cnf
debemos asi%nar el id 1 al Slave+
[mysqld]
server-id=2
8einiciamos el servidor MySQL esclavo+
mysql-master# /etc/init.d/mysqld restart

!opia inicial de la base de datos (directorio data)
#ntes de activar la re'licacin ambos servidores deben tener la
misma informacin &bases de datos( y en el mismo 'unto de
restauracin. Lo 'rimero que haremos antes de hacer la co'ia es
hacer un ?ush de las tablas y bloquear las escrituras, de este modo
'odemos hacer el @sna'shotA sin tener que a'a%ar el servidor MySQL.
$odo esto lo hacemos en el Master+
mysql-master> FLU! "#$L% &'"! (%#) L*+,-
#hora 'odemos hacer la co'ia de muchas formas, con mysqldum',
rsync de los datos, com'rimiendo el directorio de datos donde se
aloBan las bases de datos con .tar.%*, etc
na ve* reali*ado 'odemos volver a desbloquear las tablas, no sin
antes abrir una nueva shell de mysql y a'untar 'or un lado el /chero
de lo% binario que se est usando y la 'osicin en la que se ha
quedado 'ues ser la que se usar 'osteriormente 'ara comen*ar la
re'licacin en el esclavo+
#hora s que 'odemos desbloquearlas+
mysql-master> U.L*+, "#$L%-
Lle%a el momento de movernos al esclavo, lo 'rimero que debemos
hacer es ase%urarnos de 'arar la re'licacin en caso de que estuviera
activa+
mysql-slave> slave sto/-
01ery *,2 3 ro4s a55ected2 1 4arning 63.33 sec7
En este momento los datos del master que hemos com'rimido
tendramos que restaurarlos en la car'eta de datos del esclavo,
sim'lemente los descom'rimimos sobre la ruta ,var,lib,mysql o la que
ten%a vuestra instalacin.
#hora lle%a el momento clave, tenemos que indicarle al esclavo quien
es el servidor maestro y establacer la comunicacin. Es'eci/caremos
el hostname del master, el usuario creado anteriormente 'ara la
re'licacin, su clave, el /chero de lo% binario a utili*ar y su 'osicin.
8ecordad que esto 2ltimo lo hemos a'untado al hacer un SC;D
M#S$E8 S$#$SE
Lle%o el momento de arrancar la re'licacin, 'ara ello reactivamos el
esclavo+
mysql-slave> "#(" L#8%-
01ery *,2 3 ro4s a55ected 63.31 sec7
Revisar el estado de la replicacin
na ve* 'uesta en marcha la re'licacin, deberan eFistir unos
'rocesos concretos tanto en el master como el slave. En el master
debera a'arecer una coneFin del servidor esclavo con el usuario
usado en la re'licacin es'erando a recibir actuali*aciones a trav)s
del bin5lo%+
G el slave debera tener dos coneFiones relacionadas con la
re'licacin, un thread SQL y otro de 9,; relacionado con las lecturas
de relay lo%+
Monitori)acin de la replicacin
#hora que ya tenemos la re'licacin funcionando tenemos que
conocer la forma de monitori*ar su funcionamiento, el comando ms
im'ortante lo 'odemos eBecutar en el esclavo &SC;D SL#.E S$#$S(,
nos indicar el estado detallado de la re'licacin+
Los 'untos ms im'ortantes+
Slave*$*State+ Monitori*a el estado del servidor esclavo
res'ecto al master, en este caso est es'erando a recibir
eventos &actuali*aciones del lo% binario 'or 'arte del master.
Master*log*+ile+ Es'eci/ca el lo% binario en el servidor
maestro que se est utili*ando en la re'licacin.
Read*Master*Log*Pos+ 9ndica la 'osicin hasta la cual se ha
ledo del lo% binario del master, debera coincidir con la que nos
da el SC;D M#S$E8 S$#$S en el servidor maestro y con el
valor del 'armetro E,ec*Master*Log*Pos
Relay*Master*log*+ile+ Es'eci/ca el lo% binario en el servidor
esclavo que se est utili*ando en la re'licacin.
Slave*$*R'nning y Slave*SQL*R'nning+ Monitori*an si los
dos 'rocesos mencionados antes estn corriendo, los threads
9;H$C8E#" y SQLH$C8E#". Es crtico que ambos est)n siem're
corriendo.
Seconds*-e(ind*Master+ Este 'armetro 'uede ser un
indicativo claro de 'roblemas de car%a, conectividad de red,
etc. 9ndica el n2mero de se%undos de retardo res'ecto al
servidor maestro. Lo ideal, I.

Probando la replicacin
# 'artir de aqu 'odemos veri/car de una forma muy sencilla el
funcionamiento de la re'licacin. Si a4adimos, modi/camos o
borramos re%istros en una tabla de una base de datos del master
automticamente se re'licar en la slave. Si creamos una base de
datos en el master automticamente se crear en el slave, etc+
mysql5master+
Jueno, de momento esto 'odra ser su/ciente 'ara una 'rimera
a'roFimacin a la re'licacin maestro5esclavo de MySQL. En futuros
artculos si os resulta interesante 'odemos inda%ar y detalladar al%unas de
las cosas tratadas en el artculo y,o revisar otros ti'os de re'licacin, como
la circular, la de doble sentido, etc.
htt'+,,rm5rf.es,re'licacion5mysql5maestro5esclavo,

También podría gustarte