Sauvegarde bases de données MySQL
Script shell de sauvegarde des bases de données MySQL
La stratégie de sauvegarde des informations est primordiale. On a tendance à la négliger et on y pense après la première perte d’information. Voici en détail mon script de sauvegarde de mes bases de données MySQL.
La sauvegarde d’une base de donnée avec MySQL est relativement simple avec la commande ‘mysqldump’. Faire un script qui sauvegarde tous les jours une base ne pose pas de problème, mais faire un script qui sauvegarde toutes les bases est déjà plus contraignant. Il faut maintenir à jour la liste des bases à sauver et s’il y a bien un truc qu’on oublie une fois que c’est en place, ce sont les outils de sauvegarde qui sont en place.
Cela peut devenir très simple si vous utilisez MySQL grâce à la requête ‘show databases’ qui retourne la liste de toutes les bases existantes sur votre serveur MySQL.
Il ne reste plus qu’a boucler sur le résultat pour construire en dynamique la commande ‘mysqldump’. Il faudra juste penser a exclure les bases ‘information_schema’, ‘mysql’ et ‘Database’ qui sont utilisées en interne par le serveur MySQL et qui n’ont pas vraiment besoin d’être sauvegarder.
Pour faire mes sauvegardes, j’ai créé un utilisateur spéciale, qui n’a que les droits ‘Select’ et ‘Lock Tabe’ sur toutes les bases. ‘Lock table’ est nécessaire à l’exécution d’un dump.
Et voilà! Un dump de chaque base de donnée sera mis dans le dossier /home/backup/sql
Il ne reste plus qu’a appelé le script via un cron:
Ajouter la ligne suivante pour une sauvegarde journalière à minuit une.
Au cas où, voici la ligne de commande qui permet de remettre un dump dans mysql. Vous noterez que l’on n’utilise pas la commande ‘mysqldump’.
Bien entendu pensez à remplacer saveLogin, savePassword et éventuellement le chemin où stocker vos fichiers.
Il ne reste plus qu’a copier les fichiers sur une autre machine, mais ce sera le sujet d’un prochain article.
Commentaires récents