Page 1 sur 1

Vérification de la corruption lors de la sauvegarde

Posté : lun. 4 juin 2018 14:58
par Phil
Merci à un DBA Oracle pour sa question :

"Avec Oracle Database, une vérification de la corruption a lieu lors des sauvegardes RMAN. Qu'en est-il avec PostgreSQL ?"

Réponse :
La détection des corruptions peut avoir lieu à différents niveaux, par exemple au niveau du filesystem. Si votre filesystem ne dispose pas de ce type de vérification ou si vous voulez de toute façon effectuer la vérification au niveau base de données, vous pouvez activer les sommes de contrôle (checksums) depuis PostgreSQL 9.3, donc dans toutes les versions supportées de PostgreSQL.
Ensuite, tout dépend de votre outil de sauvegarde.
Pgbackrest indique dans sa documentation qu'il effectue une validation si les checksums sont activés.
Barman ne le fait pas mais tous les outils utilisant en fait pg_basebackup bénéficieront automatiquement de cette vérification à partir de PostgreSQL 11.
Vous obtiendrez alors ce genre de réponse si la base est corrompue :
ATTENTION: checksum verification failed in file "./base/13091/16385", block 0: calculated C16A but expected 5A7E
pg_basebackup: checksum error occured
viewforum.php?f=5

Un select sur la table concernée vous donnerait ça :
ATTENTION: échec de la vérification de la page, somme de contrôle calculé 49514, mais attendait 23166
ERREUR: page invalide dans le bloc 0 de la relation base/13091/16385