Tiempo atrás ya habiamos configurado la replicación en MySQL y también hemos visto algun script para realizar backups con mysqldump. Ahora, realizar un backup con la replicación ejecutándose nos traería una pequeña modificación en nuestro script de backup, pues sería conveniente detener temporalmente la replicación e inicializandola nuevamente luego de haber realizado el backup.

Para detener la replicación, necesitamos acceder al prompt de MySQL (o desde cualquier otro cliente MySQL) y ejecutar el comando STOP SLAVE (con el usuario root o con cualquier otro usuarios con privilegios SUPER)

mysql> STOP SLAVE;

Cuando se detiene la replicación, el servidor esclavo se queda con la última posición del log del servidor maestro recibida, por lo tanto al volver a iniciarla, arranca desde la misma. Para reiniciar la replicación, tal como hicimos para deternerla, ejecutamos la instrucción START SLAVE.

mysql> START SLAVE;

Ahora, si nuestra intención es ejecutar esto de manera automátizada sin intervención del usuario (como generalmente se hacen las tareas de backups) debemos ejecutar las instrucciones STOP SLAVE y START SLAVE a través del utilitario mysqladmin antes y después del mysqldump. Partiendo del script publicado anteriormente, nuestro script quedaría así:

#!/bin/bash
USER=nombre
PASS=clave

<strong>mysqladmin --user=$USER --password=$PASS stop-slave</strong>

for db in `echo "show databases" | mysql -u $USER -p $PASS | grep -v ^mysql$ | grep -v ^Database$`;
do
#un archivo por base de datos
mysqldump --add-drop-table --routines -u $USER -p $PASS ${db}&gt; ${i}.sql;

#un unico archivo para todo el servidor de base de datos
mysqldump --add-drop-table --routines -u $USER -p $PASS ${db}&gt;&gt; ${HOSTNAME}.sql;
done

<strong>mysqladmin --user=$USER --password=$PASS start-slave</strong>

Via: LinuxTotal