Ce cours permet d’apprendre les techniques de sauvegarde/restauration dans le monde PostgreSQL, et les outils correspondants. Vous saurez à la fin de ce cours choisir et mettre en œuvre la stratégie qui correspond le mieux à vos besoin.
Ce cours s’adresse aux DBA PostgreSQL désireux de mettre en œuvre une stratégie de sauvegarde/restauration de leurs serveurs PostgreSQL afin de pouvoir faire face aux menaces de perte de leurs données et de répondre aux exigences du service demandé.
Plan détaillé
Introduction et rappels
- Historique et versions.
- Fonctionnement du serveur PostgreSQL.
- Journal de transactions (WAL), points de synchronisation.
- Introduction au problème de la sauvegarde, les points clés.
- RPO (Recovery Point Objective).
- RTO (Recovery Time Objective)
- Mode d’archivage continu, paramètre wal_level.
- Utilisation de pg_recievewal.
- Validation synchrone/asynchrone.
Travaux pratiques : Configuration du serveur PostgreSQL en mode d’archivage continu, utilisation de pg_recievewal.
Sauvegarde logique et techniques annexes
- Utilisation de la commande pg_dump.
- Niveuax de sauvegarde : base, schémas, tables.
- Différents formats de sauvegarde : plain, tar, custom, directory.
- Parallélisation et compression des sauvegardes.
- Utilisation de pg_dumpall et sauvegarde des objets globaux.
- Gestion des sauvegardes logiques par pg_back.
- Restauration d’une sauvegarde logique : pg_restore.
- Déplacement et migration de données et utilisation pgloader.
Travaux pratiques : utilisation de pg_dump, pg_dumpall, pg_back, pg_restore.
Sauvegarde physique de PostgreSQL
- Fichiers et répertoires d’un serveur PostgreSQL.
- Outils et commandes utiles : tar, cpio, rsync.
- Optimisation des sauvegardes avec rsync.
- Commandes pg_waldump, pg_resetwal.
- Sauvegarde physique en mode d’archivage continu.
- Sauvegarde à froids vs. sauvegarde à chaud.
- Fonctions pg_start_backup()/pg_stop_backup().
- Modes de sauvegarde : exclusif, non exclusif.
- Sauvegarde en utilisant les snapshots du système de fichiers.
- Clonage d’un serveur PostgreSQL par pg_basebackup.
- Préparation et différents formats utilisables.
- Restauration/récupération d’une sauvegarde physique.
- Restauration des fichiers WAL.
- Paramétrage de la récupération.
- Déroulement de l’opération.
- Récupération partielle (PITR : Point In Time Recovery).
- Trouver le point cible.
- Timeline et récupération.
- Points de restauration et fonction pg_create_restore_point().
- Déroulement d’une opération PITR, fonction pg_wal_replay_resume(), paramètre recovery_target_action.
Travaux pratiques : Utilisation de rsync, sauvegarde à froid, sauvegarde à chaud, Utilisation de pg_basebackup, récupération, récupération partielle (PITR).
Utilisation de pgBackRest/BARMAN
- Utilisation de pgBackRest.
- Prérequis, installation, configuration.
- Sauvegardes complètes (full), incrémentales.
- Gestion des sauvegardes, rétention/purge.
- Restauration/récupération.
- Utilisation de BARMAN (Backup And Recovery MANager).
- Prérequis, installation, configuration.
- Sauvegardes complètes (full), incrémentales.
- Gestion des sauvegardes, rétention/purge.
- Restauration/récupération.
Travaux pratiques : Sauvegarde/restauration/récupération avec pgBackRest ou BARMAN.