IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

pg_archivecleanup

pg_archivecleanup — nettoie les journaux de transactions (fichiers WAL) de PostgreSQL

Synopsis

pg_archivecleanup [option...] archivelocation oldestkeptwalfile

Description

pg_archivecleanup est conçu pour être utilisé via le paramètre archive_cleanup_command pour nettoyer les archives des journaux de transactions lorsque le serveur est exécuté en tant que serveur en standby (voir Section 25.2, « Serveurs de Standby par transfert de journaux »). pg_archivecleanup peut aussi être utilisé comme un programme autonome pour nettoyer les archives de journaux de transactions.

Pour configurer un serveur en attente de façon à ce qu'il utilise pg_archivecleanup, placez ce qui suit dans le fichier de configuration recovery.conf :

archive_cleanup_command = 'pg_archivecleanup RépArchive %r'
  

RépArchive est le répertoire à partir duquel les journaux de transactions doivent être supprimés.

S'il est utilisé via archive_cleanup_command, tous les fichiers des journaux de transactions qui précèdent la valeur de %r de façon logique seront supprimés de RépArchive. Ceci minimise le nombre de fichiers à conserver tout en préservant la capcité à redémarrer suite à un arrêt brutal. L'utilisation de ce paramètre est approprié si RépArchive est une aire de passage temporaire pour ce serveur en attente particulier, mais pas quand RépArchive a pour but d'être une archive à long terme des journaux de transactions ou quand plusieurs serveurs en standby utilisent le même emplacement pour les archives.

S'il est utilisé en tant que programme autonome, tous les fichiers de journaux de transactions avant le oldestkeptwalfile seront supprimés de RépArchive. Dans ce mode, si vous indiquez un nom de fichier avec une extension .backup, alors seul le préfixe du fichier sera utilisé comme oldestkeptwalfile. Ceci vous permet de supprimer tous les fichiers des journaux de transactions archivés avant une sauvegarde de base spécifique sans erreur. Par exemple, l'exemple suivant supprime tous les fichiers plus anciens que le fichier 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 RépArchive est un répertoire lisible et modifiable par l'utilisateur qui a lancé le serveur.

Options

pg_archivecleanup accepte les arguments suivants en ligne de commande :

-d

Affiche des informations de débogage sur stderr.

-n

Affiche sur la sortie standard (stdout) le nom des fichiers qui auraient été supprimés (il s'agit d'une exécution à blanc).

-V, --version

Affiche la version de pg_archivecleanup, puis quitte.

-x extension

Lorsque le programme est utilisé de manière autonome, permet de spécifier un filtre d'extension qui sera utilisé pour déterminer les fichiers qui doivent être supprimés. Cette option est notamment utile pour nettoyer les archives qui ont été compressées durant le stockage, et qui se sont ainsi vu ajouter une extension par le programme de compression. Par exemple : -x .gz.

À noter que, le cas échéant, il n'est pas nécessaire de préciser l'extension du nom de fichier (.backup) passé en paramètre du programme.

-?, --help

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

Notes

pg_archivecleanup a été conçu pour fonctionner à partir de PostgreSQL™ 8.0 en tant que programme autonome, et à partir de PostgreSQL™ 9.0 en tant que commande de nettoyage d'archive.

pg_archivecleanup est écrit en C et dont très portable et facile à modifier, avec des sections spécialement conçues pour être modifiées selon vos besoins.

Exemples

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

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

Dans ce cas, le répertoire des archives est situé physiquement sur le serveur en attente. archive_command y accède via un montage NFS mais les fichiers sont accessibles directement sur le serveur en attente. La commande va :

  • produire une sortie de débogage dans cleanup.log

  • supprimer les fichiers qui ne sont plus nécessaires à partir du répertoire d'archivage

Auteur

Simon Riggs

See Also

pg_standby(1)