restore_command
(chaîne de caractères
)
La commande d'interpréteur à exécuter pour récupérer un segment de la série
de fichiers WAL archivés. Ce paramètre est nécessaire pour la récupération
à partir de l'archive, mais optionnel pour la réplication à flux continu.
Tout %f
dans la chaîne est remplacé par le nom du fichier
à récupérer de l'archive, et tout %p
est remplacé par
le chemin de destination de la copie sur le serveur.
(Le chemin est relatif au répertoire courant de travail, c'est à dire
le répertoire de données de l'instance.)
Tout %r
est remplacé par le nom du fichier contenant
le dernier point de reprise (restartpoint) valide. Autrement dit, le
fichier le plus ancien qui doit être gardé pour permettre à la récupération
d'être redémarrable. Cette information peut donc être utilisée pour tronquer
l'archive au strict minimum nécessaire pour permettre de reprendre la
restauration en cours. %r
n'est typiquement utilisé
que dans des configurations de warm-standby.
(voir Section 26.2).
Écrivez %%
pour inclure un vrai caractère
%
.
Il est important que la commande ne retourne un code retour égal à zéro que si elle réussit. La commande recevra des demandes concernant des fichiers n'existant pas dans l'archive ; elle doit avoir un code retour différent de zéro dans ce cas. Par exemple :
restore_command = 'cp /mnt/server/archivedir/%f "%p"' restore_command = 'copy "C:\\server\\archivedir\\%f" "%p"' # Windows
Seule exception, si la commande est terminée par un signal (autre que SIGTERM, qui est utilisé pour un arrêt du serveur) ou une erreur du shell (comme une commande introuvable), alors la restauration va s'annuler et le serveur ne redémarrera pas.
archive_cleanup_command
(string
)
Ce paramètre optionel spécifie une commande d'interpréteur qui sera
exécuté à chaque point de reprise. Le but de
archive_cleanup_command
est de fournir un mécanisme
de nettoyage des vieux fichiers WAL archivés qui ne sont plus
nécessaires au serveur de standby. Tout %r
est
remplacé par le nom du fichier contenant le dernier point de reprise
(restartpoint) valide. Autrement dit, le fichier le plus ancien qui
doit être conservé pour permettre à la
récupération d'être redémarrable. Du coup, tous les fichiers créés
avant %r
peuvent être supprimés sans problème.
Cette information peut être utilisée pour tronquer les archives au
minimum nécessaire pour redémarrer à partir de la restauration en
Le module pg_archivecleanup est souvent utilisé dans
archive_cleanup_command
dans des configurations de standby seuls. Par exemple :
archive_cleanup_command = 'pg_archivecleanup /mnt/server/archivedir %r'
Notez néanmoins que si plusieurs serveurs en standby sont mis à jour
à partir du même répertoire d'archives, vous devez vous assurer que
vous ne supprimez que les journaux de transactions qui ne sont plus
utiles à tous les serveurs. archive_cleanup_command
n'est typiquement utilisé que dans des configurations de warm-standby
(voir Section 26.2). Écrivez %%
pour inclure un vrai caractère %
.
Si la commande retourne un code de retour différent de zéro alors un message de journal WARNING sera écrit. Seule exception, une erreur de niveau FATAL est renvoyée si la commande a été terminée par un signal ou par une erreur du shell (comme une commande introuvable).
recovery_end_command
(chaîne de caractéres
)
Ce paramètre spécifie une commande d'interpréteur qui sera exécutée une
fois seulement, à la fin de la récupération. Ce paramètre est optionnel.
Le but de recovery_end_command
est de fournir un
mécanisme pour un nettoyage à la fin de la réplication ou de la récupération.
Tout %r
est remplacé par le nom du fichier contenant le
dernier point de reprise valide, comme dans archive_cleanup_command.
Si la commande retourne un code de retour différent de zéro alors un message de journal WARNING sera écrit et la base continuera son démarrage malgré tout. Par contre, si la commande a été terminée par un signal ou une erreur provenant du shell (comme une commande introuvable), la base n'effectuera pas son démarrage.