PostgreSQL | sauvegardes automatisées
Automatiser et gérer les sauvegardes de PostgreSQL
Problématique
Lorsqu'on possède une base PostgreSQL installée sur une machine, il peut être utile (et recommandé) d'effectuer des sauvegardes régulièrement.
PostgreSQL fournit un ensemble d'outils pour effectuer ces opérations. Cependant, il s'agit d'outils bruts. Il manque quelques opérations de gestion et d'organisation des sauvegardes.
Solution
Rien ne vaut un petit script UNIX afin de parfaire, de faciliter et d'automatiser les sauvegardes, grâce aux outils vacuumdb, pg_dump et psql.
Le script est téléchargeable ici.
Configuration
Ouvrir lescipt et définir le serveur et l'utilisateur (variables SERVER_IP et USER) et éventuellement le répertoire de sauvegarde (BACKUP_DIR).
Vérifier les chemin des binaires psql, pg_dump et vacuumdb.
Puis enregistrer et vérifier que le script soit bien exécutable.
Usage
On peut utiliser 3 options :
-a : sauvegarde de toutes les bases de données
-d + base de données : sauvegarde d'une base de données spécifique
-r + durée : durée de rétention (en jours)
Sans cette option, la durée de rétention est fixée à 30 jours.
Exemples
Sauvegarde de toutes les bases avec une durée de rétention de 45 jours :
pgsql_dump.sh -r 45 -a
Sauvegarde de la base mabase
avec une durée de rétention de 25 jours :
pgsql_dump.sh -r 25 -d mabase
Sauvegarde de la base mabase
avec une durée de rétention de 25 jours et de la base tabase
avec une durée de rétention de 35 jours :
pgsql_dump.sh -r 25 -d mabase
pgsql_dump.sh -r 35 -d tabase
Automatisation
Il ne reste plus qu'à l'exécuter régulièrement avec cron.