SlideShare une entreprise Scribd logo
1  sur  38
Comment
sauvegarder
correctement vos
données
Lætitia Avrot
Mars 2021 - Version 1.0
© 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 ?
© 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
Perte de
données
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.
© 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
© 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
© 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
Exports
logiques
© 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 ?
© 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
© 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.
© 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 ?
© 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
Standby
© 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
© 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 ?
© 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
WALs et
Recovery
Utilisateur
Instance
Mémoire
Processus
Fichiers de données
DML
Les WALs un jour normal
Les WALs un jour normal
Utilisateur
Instance
Mémoire
Processus
Fichiers de données
Les WALs un jour normal
Utilisateur
Instance
Mémoire
Processus
Fichiers de données
Commit
User
Les WALs un jour normal
Utilisateur
Instance
Mémoire
Processus
Fichiers de données
Les WALs un jour normal
Utilisateur
Instance
Mémoire
Processus
Fichiers de données
Commit
OK
Les WALs un jour normal
Utilisateur
Instance
Mémoire
Processus
Fichiers de données
Checkpoint
Les WALs un jour normal
Instance
Mémoire
Processus
Fichiers de données
Recovery après un crash
Instance
Mémoire
Processus
Fichiers de données
Recovery après un crash
Checkpoint
Instance
Mémoire
Processus
Fichiers de données
Snapshots de
VM ou de
disques
© 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
© 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
© 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 ?
Sauvegardes
physiques
© 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!
© 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
Conclusion
© 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
© Copyright EnterpriseDB Corporation, 2020. All rights reserved.
38
Des questions?

Contenu connexe

Tendances

Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Severalnines
 
Realtime Web avec Kafka, Spark et Mesos
Realtime Web avec Kafka, Spark et MesosRealtime Web avec Kafka, Spark et Mesos
Realtime Web avec Kafka, Spark et Mesos
ebiznext
 
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Christophe Laporte
 

Tendances (20)

Windows server2016 presentation
Windows server2016 presentation Windows server2016 presentation
Windows server2016 presentation
 
Hadoop
HadoopHadoop
Hadoop
 
SQLSaturday Paris 2014 - SQL Server AlwaysOn et les groupes de disponibilités...
SQLSaturday Paris 2014 - SQL Server AlwaysOn et les groupes de disponibilités...SQLSaturday Paris 2014 - SQL Server AlwaysOn et les groupes de disponibilités...
SQLSaturday Paris 2014 - SQL Server AlwaysOn et les groupes de disponibilités...
 
Webinar Degetel DataStax
Webinar Degetel DataStaxWebinar Degetel DataStax
Webinar Degetel DataStax
 
Haute disponibilité jss2012
Haute disponibilité jss2012Haute disponibilité jss2012
Haute disponibilité jss2012
 
Quelles stratégies de Recherche avec Cassandra ?
Quelles stratégies de Recherche avec Cassandra ?Quelles stratégies de Recherche avec Cassandra ?
Quelles stratégies de Recherche avec Cassandra ?
 
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
Performance de Percona XtraDB Cluster / Galera Cluster: Monitoring & Gestion ...
 
Realtime Web avec Kafka, Spark et Mesos
Realtime Web avec Kafka, Spark et MesosRealtime Web avec Kafka, Spark et Mesos
Realtime Web avec Kafka, Spark et Mesos
 
Introduction au nouveau moteur de workflow de Microsoft : Flow (Serge Luca)
Introduction au nouveau moteur de workflow de Microsoft : Flow (Serge Luca)Introduction au nouveau moteur de workflow de Microsoft : Flow (Serge Luca)
Introduction au nouveau moteur de workflow de Microsoft : Flow (Serge Luca)
 
DataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache CassandraDataStax Enterprise et Cas d'utilisation de Apache Cassandra
DataStax Enterprise et Cas d'utilisation de Apache Cassandra
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
Introduction à Apache Cassandra — IppEvent chez OVH 2017-03-02
 
Oracle Cluster Rac
Oracle Cluster RacOracle Cluster Rac
Oracle Cluster Rac
 
Apache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalitésApache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalités
 
Hi-Media Couchbase meetup Paris Nb #1
Hi-Media Couchbase meetup Paris Nb #1Hi-Media Couchbase meetup Paris Nb #1
Hi-Media Couchbase meetup Paris Nb #1
 
Meetup Docker Lyon janvier 2018 - Docker 101
Meetup Docker Lyon janvier 2018 - Docker 101Meetup Docker Lyon janvier 2018 - Docker 101
Meetup Docker Lyon janvier 2018 - Docker 101
 
kubernetes, pourquoi et comment
kubernetes, pourquoi et commentkubernetes, pourquoi et comment
kubernetes, pourquoi et comment
 
Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...
Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...
Tout sur les solutions de Haute Disponibilité et Disaster Recovery de SQL Ser...
 
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
Tout sur les solutions de haute disponibilité et disaster recovery de sql ser...
 
Always on les solutions de haute disponibilité avec sql server 2012 (dat302)
Always on les solutions de haute disponibilité avec sql server 2012 (dat302)Always on les solutions de haute disponibilité avec sql server 2012 (dat302)
Always on les solutions de haute disponibilité avec sql server 2012 (dat302)
 

Similaire à Comment sauvegarder correctement vos données

Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenable
LeTesteur
 
UGIF 12 2010 - sauvegarde et securisation des donnees
UGIF 12 2010 - sauvegarde et securisation des donneesUGIF 12 2010 - sauvegarde et securisation des donnees
UGIF 12 2010 - sauvegarde et securisation des donnees
UGIF
 
Informix User Group France - 30/11/2010 - Securisation des données
Informix User Group France - 30/11/2010 - Securisation des donnéesInformix User Group France - 30/11/2010 - Securisation des données
Informix User Group France - 30/11/2010 - Securisation des données
Nicolas Desachy
 

Similaire à Comment sauvegarder correctement vos données (20)

Réplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden GateRéplication de base de données oracle avec Golden Gate
Réplication de base de données oracle avec Golden Gate
 
Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande
Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande
Robocopy : Un outil de copie sécurisée et paramétrable en ligne de commande
 
Game of upgrades to liferay dxp - ep1: Migration de données
Game of upgrades to liferay dxp - ep1: Migration de donnéesGame of upgrades to liferay dxp - ep1: Migration de données
Game of upgrades to liferay dxp - ep1: Migration de données
 
[Café Techno] Veeam 8 : Réduire au strict minimum la fenêtre de sauvegarde - ...
[Café Techno] Veeam 8 : Réduire au strict minimum la fenêtre de sauvegarde - ...[Café Techno] Veeam 8 : Réduire au strict minimum la fenêtre de sauvegarde - ...
[Café Techno] Veeam 8 : Réduire au strict minimum la fenêtre de sauvegarde - ...
 
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantes
 
Les containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicienLes containers docker vu par un chef cuisinier et un mécanicien
Les containers docker vu par un chef cuisinier et un mécanicien
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenable
 
Exchange 2013 Bonnes pratiques
Exchange 2013 Bonnes pratiques Exchange 2013 Bonnes pratiques
Exchange 2013 Bonnes pratiques
 
MYSQLDUMP & ZRM COMMUNITY (FR)
MYSQLDUMP & ZRM COMMUNITY (FR)MYSQLDUMP & ZRM COMMUNITY (FR)
MYSQLDUMP & ZRM COMMUNITY (FR)
 
UGIF 12 2010 - sauvegarde et securisation des donnees
UGIF 12 2010 - sauvegarde et securisation des donneesUGIF 12 2010 - sauvegarde et securisation des donnees
UGIF 12 2010 - sauvegarde et securisation des donnees
 
Informix User Group France - 30/11/2010 - Securisation des données
Informix User Group France - 30/11/2010 - Securisation des donnéesInformix User Group France - 30/11/2010 - Securisation des données
Informix User Group France - 30/11/2010 - Securisation des données
 
Techdays 2014 - Le fermier azure (2ème partie)
Techdays 2014 - Le fermier azure (2ème partie)Techdays 2014 - Le fermier azure (2ème partie)
Techdays 2014 - Le fermier azure (2ème partie)
 
Introduction aux techniques de déduplication
Introduction aux techniques de déduplicationIntroduction aux techniques de déduplication
Introduction aux techniques de déduplication
 
Mises à jour logicielles en environnement Linux Embarqué, petit guide et tour...
Mises à jour logicielles en environnement Linux Embarqué, petit guide et tour...Mises à jour logicielles en environnement Linux Embarqué, petit guide et tour...
Mises à jour logicielles en environnement Linux Embarqué, petit guide et tour...
 
Oracle Cloud Café - Cloud backup et Disaster recovery
Oracle Cloud Café - Cloud backup et Disaster recoveryOracle Cloud Café - Cloud backup et Disaster recovery
Oracle Cloud Café - Cloud backup et Disaster recovery
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
 
Mac récupération de données
Mac récupération de donnéesMac récupération de données
Mac récupération de données
 
Confoo 2022 - le cycle d'une instance MySQL
Confoo 2022  - le cycle d'une instance MySQLConfoo 2022  - le cycle d'une instance MySQL
Confoo 2022 - le cycle d'une instance MySQL
 
[Café techno] Symantec NetBackup 7.6 - 12/2013
[Café techno] Symantec NetBackup 7.6 - 12/2013[Café techno] Symantec NetBackup 7.6 - 12/2013
[Café techno] Symantec NetBackup 7.6 - 12/2013
 

Plus de EDB

EFM Office Hours - APJ - July 29, 2021
EFM Office Hours - APJ - July 29, 2021EFM Office Hours - APJ - July 29, 2021
EFM Office Hours - APJ - July 29, 2021
EDB
 
Is There Anything PgBouncer Can’t Do?
Is There Anything PgBouncer Can’t Do?Is There Anything PgBouncer Can’t Do?
Is There Anything PgBouncer Can’t Do?
EDB
 
A Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAINA Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAIN
EDB
 

Plus de EDB (20)

Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaSCloud Migration Paths: Kubernetes, IaaS, or DBaaS
Cloud Migration Paths: Kubernetes, IaaS, or DBaaS
 
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr UnternehmenDie 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
Die 10 besten PostgreSQL-Replikationsstrategien für Ihr Unternehmen
 
Migre sus bases de datos Oracle a la nube
Migre sus bases de datos Oracle a la nube Migre sus bases de datos Oracle a la nube
Migre sus bases de datos Oracle a la nube
 
EFM Office Hours - APJ - July 29, 2021
EFM Office Hours - APJ - July 29, 2021EFM Office Hours - APJ - July 29, 2021
EFM Office Hours - APJ - July 29, 2021
 
Benchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQLBenchmarking Cloud Native PostgreSQL
Benchmarking Cloud Native PostgreSQL
 
Las Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQLLas Variaciones de la Replicación de PostgreSQL
Las Variaciones de la Replicación de PostgreSQL
 
NoSQL and Spatial Database Capabilities using PostgreSQL
NoSQL and Spatial Database Capabilities using PostgreSQLNoSQL and Spatial Database Capabilities using PostgreSQL
NoSQL and Spatial Database Capabilities using PostgreSQL
 
Is There Anything PgBouncer Can’t Do?
Is There Anything PgBouncer Can’t Do?Is There Anything PgBouncer Can’t Do?
Is There Anything PgBouncer Can’t Do?
 
Data Analysis with TensorFlow in PostgreSQL
Data Analysis with TensorFlow in PostgreSQLData Analysis with TensorFlow in PostgreSQL
Data Analysis with TensorFlow in PostgreSQL
 
Practical Partitioning in Production with Postgres
Practical Partitioning in Production with PostgresPractical Partitioning in Production with Postgres
Practical Partitioning in Production with Postgres
 
A Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAINA Deeper Dive into EXPLAIN
A Deeper Dive into EXPLAIN
 
IOT with PostgreSQL
IOT with PostgreSQLIOT with PostgreSQL
IOT with PostgreSQL
 
A Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQLA Journey from Oracle to PostgreSQL
A Journey from Oracle to PostgreSQL
 
Psql is awesome!
Psql is awesome!Psql is awesome!
Psql is awesome!
 
EDB 13 - New Enhancements for Security and Usability - APJ
EDB 13 - New Enhancements for Security and Usability - APJEDB 13 - New Enhancements for Security and Usability - APJ
EDB 13 - New Enhancements for Security and Usability - APJ
 
Cloud Native PostgreSQL - Italiano
Cloud Native PostgreSQL - ItalianoCloud Native PostgreSQL - Italiano
Cloud Native PostgreSQL - Italiano
 
New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13New enhancements for security and usability in EDB 13
New enhancements for security and usability in EDB 13
 
Best Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLBest Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQL
 
Cloud Native PostgreSQL - APJ
Cloud Native PostgreSQL - APJCloud Native PostgreSQL - APJ
Cloud Native PostgreSQL - APJ
 
Best Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQLBest Practices in Security with PostgreSQL
Best Practices in Security with PostgreSQL
 

Comment sauvegarder correctement vos données

  • 2. © 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
  • 23. Commit User 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
  • 25. Commit OK Les WALs un jour normal Utilisateur Instance Mémoire Processus Fichiers de données
  • 26. Checkpoint Les WALs un jour normal Instance Mémoire Processus Fichiers de données
  • 27. Recovery après un crash Instance Mémoire Processus Fichiers de données
  • 28. Recovery après un crash Checkpoint Instance Mémoire Processus Fichiers de données
  • 29. Snapshots de VM ou de disques
  • 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
  • 38. © Copyright EnterpriseDB Corporation, 2020. All rights reserved. 38 Des questions?