mysql replication repairing script

mysql replication repairing script

Ah je ne vous ai pas montré le script pour réparer ma réplication mysql  :
à lancer sur le backup qui a foiré.
* copie fichier de la base à froid
* on trouve à quel redo/pos on peut reprendre (c’est là l’astuce)
* après y a plus qu’à refaire la conf de réplication

#####my_repl_bk2rp.sh
 
#!/bin/sh
echo "quand la repl. foire, faire repartir de zero"
echo "copie le bk vers la replication, ok?"
read "ok"
 
/etc/init.d/mysqld stop
 
#merci à www.rsnapshot.org génial
rsync -e ssh -va --delete serveurdesauvegarde:/backup/hourly.0/mysql /home/
#replay, just to be sure...
rsync -e ssh -va --delete serveurdesauvegarde:/backup/hourly.0/mysql /home/
 
/etc/init.d/mysqld start
 
cd /repertoire/mysql
 
lastredo=$(tail -n 1 redo*.index|sed -e 's:^.*/::')
 
lastredopos=$(mysqlbinlog $lastredo|grep end_log_pos|tail -n 1|sed -e 's/^.*end_log_pos *//' -e 's/ .*$//')
 
mysql -pmotdepasseenclair <
CHANGE MASTER TO \
MASTER_HOST='masterserver', \
MASTER_USER='slave', \
MASTER_PASSWORD='passduuserslave', \
MASTER_LOG_FILE='$lastredo', \
MASTER_LOG_POS=$lastredopos;
START SLAVE;
EOT
 
tail /var/log/mysqld.log
sleep 1
echo "my_repl_check.sh"
mysql -u root -pmotdepasse <
 
show slave hosts \G;
show slave status \G;
show master status \G;
EOT

et ça marche !!
quand on perd la réplication, on galère pour retrouver comment on fait pour la rebrancher,
surtout avec le stress, t le risque de perdre encore plus. pff. chouette script, merci moi-même.

Pocket