Documentation PostgreSQL 14.22 » Référence » Applications relatives au serveur PostgreSQL » pg_archivecleanup

Précédent | Niveau supérieur | Suivant
initdb | Sommaire | pg_checksums

## 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'

où `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 diagnostic. 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