Duplicar slave MySQL con Rsync

Actualizado el domingo, 19 junio, 2016

Existe la posibilidad de copiar los datos de un slave a otro, mediante rsync.

  • Slave1 (origen): CentOS 6.5 con Percona 5.5 Release rel29.3, Revision 388
  • Slave2 (destino): CentOS 6.5 con Percona 5.5 Release rel29.4, Revision 401

Detenemos Mysql

mysql> slave stop;

Detenemos los servicios mysql de ambos servidores:
mysql> show slave status\G;
Slave_IO_Running: No
Slave_SQL_Running: No
/etc/init.d/mysqld stop

Realizamos un backup de los datos del servidor destino (Slave2) simplemente renombrando la carpeta referente al dbpath:
slave2# mv /var/lib/mysql /var/lib/mysql.bkp

Desde el servidor origen, iniciamos rsync:
slave1# rsync -avprP -e ssh /var/lib/mysql/ root@10.0.0.22:/var/lib/

Hemos de asegurarnos de que el servidor de destino tenga las iptables abiertas para permitir la conexión ssh desde el servidor origen, así como que el usuario con el que conectamos con slave2 tenga permisos suficientes para la carpeta destino.
Cuando finalice la copia, modificas el propietario del nuevo directorio y inicias todos los servicios de nuevo, en ambos servidores.
slave2# chown mysql:mysql /var/lib/mysql -R
slave2# chmod 660 /var/lib/mysql/database/*
slave2# /etc/init.d/mysqld start
slave2 | mysql> start slave;
slave1# /etc/init.d/mysqld start
slave1 | mysql> start slave;

Para asegurarte que el nuevo slave esta corriendo, ejecuta:
master | mysql>  SHOW SLAVE HOSTS;

 

Agregar comentario