Contenu connexe Similaire à Comment sauvegarder correctement vos données (20) Comment sauvegarder correctement vos données2. © Copyright EnterpriseDB Corporation, 2020. All rights reserved.
2
Lætitia Avrot
• Senior Database Consultant chez EDB
• Contributrice Postgres
• Trésorière de PostgreSQL Europe
Qui suis-je ?
3. © Copyright EnterpriseDB Corporation, 2021. All rights reserved.
3
Ordre du jour
• Perte de données
• Exports logiques
• Standbys
• WALs et Recovery
• Snapshots VM/Disques
• Sauvegardes physique
• Conclusion
5. Robert Haas, VP, Chief Database Scientist chez EDB, 2019/09/23
Si l'Étoile de la Mort arrive et
fait subir à la Terre ce qu’elle a
fait à Alderaan, presque tout le
monde perdra des données.
6. © Copyright EnterpriseDB Corporation, 2021. All rights reserved.
6
• C’est impossible
• Essayons une autre approche
• Peut-on recréer les données/transactions perdues ?
• Combien coûte une perte de données d’une seconde/minute/heure/jour/semaine ?
• Combien de temps votre application peut-elle être arrêtée ?
• Combien de temps pouvez-vous vous permettre pour relancer la production ?
À propos de zéro perte de données...
À la recherche des licornes
7. © Copyright EnterpriseDB Corporation, 2021. All rights reserved.
7
RTO/RPO
Définir les contraintes
Recovery Time Objective Recovery Point Objective
“C’est un objectif de temps et de niveau
de service dans les limites duquel un
processus métier doit pouvoir être
restauré après un désastre ou une
interruption de service afin d'éviter des
conséquences inacceptables pour
l’entreprise.”
“Cet objectif est défini par le plan de
continuité d'activité. C’est la période
maximale pendant laquelle des données
(ou des transactions) peuvent être
perdues à la suite d’un incident majeur.”
Quotes from Wikipedia
8. © Copyright EnterpriseDB Corporation, 2021. All rights reserved.
8
• Corruption de données
• Panne de serveur
• Panne réseau
• Tout désastre massif (Feu, seisme, bombe, tsunami, tormade…)
• Personne supprimant les données (délibérément ou par erreur)
Scenarios de perte de données
10. © Copyright EnterpriseDB Corporation, 2021. All rights reserved.
10
• C’est un export des données dans un format qui peut être portable. C’est un snapshot des
données.
• Exemples:
• Fichiers csv
• Fichiers SQL
• Les outils Postgres recommandés sont pg_dump et pg_dumpall
Qu’est-ce qu’un export logique ?
11. © Copyright EnterpriseDB Corporation, 2021. All rights reserved.
11
La Perte de données entre le moment de l’export et le moment d'arrêt de la production
n’est pas un problème
Avoir une interruption de service durant les opérations de restauration et post-
restore(vacuum full analyze) n’est pas un problème
Vous jurez solennellement que vous testerez les opérations de restauration et post-restore
fréquemment
Quand un export logique suffit...
Toutes les conditions suivantes doivent être validées
12. © Copyright EnterpriseDB Corporation, 2021. All rights reserved.
12
Exemple:
• Vous exportez toutes les données à 3 heures tous les matins. L’import prend 2 heures. Les
opérations de post-restore durent 1 heure. Un incident a lieu à 15 heures.
• Quelles transactions seront perdues ? Quand la base de données sera-t-elle à nouveau
accessible ?
Quand un export logique suffit...
➔ Toutes les transactions entre 3:00 and 15:00 seront perdues.
➔ La base de données devrait être à nouveau disponible autour de 18:00, soit 3 heures
d’interruption de service.
13. © Copyright EnterpriseDB Corporation, 2021. All rights reserved.
13
Vérifier régulièrement que la perte de données reste dans des limites acceptables
Essayer régulièrement d’importer l’export généré pour vérifier que :
• Il n’est pas corrompu;
• La durée de la restauration est toujours acceptable;
• La durée des opérations post-restore est toujours acceptable.
Que faire si on n’utilise que des exports
logiques comme sauvegarde ?
14. © Copyright EnterpriseDB Corporation, 2021. All rights reserved.
14
Comment utiliser pg_dump/pg_restore
Exporter Importer
• Une base de données
pg_dump -h <host> -p <port> -U <user> <dbname>
• Au format SQL/Custom
pg_dump <connection options> -Fp/-Fc > export.sql/.dmp
• Une table/Un schema
pg_dump <connection options> -t/-n <name>
• Seulement la structure
pg_dump <connection options> -s
• SQL
psql <connection options> -f export.sql
• Format custom
pg_restore <connection options> export.dmp
pg_restore export.dmp > export.sql
• Une table/Un schema
pg_restore <connection options> -t/-n <name> export.dmp
• Seulement la structure
pg_restore <connection options> -s
16. © Copyright EnterpriseDB Corporation, 2021. All rights reserved.
16
• Une autre instance identique à la reine
• Standby physique
• Standby logique
• En perpetuel recovery (application des fichiers WAL)
• Ouverte en lecture seule ou pas
Qu’est-ce qu’une standby?
Aussi appelée replica physique, princesse/ouvrière, secondaire, tertiaire
17. © Copyright EnterpriseDB Corporation, 2021. All rights reserved.
17
Perdre certaines ou toutes les données n’est pas un problème
Exemple:
• Un ancien employé supprime la base de données.
• Un hacker infiltre le système et supprime la base de données.
• Le•a DBA supprime le répertoire PGDATA sur le primaire
au lieu du secondaire
Quand une standby suffit...
Toutes les conditions suivantes doivent être validées
➔ Toutes vos données
Combien de données
allez vous perdre ?
18. © Copyright EnterpriseDB Corporation, 2021. All rights reserved.
18
• Configurer la reine pour la réplication
• Faire une sauvegarde physique de la reine
• Restaurer la sauvegarde physique sur la princesse/l'ouvrière
• Configurer la princesse/l'ouvrière pour qu’elle ne se prenne pas pour une reine
• Démarrer la princesse/l'ouvrière
• Vérifier que la réplication fonctionne
Comment creer une standby ?
Etapes non detaillees
21. Les WALs un jour normal
Utilisateur
Instance
Mémoire
Processus
Fichiers de données
22. Les WALs un jour normal
Utilisateur
Instance
Mémoire
Processus
Fichiers de données
24. Les WALs un jour normal
Utilisateur
Instance
Mémoire
Processus
Fichiers de données
28. Recovery après un crash
Checkpoint
Instance
Mémoire
Processus
Fichiers de données
30. © Copyright EnterpriseDB Corporation, 2021. All rights reserved.
30
• Un ensemble de fichiers à un moment donné
• Snapshot Offline
• Snapshots Online
• Il intervient sur une couche en-dessous de la base de
données
Qu’est-ce qu’un snapshot de VM/disque ?
Un SGBDR peut à un moment donné avoir des fichiers
inconsistants sur disque. Vous devez vous souvenir de toujours
mettre l’instance en mode backup pour que le succès de votre
restore ne tienne pas à la chance. Vous devrez aussi archiver les
fichiers WAL.
VM
Storage
OS
Database
31. © Copyright EnterpriseDB Corporation, 2021. All rights reserved.
31
Vous comprenez vraiment ce que vous faites
Vous ne voulez pas d’une autre option
Vous jurez solennellement que vous testerez la restauration et le recovery fréquemment
Vous archiverez aussi les fichiers WAL entre le début du snapshot et maintenant
Quand un snapshot de VM/disque suffit...
Toutes les conditions suivantes doivent être validées
32. © Copyright EnterpriseDB Corporation, 2021. All rights reserved.
32
• Prendre le snapshot offline
• Prendre le snapshot online
• Faire pg_start_backup(‘label’, false, false) avant
• Faire pg_stop_backup(false, true)après
• Ne pas oublier les fichiers backup_label et tablespace_map
Quand l’instance est en mode backup, il est possible qu’elle génère plus de WALs
Comment faire des snapshots de VM/Disques
utilisables ?
34. © Copyright EnterpriseDB Corporation, 2021. All rights reserved.
34
• Sauvegarde physique offline
• Sauvegarde physique online
• Plusieurs outils
Qu’est-ce qu’une sauvegarde physique ?
C’est un ensemble de fichiers consistants ou inconsistants qui va permettre de recréer le cluster à
partir de rien.
• pg_basebackup
• Barman
• pgBackRest
• ...
Créer une sauvegarde à partir de laquelle
l'instance pourra faire un recovery est
complexe.
N’utilisez pas vos propres scripts!
35. © Copyright EnterpriseDB Corporation, 2021. All rights reserved.
35
Vous avez l’espace de stockage nécessaire
Vous pouvez vous permettre le temps de restauration et de recovery
Vous jurez solennellement que vous testerez la restauration et le recovery fréquemment
Vous archiverez tous les fichiers WAL entre la sauvegarde la plus vieille et maintenant
Quand une sauvegarde physique suffit...
Toutes les conditions suivantes doivent être validées
37. © Copyright EnterpriseDB Corporation, 2021. All rights reserved.
37
Comparons
Exports logiques Standbys
Snapshots de
VM/Disque
Sauvegardes
physiques
• Portable
• Granularite plus fine
• Disponible
facilement
• Disponible rapidement
• Perte de données
reduite
• Très bons outils
disponibles
• Perte de données
reduite
• Restauration lente
• Grande perte de
données
• Tout le cluster
• Enorme perte de
données
(potentielle)
• Tout le cluster
• Pas de gestion des
WAL
• Il faut encore faire le
recovery
• Peut entraîner des
désastres
• Tout le cluster
• Il faut encore faire le
recovery
• Restauration lente