PgBackRest
pgBackRest est une solution robuste et performante de sauvegarde et de restauration pour PostgreSQL. Elle a été conçue pour répondre aux besoins des environnements de production modernes, en mettant l’accent sur la fiabilité, la performance, la sécurité et la facilité d’utilisation.
TP : LANCEMENT D'UNE SAUVEGARDE FULL PGBACKREST
PgBackRest est un outil de sauvegarde et de restauration pour PostgreSQL. Il est conçu pour offrir une gestion robuste, fiable et performante des sauvegardes de bases de données PostgreSQL, en particulier pour les environnements de production.
Objectif : Nous allons provisionner deux machines virtuelles, sur lesquelles nous allons installer PostgreSQL et PgBackRest. Effectuer des modifications sur l’instance 2 et restaurer l’instance 1 avec les données de l’instance 2.
Il faut : installer Vagrant et VirtualBox puis provisionner deux VM sur lesquelles seront installées PostgreSQL et PgBackRest.
Provisionnement
apt-get install postgresql postgresql-client -y
Installation de PgBackRest
apt-get install pgbackrest -y
Configuration
repo1-path=/var/lib/pgbackrest
repo1-retention-full=2
log-level-console=info
log-level-file=error
[main]
pg1-path=/var/lib/postgresql/14/main
✅ [global] – Paramètres communs à toutes les instances PostgreSQL gérées repo1-path=/var/lib/pgbackrest
• Définit le chemin local où seront stockées les sauvegardes.
• Remarque : ce chemin doit être lisible/écrivable par l’utilisateur qui exécute pgbackrest (souvent postgres).
repo1-retention-full=2
• Indique que seules 2 sauvegardes FULL seront conservées.
• Lorsque tu exécutes une 3e sauvegarde full, la plus ancienne est supprimée automatiquement (ainsi que les incrémentales qui y sont rattachées).
• Aide à maîtriser l’espace disque.
log-level-console=info
• Affiche des logs de niveau info et supérieur dans la console.
• Tu verras des messages informatifs sur le processus de sauvegarde.
log-level-file=error
• Seuls les logs de niveau error et au-dessus sont enregistrés dans les fichiers de log.
• Réduction du volume de logs écrits sur le disque.
Création d'une stanza
Lancement de la sauvegarde FULL
⚠️ Un peuplement de la base est primordiale pour les vérifications post opérations, je ferais bientot un article sur comment peupler sa BDD.
La sauvegarde sera disponible dans le repo spécifié dans le pgbackrest.conf dans ce cas "/var/lib/pgbackrest".
Permissions et configuration de l’archivage
Si vous installez pgBackRest en tant que root, assurez-vous que le répertoire des logs est accessible à l'utilisateur postgres :
sudo chmod 750 /var/log/pgbackrest
Ces permissions permettent à pgBackRest de créer et gérer ses fichiers de log sans erreur.
Activer l'archivage WAL dans PostgreSQL
Pour que pgBackRest fonctionne correctement avec les sauvegardes, vous devez activer le mode d'archivage dans postgresql.conf :
archive_command = 'pgbackrest --stanza=your-cluster archive-push %p'
Vous pouvez également vérifier et modifier ce paramètre à l'aide de commandes SQL :
ALTER SYSTEM SET archive_mode TO 'on';
ALTER SYSTEM SET archive_command TO 'pgbackrest --stanza=main archive-push %p';
⚠️ Un redémarrage de PostgreSQL est nécessaire pour que les changements de configuration prennent effet.
Fonctionnalités Clés
- Sauvegarde et restauration complètes, incrémentielles et différentielles.
- Compression et chiffrement natifs pour la sécurité des données.
- Impact minimal sur les performances du serveur PostgreSQL.
- Parallélisation des sauvegardes et restaurations pour les grandes bases.
- Archivage continu des WAL (Write Ahead Logs) pour une restauration point-in-time.
- Intégration facile avec les solutions de haute disponibilité et de réplication.