Mon script de backup de MySQL
Un petit outil pour les administrateurs de MySQL! Comme vous le savez peut-être, plusieurs engins de bases de données sont disponibles sous MySQL, mais la prise de copies des tables créées avec ceux-ci peuvent se trouver problématiques. Il est donc impossible de faire un backup des tables InnoDB avec mysqlhotcopy sans risquer de perdre des données.
La solution me semble donc de faire un backup logique, ce qui dans mon cas n'est pas beaucoup plus long (123 secondes plutôt que 88), ce qui permet aussi de prendre en backup n'importe quel engin de base de données sous MySQL.
Voici donc le-dit script :
#!/bin/bash
echo
echo _______________________________________________________________________
echo
echo `date +%T` : Backup des bases de donnees MySQL
echo _______________________________________________________________________
echo
mkdir /tmp/backup_sql/
chmod 0777 /tmp/backup_sql/
find /var/lib/mysql/* -type d | awk -F "/" '{ print $5 }' > /tmp/dblist.$$
for i in `cat /tmp/dblist.$$`
do
echo `date +%T` : Backup de $i
mysqldump --single-transaction --flush-logs --master-data=2 -B --delete-master-logs $i > /tmp/backup_sql/$i.sql
done
rm -Rf /tmp/dblist.$$
tar -czf /path/to/backup.tgz /tmp/backup_sql
rm -Rf /tmp/backup_sql
echo `date +%T` : Fin