pg_verifybackup — Vérifie l'intégrité d'une sauvegarde de base d'une instance PostgreSQL
pg_verifybackup [option...]
   pg_verifybackup est utilisé pour contrôler
   l'intégrité d'une sauvegarde d'une instance effectuée avec
   pg_basebackup, grâce au manifeste de sauvegarde
   (backup_manifest) généré par le serveur au moment de la
   sauvegarde de base. La sauvegarde doit être stockée au format
   « plain » : un format « tar :» peut être vérifié
   après son extraction.
  
Notez que la validation effectuée par pg_verifybackup n'effectue pas toutes les vérifications effectuées par un serveur qui cherche à utiliser cette sauvegarde, et ne pourrait pas le faire. Même si vous utilisez cet outil, vous devez toujours procéder à des tests de restauration, vérifier que les bases de données résultantes fonctionnent comme prévu, et semblent contenir les bonnes données. Cependant, pg_verifybackup peut détecter de nombreux problèmes courants, dus au stockage ou une erreur de l'utilisateur.
   La vérification de sauvegarde s'effectue en quatre étapes. Premièrement,
   pg_verifybackup lit le fichier
   backup_manifest. S'il n'existe pas, ne peut être lu, est
   malformé, ou échoue au contrôle face à sa propre somme de contrôle interne,
   pg_verifybackup se termine avec une erreur fatale.
  
   Deuxièmement, pg_verifybackup tentera de vérifier que
   les fichiers de données en place sur le disque à ce moment sont exactement
   les mêmes que les fichiers que le serveur voulait envoyer, à quelques
   exceptions près listées plus bas. Les fichiers en trop ou manquants seront
   détectés, avec quelques exceptions. Cette étape ignore la présence ou la
   modification de postgresql.auto.conf,
   standby.signal, et recovery.signal,
   car il est prévisible que la procédure de sauvegarde les crée ou les
   modifie. Il n'y aura pas non plus de plainte à propos d'un fichier
   backup_manifest dans le répertoire cible, ou quoi que ce
   soit dans pg_wal, bien que ces fichiers ne soient pas
   listés dans le manifeste de sauvegarde. Seuls les fichiers sont
   contrôlés ; la présence ou l'absence des répertoires n'est pas
   vérifiée, ou indirectement : si un répertoire manque, tout fichier
   qu'il aurait dû contenir sera forcément porté manquant.
  
   Ensuite, pg_verifybackup calcule les sommes de contrôle
   de tous les fichiers, les compare aux valeurs du manifeste, et émet des
   erreurs pour tous les fichiers où la somme de contrôle calculée ne
   correspond pas à celle du manifeste. Cette étape n'est pas effectuée pour
   les fichiers qui ont produit des erreurs à l'étape précédente, puisqu'il
   est déjà connu qu'ils sont problématiques. Les fichiers ignorés à l'étape
   précédente sont aussi ignorés à celle-ci.
  
   Enfin, pg_verifybackup va utiliser le manifeste pour
   vérifier que les enregistrements des journaux de transaction nécessaires à
   la restauration de la sauvegarde sont présents, et peuvent être lus et
   analysés. Le backup_manifest contient des informations
   sur les enregistrements nécessaires des journaux.
   pg_verifybackup les utilise pour invoquer
   pg_waldump et analyser les journaux. L'option
   --quiet peut être utilisée pour que
   pg_waldump ne renvoie que les erreurs, sans générer
   d'autre sortie. Bien qu'à ce niveau les vérifications soient suffisantes
   pour détecter les problèmes évidents, comme des fichiers manquants ou une
   somme de contrôle incohérente, elles ne sont pas assez complètes pour
   détecter tous les problèmes possibles pouvant arriver lors d'une tentative
   de restauration. Par exemple, un bug du serveur générant des journaux de
   transaction avec les bonnes sommes de contrôle, mais spécifiant des
   opérations absurdes, ne peut être détecté par cette méthode.
  
   Notez que s'il y a des fichiers WAL en plus, non nécessaires pour restaurer
   la sauvegarde, ils ne seront pas vérifiés par cet outil, bien qu'un appel
   séparé à pg_waldump permet de le faire. Notez aussi que
   la vérification des journaux est spécifique à chaque version : vous
   devez utiliser la version de pg_verifybackup, et donc de
   pg_waldump, qui correspond à la sauvegarde à vérifier.
   En revanche, les tests d'intégrité des fichiers devraient fonctionner avec
   toutes les versions du serveur qui génèrent un fichier
   backup_manifest.
  
pg_verifybackup accepte les arguments suivants en ligne de commande :
-e--exit-on-error
       Sort dès qu'un problème avec la sauvegarde est détecté. Si cette
       option n'est pas spécifiée, pg_verifybackup va
       continuer à vérifier la sauvegarde après la détection d'un problème,
       et rapportera tous les problèmes en tant qu'erreurs.
      
-i path--ignore=path
       Ignore le fichier ou répertoire spécifié (à exprimer avec un chemin
       relatif), lors de la comparaison des fichiers effectivement dans la
       sauvegarde avec ceux listés dans le fichier
       backup_manifest. Si un répertoire est spécifié,
       cette option affecte toute l'arborescence en-dessous. Les plaintes sur
       des fichiers excédentaires ou manquants, des différences de taille, ou
       des incohérences de sommes de contrôle, seront supprimées si le chemin
       relatif correspond à celui spécifié. Cette option peut être répétée
       plusieurs fois.
      
-m path--manifest-path=pathUtiliser le fichier manifeste au chemin spécifié, plutôt que celui à la racine du répertoire de sauvegarde.
-n--no-parse-walN'essaie pas d'analyser les journaux de transactions nécessaires à la restauration de la sauvegarde.
-q--quietN'affiche rien si la sauvegarde est vérifiée avec succès.
-s--skip-checksumsNe vérifie pas les sommes de contrôle. La présence ou l'absence des fichiers et leur taille sera toujours contrôlée. C'est beaucoup plus rapide, car il n'y a pas besoin de lire les fichiers eux-mêmes.
-w path--wal-directory=path
       Essaie d'analyser les fichiers WAL stockés dans le répertoire indiqué,
       plutôt que ceux dans pg_wal. Ce peut être utile si
       la sauvegarde est stockée dans un emplacement différent des archives
       des journaux.
      
D'autres options sont disponibles :
-V--versionAffiche la version de pg_verifybackup et sort.
-?--helpAffiche l'aide sur les arguments en ligne de commande de pg_verifybackup, puis sort.
   Pour créer une sauvegarde de base du serveur sur
   mydbserver, et vérifier son intégrité :
   
$pg_basebackup -h mydbserver -D /usr/local/pgsql/data$pg_verifybackup /usr/local/pgsql/data
   Pour créer une sauvegarde de base du serveur sur
   mydbserver, déplacer le manifeste hors du répertoire de
   la sauvegarde, et vérifier l'intégrité de la sauvegarde :
   
$pg_basebackup -h mydbserver -D /usr/local/pgsql/backup1234$mv /usr/local/pgsql/backup1234/backup_manifest /my/secure/location/backup_manifest.1234$pg_verifybackup -m /my/secure/location/backup_manifest.1234 /usr/local/pgsql/backup1234
Pour vérifier une sauvegarde, tout en ignorant un fichier ajouté manuellement au répertoire de sauvegarde, et aussi sauter la vérification des sommes de contrôle :
$pg_basebackup -h mydbserver -D /usr/local/pgsql/data$edit /usr/local/pgsql/data/note.to.self$pg_verifybackup --ignore=note.to.self --skip-checksums /usr/local/pgsql/data