PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 14.14 » Référence » Applications relatives au serveur PostgreSQL » pg_archivecleanup

pg_archivecleanup

pg_archivecleanup — nettoie les archives des journaux de transactions PostgreSQL

Synopsis

pg_archivecleanup [option...] emplacementarchive fichierwalaconserver

Description

pg_archivecleanup est conçu pour être utilisé avec le paramètre archive_cleanup_command pour nettoyer les archives de journaux de transactions quand un serveur standby est utilisé (voir Section 27.2). pg_archivecleanup peut aussi être utilisé en tant que programme autonome pour nettoyer les archives des journaux de transactions.

Pour configurer un serveur standby à utiliser pg_archivecleanup, placez ceci dans le fichier de configuration postgresql.conf :

archive_cleanup_command = 'pg_archivecleanup emplacementarchive %r'
   

emplacementarchive est le répertoire où se trouvent les fichiers à nettoyer.

Lorsqu'il est utilisé dans archive_cleanup_command, tous les fichiers WAL précédant logiquement la valeur de l'argument %r seront supprimés de emplacementarchive. Ceci minimise le nombre de fichiers à conserver tout en préservant la possibilité de redémarrer après un crash. L'utilisation de ce paramètre est approprié si emplacementarchive est une aire temporaire pour ce serveur standby particulier. Cela n'est pas le cas quand emplacementarchive est conçu comme une aire d'archivage sur le long terme ou si plusieurs serveurs standby récupèrent les journaux à partir de ce même emplacement.

Lorsqu'il est utilisé en tant que programme autonome, tous les fichiers WAL qui précèdent logiquement fichierwalaconserver seront supprimés de emplacementarchive. Dans ce mode, si vous donnez un nom de fichier .partial ou .backup, alors seul le préfixe du fichier sera utilisé comme fichierwalaconserver. Ce traitement d'un nom de fichier .backup vous permet de supprimer tous les fichiers WAL archivés avant une sauvegarde de base spécifique, sans erreur. L'exemple suivant supprime tous les fichiers plus anciens que le nom 000000010000003700000010 :

pg_archivecleanup -d archive 000000010000003700000010.00000020.backup

pg_archivecleanup:  keep WAL file "archive/000000010000003700000010" and later
pg_archivecleanup:  removing file "archive/00000001000000370000000F"
pg_archivecleanup:  removing file "archive/00000001000000370000000E"
   

pg_archivecleanup suppose que emplacementarchive est un répertoire accessible en lecture et écriture par l'utilisateur qui exécute le serveur.

Options

pg_archivecleanup accepte les arguments suivant en ligne de commande :

-d

Affiche plein de messages de debug sur stderr.

-n

Affiche le nom des fichiers qui auraient été supprimés sur le sortie standard (stdout) (permet un test).

-V
--version

Affiche la version de pg_archivecleanup, puis quitte.

-x extension

Fournit une extension qui sera supprimé de tous les noms de fichiers avant de décider s'ils doivent être supprimés. Ceci est utile pour nettoyer des archives qui ont été compressés lors du stockage et, de ce fait, ont une extension ajoutée par le programme de compression. Par exemple -x .gz.

-?
--help

Affiche l'aide sur les arguments en ligne de commande de pg_archivecleanup, puis quitte.

Environnement

La variable d'environnement PG_COLOR indique s'il faut utiliser la couleur dans les messages de diagnostique. Les valeurs possibles sont always, auto et never.

Notes

pg_archivecleanup est conçu pour fonctionner avec PostgreSQL 8.0 et les versions ultérieures lorsqu'il est utilisé comme outil autonome, ou avec PostgreSQL et ultérieures quand il est utilisé comme commande de nettoyage des archives.

pg_archivecleanup est écrit en C et dispose d'un code facile à modifier, avec des sections désignées de telle façon qu'elles puissent être modifiées pour vos propres besoins.

Exemples

Sur des systèmes Linux ou Unix, vous pourriez utiliser :

archive_cleanup_command = 'pg_archivecleanup -d /mnt/standby/archive %r 2>>cleanup.log'
   

où le répertoire d'archivage est situé physiquement sur le serveur standby, pour que le paramètre archive_command y accède via NFS mais que les fichiers soient locaux au standby. Cette commande va :

  • produire une sortie de débuggage cleanup.log

  • supprimer les fichiers inutiles du répertoire d'archivage