J’ai cherché pendant quelques temps un moyen de sauvegarder proprement des bases de données MySQL, et j’ai trouvé mon bonheur avec AutoMySQLBackup.

Il s’agit d’un script (gratuit) qui permet de sauvegarder MySQL de façon récurrente en séparant les bases par fichiers, et en gardant des versions hebdomadaires, mensuelles, etc. Les fichiers obtenus sont directement compressés afin d’optimiser au maximum l’espace disque consommé. Il est possible de sauvegarder une ou plusieurs bases en particulier, ou alors toutes les bases du serveur.

Pour modifier les paramètres (connexion à la base de données, options, etc.), il suffit d’éditer le script (voir ci-dessous).

Automysqlbackup : script de sauvegarde pour MySQL

Et si vous voulez sauvegarder plusieurs serveurs de bases de données, pas de panique, il suffit d’avoir une version du script par serveur.

Enfin, pour une exécution régulière, il faut bien sûr le planifier avec crontab. Le résultat de chaque sauvegarde peut être envoyé par mail, sous la forme suivante :

Backup of Database Server – mysqlserver
======================================================================
Backup Start Time Wed Oct 27 20:45:01 CEST 2010
======================================================================
Daily Backup of Database ( information_schema )
Rotating last weeks Backup…
removed `/backups/mysql4/daily/information_schema/information_schema_2010-10-20_20h45m.Wednesday.sql.gz’

Backup Information for /backups/mysql4/daily/information_schema/information_schema_2010-10-27_20h45m.Wednesday.sql
compressed uncompressed ratio uncompressed_name
475 1232 67.0% /backups/mysql4/daily/information_schema/information_schema_2010-10-27_20h45m.Wednesday.sql
———————————————————————-
Daily Backup of Database ( cacti )
Rotating last weeks Backup…
removed `/backups/mysql4/daily/cacti/cacti_2010-10-20_20h45m.Wednesday.sql.gz’

Backup Information for /backups/mysql4/daily/cacti/cacti_2010-10-27_20h45m.Wednesday.sql
compressed uncompressed ratio uncompressed_name
171349 645053 73.4% /backups/mysql4/daily/cacti/cacti_2010-10-27_20h45m.Wednesday.sql
———————————————————————-
Backup End Wed Oct 27 20:45:20 CEST 2010
======================================================================
Total disk space used for backup storage..
Size – Location
140M /backups/mysql4

Vous, vous faites comment pour sauvegarder MySQL ?