Aller au contenu

Vue imprimable multi-pages de cette section. .

Retour à la version par défaut.

pgBackRest 2.59.1 Documentation

Sauvegarde et restauration fiable de PostgreSQL — documentation et référence pgBackRest.

Introduction

pgBackRest est une solution fiable de sauvegarde et de restauration pour PostgreSQL, qui s’adapte sans heurt aux plus grands bases de données et charges de travail.

pgBackRest v2.59.1 est la version stable actuelle. Les notes de version se trouvent sur la page Releases .

Merci de nous donner une étoile sur GitHub si vous appréciez pgBackRest !


Actualités

17 août 2026 - pgBackRest 2.59.1 publié

20 juillet 2026 - Nouveau paquet tar de distribution

20 juillet 2026 - pgBackRest 2.59.0 publié


Parrains

pgBackRest n’existerait pas sans le soutien financier. La rédaction de nouvelles fonctionnalités, la correction des bogues, la revue des contributions, la réponse aux questions de la communauté et la maintenance prennent une quantité considérable de temps. Veuillez envisager un parrainage si vous utilisez pgBackRest dans votre entreprise.

Nos partenaires : AWS , Supabase , pgEdge , Tiger Data , Percona , Eon , Xata , Dalibo , et Data Egret .

Nous remercions nos commanditaires pour leur investissement dans l’infrastructure open source, au bénéfice de l’ensemble de la communauté PostgreSQL.

Anciens commanditaires : Crunchy Data , Resonate .


Fonctionnalités

Sauvegarde et restauration parallèles

La compression est généralement le goulot d’étranglement lors des opérations de sauvegarde, aussi pgBackRest résout-il ce problème grâce au traitement parallèle et à des algorithmes de compression plus efficaces, tels que lz4 et zstd.

Opération locale ou distante

Un protocole personnalisé permet à pgBackRest de réaliser des sauvegardes, des restaurations et des archives localement ou à distance via TLS/SSH, avec une configuration minimale. Une interface permet également d’interroger PostgreSQL via la couche de protocole, de sorte qu’un accès distant à PostgreSQL n’est jamais nécessaire, ce qui améliore la sécurité.

Dépôts multiples

La possibilité de plusieurs dépôts permet, par exemple, d’avoir un dépôt local avec une rétention réduite pour des restaurations rapides et un dépôt distant avec une rétention plus longue pour assurer la redondance et l’accès à travers l’entreprise.

Sauvegardes complètes, différentielles et incrémentielles (au niveau fichier ou bloc)

Les sauvegardes complètes, différentielles et incrémentielles sont prises en charge. pgBackRest n’est pas sujet aux problèmes de résolution temporelle de rsync, ce qui rend les sauvegardes différentielles et incrémentielles sûres sans nécessiter de calculer la somme de contrôle de chaque fichier. Les sauvegardes au niveau du bloc économisent de l’espace en ne copiant que les parties des fichiers qui ont changé.

Rotation des sauvegardes et expiration des archives

Les politiques de rétention peuvent être définies pour les sauvegardes complètes et les sauvegardes différentielles afin d’assurer une couverture pour toute période. L’archive WAL peut être conservée pour toutes les sauvegardes ou uniquement pour les plus récentes. Dans ce dernier cas, les WAL nécessaires à la cohérence des sauvegardes plus anciennes seront conservées dans l’archive.

Intégrité de la sauvegarde

Les sommes de contrôle sont calculées pour chaque fichier de la sauvegarde et vérifiées lors d’une restauration ou d’une vérification. Une fois la copie des fichiers terminée, la sauvegarde attend que chaque segment WAL nécessaire à la cohérence de la sauvegarde soit arrivé dans le dépôt.

Les sauvegardes dans le dépôt peuvent être stockées au même format qu’un cluster PostgreSQL standard (y compris les espaces de tables). Si la compression est désactivée et que les liens durs sont activés, il est possible de prendre un instantané d’une sauvegarde dans le dépôt et de faire démarrer directement un cluster PostgreSQL sur cet instantané. Cette approche présente un avantage pour les bases de données de taille téraoctet, dont la restauration classique est longue.

Toutes les opérations utilisent fsync au niveau des fichiers et des répertoires pour garantir la durabilité.

Page Sommes de contrôle

Si les sommes de contrôle des pages sont activées, pgBackRest vérifiera les sommes de contrôle de chaque fichier copié lors d’une sauvegarde. Toutes les sommes de contrôle sont vérifiées lors d’une sauvegarde complète, et les sommes de contrôle des fichiers modifiés sont vérifiées lors des sauvegardes différentielles et incrémentielles.

Les échecs de validation n’interrompent pas le processus de sauvegarde, mais des avertissements précisant exactement quelles pages ont échoué sont affichés sur la console et dans le fichier de journal.

Cette fonctionnalité permet de détecter précocement les corruption au niveau de la page, avant que les sauvegardes contenant des copies valides des données ne soient expirées.

Reprise de sauvegarde

Une sauvegarde interrompue peut être reprise à l’endroit où elle a été interrompue. Les fichiers déjà copiés sont comparés aux sommes de contrôle du manifeste afin d’assurer l’intégrité. Comme cette opération peut s’effectuer entièrement sur l’hôte du dépôt, elle réduit la charge sur l’hôte PostgreSQL et économise du temps, puisque le calcul des sommes de contrôle est plus rapide que la compression et la retransmission des données.

Compression en streaming et sommes de contrôle

Les calculs de compression et de somme de contrôle sont effectués en flux pendant que les fichiers sont copiés vers le dépôt, que le dépôt soit local ou distant.

Si le dépôt est hébergé sur un hôte de dépôt, la compression est effectuée sur l’hôte PostgreSQL et les fichiers sont transmis au format compressé, puis stockés directement sur l’hôte de dépôt. Lorsque la compression est désactivée, un niveau de compression inférieur est utilisé afin d’utiliser efficacement la bande passante disponible tout en minimisant la charge CPU.

Restauration incrémentielle

Le manifeste contient des sommes de contrôle pour chaque fichier de la sauvegarde, ce qui permet, lors d’une restauration, d’utiliser ces sommes de contrôle pour accélérer considérablement le traitement. Lors d’une restauration incrémentielle, les fichiers absents de la sauvegarde sont d’abord supprimés, puis des sommes de contrôle sont générées pour les fichiers restants. Les fichiers correspondant à ceux de la sauvegarde sont laissés en place, et les autres fichiers sont restaurés selon le processus habituel. Le traitement parallèle peut entraîner une réduction importante du temps de restauration.

Parallèle, transmission asynchrone WAL et récupération

Des commandes dédiées permettent d’envoyer le WAL vers l’archive et de le récupérer. Ces commandes prennent en charge le parallélisme afin d’accélérer le traitement et s’exécutent de manière asynchrone pour offrir à PostgreSQL le temps de réponse le plus court possible.

La transmission asynchrone des segments WAL détecte automatiquement les segments WAL qui sont envoyés plusieurs fois et supprime les doublons lorsque les segments sont identiques ; sinon, une erreur est signalée. La transmission asynchrone des segments WAL permet de déléguer le transfert à un autre processus qui compresse les segments WAL en parallèle, afin d’optimiser le débit. Cette fonction peut être essentielle pour les bases de données générant un volume d’écriture extrêmement élevé.

La récupération asynchrone des WAL maintient une file locale de segments WAL décompressés et prêts à être rejoués. Cela réduit le temps nécessaire pour fournir les WAL à PostgreSQL, ce qui maximise la vitesse de relecture. Les connexions et le stockage à latence élevée (comme S3) en bénéficient le plus.

Les commandes push et get garantissent chacune la correspondance entre la base de données et le dépôt en comparant les versions de PostgreSQL et les identifiants système. Cela élimine pratiquement tout risque de configurer incorrectement l’emplacement de l’archive WAL.

Les espaces de table sont entièrement pris en charge, et lors d’une restauration, il est possible de les rediriger vers n’importe quel emplacement. Il est également possible de rediriger tous les espaces de table vers un seul emplacement en une seule commande, ce qui est utile pour les restaurations en environnement de développement.

Les liens de fichiers et de répertoires sont pris en charge pour tout fichier ou répertoire du cluster PostgreSQL. Lors d’une restauration, il est possible de restaurer tous les liens à leurs emplacements d’origine, de rediriger certains ou tous les liens, ou de restaurer certains ou tous les liens en tant que fichiers ou répertoires normaux dans le répertoire du cluster.

Prise en charge des magasins d’objets compatibles S3, Azure et GCS

Les dépôts pgBackRest peuvent être situés dans des magasins d’objets compatibles S3, Azure ou GCS afin de permettre une capacité et une rétention pratiquement illimitées.

Chiffrement

pgBackRest peut chiffrer le dépôt afin de protéger les sauvegardes, quel que soit l’emplacement de stockage.

Protection contre les logiciels malveillants et les logiciels de rançon

Lorsque le dépôt est stocké dans un stockage d’objets versionné, pgBackRest peut lire le dépôt tel qu’il était à un instant donné. Si des sauvegardes sont supprimées ou corrompues par erreur, par un logiciel malveillant ou un logiciel de rançon, une heure cible peut être utilisée pour récupérer des données antérieures à la survenance des dégâts.

La versionning est pris en charge par les magasins d’objets compatibles S3, Azure et GCS. Le verrouillage d’objets pour S3 ou la suppression progressive pour GCS ou Azure peut offrir une protection supplémentaire contre toute modification non autorisée.

Compatibilité avec dix versions de PostgreSQL

pgBackRest prend en charge dix versions de PostgreSQL, soit les cinq versions prises en charge et les cinq dernières versions obsolètes (EOL). Cela permet un délai suffisant pour passer à une version prise en charge.


Premiers pas

pgBackRest vise à être facile à configurer et à utiliser :


Contributions

Les contributions à pgBackRest sont toujours les bienvenues ! Veuillez consulter nos Guides pour contribuer pour obtenir les détails sur la manière de contribuer avec des fonctionnalités, des améliorations ou des rapports d’incidents.


Prise en charge

pgBackRest est entièrement gratuit et open source sous la licence MIT . Vous pouvez l’utiliser à des fins personnelles ou commerciales sans aucune restriction. Les rapports de bogues sont pris très au sérieux et seront traités aussi rapidement que possible. Veuillez signaler les bogues ici .

La mise en place d’une politique de récupération après sinistre solide, assortie de stratégies de réplication et de sauvegarde appropriées, peut s’avérer une tâche très complexe et intimidante. Vous pourriez avoir besoin d’aide pendant la phase d’architecture et d’un soutien continu afin de garantir que votre entreprise continue de fonctionner sans accroc.

Nos parrains proposent des produits et services incluant le support de pgBackRest et peuvent vous aider à répondre à vos besoins de récupération après sinistre.

1 - Actualités

Actualités officielles du projet pgBackRest, annonces de versions et mises à jour de maintenance.

pgBackRest 2.59.1 publié

17 août 2026

La communauté pgBackRest est heureuse d’annoncer la sortie de pgBackRest 2.59.1, la dernière version de la solution fiable, facile à utiliser, de sauvegarde et de restauration, pouvant s’adapter sans heurt aux plus grandes bases de données et charges de travail.

pgBackRest prend en charge un ensemble complet de fonctionnalités pour gérer votre infrastructure de sauvegarde et de récupération, notamment : sauvegarde/restauration en parallèle, sauvegardes complètes/différentielles/sauvegardes incrémentielles, sauvegarde incrémentielle par bloc, plusieurs dépôts, restauration par delta, archivage asynchrone en parallèle, protection contre les logiciels malveillants/rançongiciels, sommes de contrôle par fichier, sommes de contrôle par page (lorsqu’activées) validées pendant la sauvegarde, plusieurs types de compression, chiffrement, reprise partielle/échouée de sauvegarde, sauvegarde depuis un serveur secondaire, prise en charge des espaces de table et des liens, prise en charge de S3/Azure/GCS/SFTP, expiration des sauvegardes, opérations locales/distantes via SSH ou TLS, configuration flexible, et bien plus encore.

pgBackRest peut être installé à partir du dépôt Yum PostgreSQL ou du dépôt APT PostgreSQL ; des paquets sont également disponibles pour de nombreuses autres distributions. Le code source peut être téléchargé depuis releases .

Nouvelles fonctionnalités et correctifs de bogues

  • Prise en charge de PostgreSQL 19beta3 (Lardière Sébastien)
  • Correction d’un blocage lorsque la taille du tampon de morceau est inférieure à celle du tampon d’entrée (David Steele)
  • Comparer une étiquette de sauvegarde nouvelle uniquement avec son propre jeu de sauvegardes complètes (David Steele)
  • Correction des archives sources générées par GitHub qui manquaient des fichiers nécessaires à la compilation (David Steele)

Consultez les Notes de version 2.59.1 pour obtenir des corrections et améliorations supplémentaires.

Remarques importantes

  • PostgreSQL 19beta3 a modifié le format WAL, de sorte que les WAL archivés depuis une version antérieure de PostgreSQL 19 beta ne sont plus lisibles. Les clusters exécutant une version antérieure du beta doivent être recréés avec 19beta3.

Parrainage

Ce correctif a été rendu possible grâce au généreux parrainage de AWS , Supabase , pgEdge , Tiger Data , Percona , Eon , Xata , Dalibo , et Data Egret .


Nouveau paquet tar de distribution

20 juillet 2026

À compter de la version 2.59.0 de pgBackRest, chaque version inclut un fichier tarball de distribution qui simplifie la compilation à partir des sources. Contrairement à un extrait du dépôt git, le fichier tarball contient les sources générées et la documentation rendue préalablement construites, de sorte que pgBackRest peut être compilé et installé sans nécessiter les outils de génération de code ni de documentation requis par un extrait du dépôt.

Le paquet tar contient le code source de pgBackRest avec le code prégénéré, la page de manuel de référence des commandes, la documentation HTML et un test de fumée pour vérifier la compilation. Il se compile avec meson et ninja en utilisant uniquement les bibliothèques habituelles de pgBackRest.

Le fichier archive est joint à chaque version en tant que fichier joint nommé pgbackrest-{version}.tar.gz, accompagné de la somme de contrôle correspondante .sha256sum. Téléchargez-le depuis la page releases sur GitHub, puis consultez le fichier README.md contenu dans l’archive pour obtenir les instructions de compilation et de test.

Les paquetisateurs sont encouragés à effectuer les compilations à partir du tarball de distribution afin d’éviter les outils de construction supplémentaires que nécessitera à l’avenir la génération du code et de la documentation.


pgBackRest 2.59.0 publié

20 juillet 2026

La communauté pgBackRest est heureuse d’annoncer la sortie de pgBackRest 2.59.0, la dernière version de la solution fiable, facile à utiliser, pour la sauvegarde et la restauration, qui s’adapte sans heurt aux plus grandes bases de données et charges de travail.

pgBackRest prend en charge un ensemble complet de fonctionnalités pour gérer votre infrastructure de sauvegarde et de récupération, notamment : sauvegarde/restauration en parallèle, sauvegardes complètes/différentielles/sauvegardes incrémentielles, sauvegarde incrémentielle par bloc, plusieurs dépôts, restauration par delta, archivage asynchrone en parallèle, protection contre les logiciels malveillants/rançongiciels, sommes de contrôle par fichier, sommes de contrôle par page (lorsqu’activées) validées pendant la sauvegarde, plusieurs types de compression, chiffrement, reprise partielle/échouée de sauvegarde, sauvegarde depuis un serveur secondaire, prise en charge des espaces de table et des liens, prise en charge de S3/Azure/GCS/SFTP, expiration des sauvegardes, opérations locales/distantes via SSH ou TLS, configuration flexible, et bien plus encore.

pgBackRest peut être installé à partir du dépôt Yum PostgreSQL ou du dépôt APT PostgreSQL ; des paquets sont également disponibles pour de nombreuses autres distributions. Le code source peut être téléchargé depuis releases .

Nouvelles fonctionnalités et améliorations importantes

  • Prise en charge de PostgreSQL 19 (David Steele)
  • Ajouter l’option archive-expire-before pour nettoyer l’archive WAL (Stefan Fercot)
  • Ajouter la prise en charge des S3 Outposts (Shiva Kumar Ambigi)
  • Ajouter l’authentification par processus S3 (David Steele)
  • Ajouter le cache utilisateur/groupe pour une construction plus rapide du manifeste (Gunnar Lindholm)
  • Reconnecter le stockage SFTP après que le serveur a fermé une connexion inactif (David Steele)
  • Ajouter la progression par répertoire de sauvegarde dans la sortie de la commande info (Will Morland)
  • Ajouter la suppression par lots pour le stockage Azure (David Steele)
  • Ajouter des vérifications backup.info à la commande verify (Denis Garsh)
  • Permettre la configuration du point de terminaison STS S3 (Simon Gratton)
  • Ajouter l’intégration avec systemd notify (Andrew Jackson)
  • Erreur lors de l’exécution en tant que root sauf si allow-root est activé (David Steele)
  • Quitter l’opération asynchrone archive-push à la première erreur (David Steele)

Consultez les Notes de version 2.59.0 pour obtenir des informations complémentaires sur les nouvelles fonctionnalités et améliorations.

Remarques importantes

  • Seul la commande restore peut être exécutée en tant qu’utilisateur root par défaut. Utilisez allow-root pour exécuter d’autres commandes en tant qu’utilisateur root (ce qui n’est toutefois pas recommandé).
  • Une nouvelle archive de distribution comprenant la documentation prégénérée, la page de manuel et le code est jointe à chaque version pour simplifier le packaging. Consultez Nouvelle archive de distribution pour plus d’informations.
  • Une nouvelle dépendance facultative sur libsystemd a été ajoutée.

Parrainage

Ce correctif a été rendu possible grâce au généreux parrainage de AWS , Supabase , pgEdge , Tiger Data , Percona , Eon , Xata , Dalibo , et Data Egret .


pgBackRest va continuer !

18 mai 2026

Je suis heureux d’annoncer que pgBackRest va poursuivre son développement ! Au cours des dernières semaines, une coalition de commanditaires s’est réunie afin de financer le développement continu. Leur soutien signifie que le projet n’est plus dépendant d’un seul commanditaire, offrant ainsi à pgBackRest la stabilité nécessaire à long terme.

Je tiens à remercier chacun de nos commanditaires :

Amazon Web Services fournit des ressources informatiques cloud à la demande aux particuliers, aux entreprises et aux gouvernements. Accédez à une puissance de calcul, au stockage, aux bases de données, à l’apprentissage automatique et à plus de 200 services, en payant uniquement ce que vous utilisez. Conçu pour évoluer avec vous, en investissant dans les communautés que nous partageons.

Supabase , une plateforme backend complète construite sur PostgreSQL, permet aux développeurs de créer et d’évoluer rapidement leurs applications sans gérer l’infrastructure. Elle inclut une base de données PostgreSQL, une authentification utilisateur, des abonnements en temps réel, un stockage de fichiers, des fonctions au bord et des fonctions sans serveur, tous soutenus par une communauté open-source active.

pgEdge est une plateforme PostgreSQL open source de classe entreprise pour l’IA, la haute disponibilité et bien plus encore. Elle propose des outils natifs d’IA agentique, un atelier DBA, la supervision et la réponse aux incidents, un déploiement flexible et une maintenance sans interruption. Elle s’étend d’un nœud unique à une architecture multimaître active-active dans le cloud, sur site ou dans des environnements isolés.

Tiger Data , créateurs de TimescaleDB, développe la base de données open source pour les séries temporelles construite sur PostgreSQL et exploite Tiger Cloud, une plateforme gérée dédiée aux charges de travail liées aux séries temporelles, à l’analyse et à l’intelligence artificielle. Les options auto-hébergées et cloud permettent aux organisations de capturer, stocker et analyser des séries temporelles à grande échelle, des déploiements aux bords jusqu’aux clouds centralisés.

Percona est une entreprise de logiciels, d’assistance et de services open source qui aide les organisations à conserver le contrôle total de leur infrastructure de données. Elle leur permet d’exploiter MySQL, PostgreSQL, MongoDB, Valkey et Redis de manière sûre et efficace grâce à des logiciels open source librement accessibles, une assistance experte 24/7 et une expertise pratique des bases de données.

Eon.io est une infrastructure cloud intelligente pour la sauvegarde, la récupération et la gestion des données, qui aide les équipes à stocker et à accéder aux sauvegardes de manière plus efficace, rendant les données accessibles pour les workflows d’analyse et d’intelligence artificielle. Elle propose une récupération rapide et granulaire, ainsi qu’un coût de stockage nettement réduit pour PostgreSQL et les charges de travail intensives en données, sur toutes les clouds, y compris la récupération suite à une perte accidentelle de données ou à une régression d’agent d’intelligence artificielle.

Ces organisations comptent sur pgBackRest pour assurer une récupération après sinistre fiable pour leurs produits et clients. Leur investissement reflète le rôle essentiel joué par pgBackRest dans l’écosystème PostgreSQL, et leur soutien collectif garantit la durabilité à long terme du projet.

J’ai hâte de reprendre le travail. Des fonctionnalités et des optimisations sont en cours de développement et je suis impatient de vous les présenter dans les prochaines versions. Merci à nos commanditaires pour avoir rendu cela possible, et merci à la communauté pour votre patience et votre soutien durant cette transition.


Mise à jour de maintenance

4 mai 2026

Après avoir annoncé que je ne maintiens plus pgBackRest, ma boîte de réception s’est remplie. Il a fallu un certain temps pour trier les messages — beaucoup d’entre eux étaient des vœux de bonne chance et des remerciements pour mon travail au fil des années.

Mais un schéma s’est rapidement dessiné. Il est clair que de nombreux utilisateurs de pgBackRest, en particulier ceux qui doivent assister d’autres utilisateurs de pgBackRest, préféreraient que le projet continue avec moi en tant que principal mainteneur. Je le souhaiterais plus que tout, mais après plusieurs mois de financement participatif, j’avais tout juste décidé que cela n’arriverait pas.

La situation a maintenant évolué, et il semble presque certain que je pourrai obtenir suffisamment de financement pour poursuivre le projet. Cette fois, pgBackRest sera financé par une coalition de commanditaires, de sorte qu’une seule acquisition ne pourra plus affecter ma capacité à continuer le travail sur le projet. Nous devrions également pouvoir intégrer un autre mainteneur afin de répartir la charge de travail et assurer une continuité à l’avenir.

Je sais que cela a été une surprise et qu’il y a beaucoup d’incertitudes. Veuillez patienter — la version actuelle de pgBackRest fonctionne, et il n’existe aucun bogue critique ni problème de sécurité en cours, donc il n’est pas nécessaire de créer immédiatement une branche du projet.

J’espère pouvoir annoncer une décision définitive d’ici la fin de la semaine. En attendant, veuillez patienter et sachez que nous travaillons activement à la reprise de pgBackRest.


pgBackRest n’est plus maintenu

27 avril 2026

TL;DR : pgBackRest n’est plus maintenu. Si vous créez une branche de pgBackRest, veuillez choisir un nouveau nom pour votre projet.

Après mûre réflexion, j’ai décidé d’arrêter de travailler sur pgBackRest. Je n’ai pas pris cette décision à la légère. pgBackRest a été mon projet personnel passionnant pendant treize ans, et j’ai eu la chance de bénéficier d’un parrainage corporatif pendant une grande partie de cette période, mais il y a aussi eu de nombreuses nuits et fins de semaine passées à faire évoluer pgBackRest jusqu’à ce qu’il devienne ce qu’il est aujourd’hui, avec l’aide de nombreux contributeurs. Chaque développeur logiciel libre sait exactement ce que je veux dire et à quel point une partie de sa vie peut être consacrée à un projet particulier.

Depuis la vente de Crunchy Data, j’assure moi-même le maintien de pgBackRest et je cherche un poste qui me permettrait de poursuivre ce travail, mais jusqu’à présent, je n’ai pas eu de succès. De même, mes tentatives pour obtenir un parrainage se sont avérées bien insuffisantes pour rendre le projet viable.

Comme tout le monde, je dois gagner ma vie, et le nombre de postes liés à pgBackRest est très limité. Je peux désormais envisager une plus large variété d’opportunités, mais celles-ci ne me laisseront pas le temps de travailler sur pgBackRest, qui demande une quantité significative d’heures pour la maintenance, la correction des bogues, l’examen des demandes de tirage, la réponse aux problèmes, etc. Cela ne prend même pas en compte le temps nécessaire à l’écriture de nouvelles fonctionnalités, ce que je préfère par-dessus tout. Plutôt que de mener ce travail de manière médiocre et/ou épisodique, il me semble préférable de faire une pause définitive.

Je suppose qu’à un moment donné, pgBackRest sera forké, mais ce sera un nouveau projet avec de nouveaux responsables, et ceux-ci devront gagner la confiance de la même manière que nous l’avons fait.

Encore merci à l’ensemble des contributeurs de pgBackRest au fil des années. Il a été un réel plaisir de travailler avec vous !

2 - Guide utilisateur (Debian/Ubuntu)

Guide pas à pas d’installation et d’utilisation de pgBackRest pour les systèmes Debian et Ubuntu.

Introduction

Ce guide utilisateur est conçu pour être suivi séquentiellement, du début à la fin — chaque section dépend de la précédente. Par exemple, la section Restauration repose sur la configuration effectuée dans la section Démarrage rapide . Une fois pgBackRest en fonctionnement, il est possible de sauter des sections, mais il est recommandé de suivre le guide dans l’ordre lors de la première utilisation.

Bien que les exemples de ce guide soient destinés à Debian/Ubuntu et à PostgreSQL 17, il devrait être relativement facile de les appliquer à toute distribution Unix et toute version de PostgreSQL. Les seules commandes spécifiques au système d’exploitation sont celles permettant de créer, démarrer, arrêter et supprimer des clusters PostgreSQL. Les commandes pgBackRest seront identiques sur tout système Unix, bien que l’emplacement de l’exécutable puisse varier. Bien que pgBackRest cherche à fonctionner de manière cohérente sur les différentes versions de PostgreSQL, certaines différences subtiles entre versions de PostgreSQL peuvent apparaître dans ce guide lors de l’illustration de certains exemples, par exemple les chemins ou noms de fichiers de PostgreSQL, ainsi que les paramètres.

Informations de configuration et documentation pour PostgreSQL sont disponibles dans le Manuel de PostgreSQL.

Une approche quelque peu originale est adoptée pour la documentation dans ce guide utilisateur. Chaque commande est exécutée sur une machine virtuelle au moment où la documentation est générée à partir de la source XML. Cela signifie que vous pouvez avoir une confiance élevée quant au bon fonctionnement des commandes, dans l’ordre présenté. La sortie est capturée et affichée sous la commande lorsque cela est pertinent. Si la sortie n’est pas incluse, c’est parce qu’elle a été jugée sans intérêt ou qu’elle aurait pu distraire du récit.

Toutes les commandes doivent être exécutées en tant qu’utilisateur non privilégié disposant des droits sudo pour les utilisateurs root et postgres. Il est également possible d’exécuter les commandes directement en tant que leurs utilisateurs respectifs sans modification, auquel cas les commandes sudo peuvent être omises.


Concepts

Les concepts suivants sont définis en tant qu’ils sont pertinents pour pgBackRest, PostgreSQL et ce guide utilisateur.

sauvegarde

Une sauvegarde est une copie cohérente d’un cluster de base de données pouvant être restaurée pour récupérer après une panne matérielle, effectuer une restauration à un instant donné ou mettre en place un serveur secondaire nouveau.

Sauvegarde complète : pgBackRest copie l’intégralité du contenu du cluster de base de données vers la sauvegarde. La première sauvegarde du cluster de base de données est toujours une sauvegarde complète. pgBackRest est toujours en mesure de restaurer directement une sauvegarde complète. La sauvegarde complète ne dépend d’aucun fichier en dehors d’elle-même pour assurer sa cohérence.

Sauvegarde différentielle : pgBackRest copie uniquement les fichiers du cluster de base de données modifiés depuis la dernière sauvegarde complète. Pour restaurer une sauvegarde différentielle, pgBackRest copie tous les fichiers de celle-ci ainsi que les fichiers inchangés requis de la sauvegarde complète précédente. Une sauvegarde différentielle occupe moins d’espace disque qu’une sauvegarde complète, mais elle et la sauvegarde complète doivent chacune être valides pour permettre la restauration.

Sauvegarde incrémentielle : pgBackRest copie uniquement les fichiers du cluster de base de données ayant changé depuis la dernière sauvegarde (qui peut être une autre sauvegarde incrémentielle, une sauvegarde différentielle ou une sauvegarde complète). Comme une sauvegarde incrémentielle ne comprend que les fichiers modifiés depuis la sauvegarde précédente, elle est généralement bien plus petite que les sauvegardes complètes ou différentielles. Comme pour la sauvegarde différentielle, la sauvegarde incrémentielle dépend d’autres sauvegardes pour être valide lors d’une restauration. Étant donné qu’une sauvegarde incrémentielle ne contient que les fichiers modifiés depuis la dernière sauvegarde, toutes les sauvegardes incrémentielles antérieures jusqu’à la dernière sauvegarde différentielle, la dernière sauvegarde différentielle et la dernière sauvegarde complète doivent être valides afin de pouvoir restaurer la sauvegarde incrémentielle. Si aucune sauvegarde différentielle n’existe, alors toutes les sauvegardes incrémentielles antérieures jusqu’à la dernière sauvegarde complète, qui doit exister, ainsi que la sauvegarde complète elle-même doivent être valides pour restaurer la sauvegarde incrémentielle.

restauration

Une restauration est l’opération de copie d’une sauvegarde sur un système où elle sera lancée en tant que cluster de base de données en cours d’exécution. Une restauration nécessite les fichiers de sauvegarde et un ou plusieurs segments WAL afin de fonctionner correctement.

Journaux d’écriture anticipée (WAL)

Le WAL est le mécanisme utilisé par PostgreSQL pour garantir qu’aucun changement validé n’est perdu. Les transactions sont écrites séquentiellement dans le WAL, et une transaction est considérée comme validée lorsque ces écritures sont écrites sur le disque. Par la suite, un processus en arrière-plan écrit les modifications dans les fichiers du cluster de base de données principal (également appelés heap). En cas de panne, le WAL est rejoué afin de rendre la base de données cohérente.

Les journaux d’écriture (WAL) sont conceptuellement infinis, mais en pratique ils sont divisés en fichiers individuels de 16 Mo appelés segments. Les segments WAL suivent la convention de nommage 0000000100000A1E000000FE, où les huit premiers chiffres hexadécimaux représentent la timeline et les seize chiffres suivants constituent le numéro de séquence logique (LSN).

Chiffrement

Le chiffrement est le processus de conversion des données dans un format illisible à moins qu’un mot de passe approprié (appelé également phrase secrète) ne soit fourni.

pgBackRest chiffrera le dépôt en fonction d’un mot de passe fourni par l’utilisateur, empêchant ainsi tout accès non autorisé aux données stockées dans le dépôt.


Mise à jour de pgBackRest

Mise à jour de pgBackRest de la version v2.x à la v2.y

La mise à niveau depuis la version v2.x vers la version v2.y est directe. Le format du dépôt n’a pas changé, aussi, pour la plupart des installations, il s’agit simplement d’installer les binaires de la nouvelle version. Il est également possible de revenir à une version antérieure si vous n’avez pas utilisé de fonctionnalités nouvelles non prises en charge par la version plus ancienne.

IMPORTANT :

Les versions locales et distantes de pgBackRest doivent correspondre exactement, elles doivent donc être mises à jour ensemble. En cas de désaccord, l’archivage des WAL et les sauvegardes ne fonctionneront pas jusqu’à ce que les versions soient synchronisées. Dans ce cas, l’erreur suivante sera signalée : [ProtocolError] expected value '2.x' for greeting key 'version' but got '2.y'.


Construction

Installer pgBackRest à partir d’un paquet est préférable à la compilation à partir des sources. Consultez Installation pour plus d’informations sur les paquets.

Lors de la compilation à partir des sources, il est préférable d’utiliser une machine de compilation plutôt que de compiler directement sur la production. La plupart des outils nécessaires à la compilation ne devraient généralement pas être installés en production. pgBackRest se compose d’un seul exécutable, ce qui facilite sa copie sur une nouvelle machine une fois compilé.

build ⇒ Télécharger la version 2.59.1 de pgBackRest vers le chemin /build

mkdir -p /build
curl -fsSL \
       https://github.com/pgbackrest/pgbackrest/releases/download/release%2F2.59.1/pgbackrest-2.59.1.tar.gz | \
       tar zx -C /build

build ⇒ Installer les dépendances de compilation

sudo apt-get install python3-distutils meson gcc libpq-dev libssl-dev libxml2-dev \
       pkg-config liblz4-dev libzstd-dev libbz2-dev libz-dev libssh2-1-dev libsystemd-dev

build ⇒ Configurer et compiler pgBackRest

meson setup /build/pgbackrest /build/pgbackrest-2.59.1
ninja -C /build/pgbackrest

build ⇒ Exécuter éventuellement des tests de fumée pour vérifier que pgBackRest a été correctement construit

meson test -C /build/pgbackrest --suite smoke
ninja: Entering directory `/build/pgbackrest'
ninja: no work to do.
1/1 smoke OK               11.75s
       [filtered 7 lines of output]

Installation

Un nouvel hôte nommé pg-primary est créé pour contenir le cluster de démonstration et exécuter les exemples pgBackRest.

Installer pgBackRest à partir d’un paquet est préférable à la compilation à partir des sources. Lors de l’installation à partir d’un paquet, les autres instructions de cette section sont généralement inutiles, mais il se peut qu’un paquet omette de créer un répertoire ou applique des permissions incorrectes. Dans ce cas, il peut être nécessaire de créer manuellement les répertoires ou de mettre à jour les permissions.

Les paquets Debian/Ubuntu pour pgBackRest sont disponibles sur apt.PostgreSQL.org .

Si des paquets ne sont pas fournis pour votre distribution/version, vous pouvez compiler à partir des sources puis procéder à l’installation manuelle comme indiqué ici.

pg-primary ⇒ Installer les dépendances

sudo apt-get install postgresql-client libxml2 libssh2-1

pg-primary ⇒ Copier le binaire pgBackRest depuis l’hôte de compilation

sudo scp build:/build/pgbackrest/src/pgbackrest /usr/bin
sudo chmod 755 /usr/bin/pgbackrest

pgBackRest nécessite des répertoires pour les journaux et la configuration, ainsi qu’un fichier de configuration.

pg-primary ⇒ Créer le fichier de configuration et les répertoires pgBackRest

sudo mkdir -p -m 770 /var/log/pgbackrest
sudo chown postgres:postgres /var/log/pgbackrest
sudo mkdir -p /etc/pgbackrest
sudo mkdir -p /etc/pgbackrest/conf.d
sudo touch /etc/pgbackrest/pgbackrest.conf
sudo chmod 640 /etc/pgbackrest/pgbackrest.conf
sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf

pgBackRest doit maintenant être correctement installé, mais il est préférable de le vérifier. Si des dépendances ont été omises, une erreur sera générée lors de l’exécution de pgBackRest en ligne de commande.

pg-primary ⇒ Vérifiez que l’installation s’est déroulée correctement

sudo -u postgres pgbackrest
pgBackRest 2.59.1 - General help

Usage:
    pgbackrest [options] [command]

Commands:
    annotate        add or modify backup annotation
    archive-get     get a WAL segment from the archive
    archive-push    push a WAL segment to the archive
    backup          backup a database cluster
    check           check the configuration
    expire          expire backups that exceed retention
    help            get help
    info            retrieve information about backups
    repo-get        get a file from a repository
    repo-ls         list files in a repository
    restore         restore a database cluster
    server          pgBackRest server
    server-ping     ping pgBackRest server
    stanza-create   create the required stanza data
    stanza-delete   delete a stanza
    stanza-upgrade  upgrade a stanza
    start           allow pgBackRest processes to run
    stop            stop pgBackRest processes from running
    verify          verify contents of a repository
    version         get version

Use 'pgbackrest help [command]' for more information.

Démarrage rapide

La section Début rapide abordera la configuration basique de pgBackRest et de PostgreSQL, et présentera les commandes backup, restore et info.

Configurer un cluster de démonstration

La création du cluster de démonstration est facultative mais fortement recommandée, en particulier pour les nouveaux utilisateurs, car les commandes d’exemple du guide utilisateur font référence au cluster de démonstration ; les exemples supposent que le cluster de démonstration s’exécute sur le port par défaut (c’est-à-dire 5432). Le cluster ne sera pas lancé avant une section ultérieure, car il reste encore certaines configurations à effectuer.

pg-primary ⇒ Créer le cluster de démonstration

sudo -u postgres /usr/lib/postgresql/17/bin/initdb \
       -D /var/lib/postgresql/17/demo -k -A peer
sudo pg_createcluster 17 demo
Configuring already existing cluster (configuration: /etc/postgresql/17/demo, data: /var/lib/postgresql/17/demo, owner: 102:103)
Ver Cluster Port Status Owner    Data directory              Log file
17  demo    5432 down   postgres /var/lib/postgresql/17/demo /var/log/postgresql/postgresql-17-demo.log

Configurer une stanza de cluster

Une stanza est la configuration d’un cluster de base de données PostgreSQL qui définit son emplacement, la manière dont il sera sauvegardé, les options d’archivage, etc. La plupart des serveurs de base de données n’ont qu’un seul cluster PostgreSQL et donc une seule stanza, tandis que les serveurs de sauvegarde ont une stanza pour chaque cluster de base de données à sauvegarder.

Il est tentant de nommer la stanza en fonction du cluster principal, mais un nom plus pertinent décrit les bases de données contenues dans le cluster. Étant donné que le nom de la stanza sera utilisé pour le principal et toutes les répliques, il est préférable de choisir un nom qui décrit la fonction réelle du cluster, par exemple app ou dw, plutôt que le nom local du cluster, comme main ou prod.

Le nom « demo » décrit avec précision le but de ce cluster, ce qui en fait également un bon nom de stanza.

pgBackRest doit connaître l’emplacement du répertoire de données de base du cluster PostgreSQL. Le chemin peut être demandé directement à PostgreSQL, mais dans un scénario de récupération, le processus PostgreSQL ne sera pas disponible. Lors des sauvegardes, la valeur fournie à pgBackRest sera comparée au chemin sur lequel PostgreSQL est en cours d’exécution, et elles doivent être identiques, sinon la sauvegarde retournera une erreur. Assurez-vous que pg-path est exactement égal à la valeur data_directory rapportée par PostgreSQL.

Par défaut, Debian/Ubuntu stocke les clusters dans /var/lib/postgresql/[version]/[cluster], ce qui facilite la détermination du chemin correct du répertoire de données.

Lors de la création du fichier /etc/pgbackrest/pgbackrest.conf, le propriétaire de la base de données (généralement postgres) doit être autorisé en lecture.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configure le répertoire de données du cluster PostgreSQL

[demo]

pg1-path=/var/lib/postgresql/17/demo

Les fichiers de configuration de pgBackRest suivent une convention semblable à celle des fichiers INI sous Windows. Les sections sont indiquées par du texte entre crochets, et les paires clé/valeur sont contenues dans chaque section. Les lignes commençant par # sont ignorées et peuvent être utilisées comme commentaires, mais les commentaires en fin de ligne suivant une valeur sur la même ligne ne sont pas pris en charge. Les guillemets ne sont pas pris en charge, et les espaces sont supprimés des clés et des valeurs. Les sections seront fusionnées si elles apparaissent plus d’une fois.

Il existe plusieurs façons de charger les fichiers de configuration de pgBackRest :

  • config et config-include-path sont par défaut : le fichier de configuration par défaut sera chargé, s’il existe, et les fichiers *.conf dans le chemin d’inclusion de configuration par défaut seront ajoutés, s’ils existent.
  • config est spécifié : seul le fichier de configuration indiqué sera chargé et doit exister.
  • config-include-path est spécifié : les fichiers *.conf dans le chemin d’inclusion de configuration seront chargés et le chemin doit exister. Le fichier de configuration par défaut sera chargé s’il existe. Si l’on souhaite charger uniquement les fichiers dans le chemin d’inclusion de configuration spécifié, l’option --no-config peut également être passée.
  • config et config-include-path sont spécifiés : en utilisant les valeurs spécifiées par l’utilisateur, le fichier de configuration sera chargé et les fichiers *.conf dans le chemin d’inclusion de configuration seront ajoutés. Les fichiers doivent exister.
  • config-path est spécifié : ce paramètre remplacera le chemin de base pour l’emplacement par défaut du fichier de configuration et/ou le chemin de base du paramètre de chemin d’inclusion de configuration par défaut, sauf si l’option config et/ou config-include-path est explicitement définie.

Les fichiers sont concaténés comme s’ils formaient un seul grand fichier, et chaque fichier doit être valide individuellement. Cela signifie que les sections doivent être spécifiées dans chaque fichier là où elles sont nécessaires pour stocker une paire clé/valeur. L’ordre n’a pas d’importance, mais une priorité s’applique selon les sections. La priorité (de la plus élevée à la plus faible) est :

  • [stanza:command]
  • [stanza]
  • [global:command]
  • [global]

NOTE :

--config, --config-include-path et --config-path sont des options uniquement disponibles en ligne de commande.

pgBackRest peut également être configuré à l’aide de variables d’environnement (exemple ci-dessous) ; ces variables s’appliquent aux commandes telles que backup , restore et archive-push .

pg-primary ⇒ Configure log-path en utilisant l’environnement

sudo -u postgres bash -c ' \
       export PGBACKREST_LOG_PATH=/path/set/by/env && \
       pgbackrest --log-level-console=error help backup log-path'
pgBackRest 2.59.1 - 'backup' command - 'log-path' option help

Path where log files are stored.

The log path provides a location for pgBackRest to store log files. Note that
if log-level-file=off then no log path is required.
current: /path/set/by/env
default: /var/log/pgbackrest

Créer le dépôt

Le dépôt est l’emplacement où pgBackRest stocke les sauvegardes et les archives des segments WAL.

Il peut être difficile de prévoir à l’avance l’espace nécessaire. La meilleure approche consiste à effectuer quelques sauvegardes, puis à noter la taille des différents types de sauvegardes (pleines, incrémentielles, différentielles) et à mesurer la quantité de WAL générée par jour. Cela vous donnera une idée générale de l’espace requis, bien que les besoins évoluent probablement au fil du temps avec l’évolution de votre base de données.

Pour cette démonstration, le dépôt sera stocké sur le même hôte que le serveur PostgreSQL. Il s’agit de la configuration la plus simple et elle est utile dans les cas où un logiciel de sauvegarde traditionnel est utilisé pour sauvegarder l’hôte de la base de données.

pg-primary ⇒ Créer le dépôt pgBackRest

sudo mkdir -p /var/lib/pgbackrest
sudo chmod 750 /var/lib/pgbackrest
sudo chown postgres:postgres /var/lib/pgbackrest

Le chemin du dépôt doit être configuré afin que pgBackRest sache où le trouver.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez le chemin du dépôt pgBackRest

[demo]

pg1-path=/var/lib/postgresql/17/demo



[global]

repo1-path=/var/lib/pgbackrest

Plusieurs dépôts peuvent également être configurés. Consultez Dépôts multiples pour plus de détails.

Configurer la sauvegarde archivée

La sauvegarde d’un cluster PostgreSQL en cours d’exécution nécessite que l’archivage du WAL soit activé. %p est le mécanisme utilisé par PostgreSQL pour spécifier l’emplacement du segment WAL à archiver. Notez qu’au moins un segment WAL sera créé pendant le processus de sauvegarde, même si aucune écriture explicite n’est effectuée sur le cluster.

pg-primary:/etc/postgresql/17/demo/postgresql.conf ⇒ Configurez les paramètres d’archive

archive_command = 'pgbackrest --stanza=demo archive-push %p'

archive_mode = on

Le cluster PostgreSQL doit être redémarré après avoir apporté ces modifications et avant d’effectuer une sauvegarde.

pg-primary ⇒ Redémarrer le cluster de démonstration

sudo pg_ctlcluster 17 demo restart

Le paramètre hot_standby est activé par défaut et doit rester ainsi sur chaque cluster. Un cluster peut être restauré ultérieurement en réplica, par exemple un principal reconstruit en réplica après une bascule, et un réplica n’acceptera pas de connexions en lecture seule sans ce paramètre.

Lorsqu’il est prévu qu’un segment WAL mette plus de 60 secondes (valeur par défaut) à atteindre le dépôt pgBackRest, l’option archive-timeout de pgBackRest doit être augmentée. Notez que cette option n’est pas identique à l’option archive_timeout de PostgreSQL, qui est utilisée pour forcer un basculement de segment WAL ; elle est utile pour les bases de données présentant des périodes prolongées d’inactivité. Pour plus d’informations sur l’option archive_timeout de PostgreSQL, consultez PostgreSQL Write Ahead Log .

La commande archive-push peut être configurée avec ses propres options. Par exemple, un niveau de compression plus faible peut être défini afin d’accélérer l’archivage sans affecter le niveau de compression utilisé pour les sauvegardes.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configurer archive-push pour utiliser un niveau de compression plus faible

[demo]

pg1-path=/var/lib/postgresql/17/demo



[global]

repo1-path=/var/lib/pgbackrest



[global:archive-push]

compress-level=3

Cette configuration technique peut être utilisée pour toute commande et peut même cibler une stanza spécifique, par exemple demo:archive-push.

Configurer la rétention

pgBackRest expire les sauvegardes en fonction des options de rétention.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez la rétention à 2 sauvegardes complètes

[demo]

pg1-path=/var/lib/postgresql/17/demo



[global]

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2



[global:archive-push]

compress-level=3

Plus d’informations sur la rétention sont disponibles dans la section Retention .

Configurer le chiffrement du dépôt

Le dépôt sera configuré avec un type de chiffrement et une clé afin de démontrer le chiffrement. Le chiffrement est toujours effectué côté client, même si le type de dépôt (par exemple S3 ou autre magasin d’objets) prend en charge le chiffrement.

Il est important d’utiliser une phrase secrète longue et aléatoire pour la clé de chiffrement. Une bonne manière de la générer consiste à exécuter : openssl rand -base64 48.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez le chiffrement du dépôt pgBackRest

[demo]

pg1-path=/var/lib/postgresql/17/demo



[global]

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2



[global:archive-push]

compress-level=3

NOTE :

Les paramètres de chiffrement sont placés dans la section [global], ci-dessus, afin que la commande info puisse lire toutes les stanzas. Sans l’option stanza, la commande info ne lit les paramètres de chiffrement que dans la section [global], de sorte que les paramètres de chiffrement configurés par stanza nécessitent l’option stanza pour lire une stanza chiffrée.

Une fois que le dépôt a été configuré et que le stanza a été créé et vérifié, les paramètres de chiffrement du dépôt ne peuvent pas être modifiés.

Créer la stanza

La commande stanza-create doit être exécutée pour initialiser la stanza. Il est recommandé d’exécuter la commande check après stanza-create afin de vérifier que l’archivage et les sauvegardes sont correctement configurés.

pg-primary ⇒ Créer la stanza et vérifier la configuration

sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create
P00   INFO: stanza-create command begin 2.59.1: --exec-id=407-5732f46e --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/postgresql/17/demo --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --stanza=demo
P00   INFO: stanza-create for stanza 'demo' on repo1
P00   INFO: stanza-create command end: completed successfully

Vérifier la configuration

La commande check vérifie que pgBackRest et le paramètre archive_command sont correctement configurés pour l’archivage et les sauvegardes du stanza spécifié. Elle tente de vérifier tous les dépôts et bases de données configurés pour l’hôte sur lequel la commande est exécutée. Elle détecte les mauvaises configurations, en particulier celles relatives à l’archivage, qui entraînent des sauvegardes incomplètes car des segments WAL requis n’ont pas atteint l’archive. La commande peut être exécutée sur l’hôte PostgreSQL ou sur l’hôte dépôt. Elle peut également être exécutée sur l’hôte de basculement, toutefois, comme les opérations pg_switch_xlog()/pg_switch_wal() ne peuvent pas être effectuées sur le basculement, la commande ne testera que la configuration du dépôt.

Notez que pg_create_restore_point('pgBackRest Archive Check') et pg_switch_xlog()/pg_switch_wal() sont appelés pour forcer PostgreSQL à archiver un segment WAL.

pg-primary ⇒ Vérifier la configuration

sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check
P00   INFO: check command begin 2.59.1: --exec-id=416-47cf298c --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/postgresql/17/demo --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --stanza=demo
P00   INFO: check repo1 configuration (primary)
P00   INFO: check repo1 archive for WAL (primary)
P00   INFO: WAL segment 000000010000000000000001 successfully archived to '/var/lib/pgbackrest/archive/demo/17-1/0000000100000000/000000010000000000000001-b481bd553a004c1bceaa393a9f80bce8b015574b.gz' on repo1
P00   INFO: check command end: completed successfully

Optimisation des performances

pgBackRest dispose de plusieurs options de performance qui ne sont pas activées par défaut afin de préserver la compatibilité descendante du dépôt. Toutefois, lors de la création d’un nouveau dépôt, les options suivantes sont recommandées. Elles peuvent également être utilisées sur un dépôt existant, à condition de noter que les versions plus anciennes de pgBackRest ne seront pas en mesure de lire le dépôt. Cette incompatibilité dépend de la date d’introduction de la fonctionnalité, comme indiqué dans la liste ci-dessous.

  • compress-type - détermine l’algorithme de compression utilisé par les commandes backup et archive-push. La valeur par défaut est gz (Gzip), mais zst (Zstandard) est recommandé car il est bien plus rapide et offre une compression similaire à gz. zst est pris en charge par l’option compress-type depuis v2.27 . Voir Type de compression pour plus de détails.
  • repo-bundle - combine les petits fichiers lors de la sauvegarde afin de économiser de l’espace et d’améliorer la vitesse des commandes backup et restore, notamment sur des magasins d’objets tels que S3. L’option repo-bundle a été introduite dans v2.39 . Voir Regroupement de fichiers pour plus de détails.
  • repo-block - stocke uniquement les parties des fichiers qui ont changé plutôt que le fichier entier lors des diff/incr backup. Cela permet d’économiser de l’espace et d’accroître la vitesse de la backup. L’option repo-block a été introduite dans v2.46 , mais une version d’au moins v2.52.1 est recommandée. Voir Incrémentation par bloc pour plus de détails.

D’autres options de performance ne sont pas activées par défaut car elles nécessitent une configuration supplémentaire ou car la valeur par défaut est sûre (mais non optimale). Ces options sont disponibles dans toutes les versions v2 de pgBackRest.

  • process-max - détermine le nombre de processus utilisés pour les commandes. La valeur par défaut est 1, qui est presque jamais appropriée. Chaque commande utilise process-max de manière différente ; reportez-vous à la documentation de chaque commande pour plus de détails sur son utilisation.
  • archive-async - archive les fichiers WAL dans le dépôt par lots, ce qui accroît considérablement la vitesse d’archivage. Il n’est pas activé par défaut car il nécessite la création d’un chemin d’épissage. Consultez Archivage asynchrone pour plus de détails.
  • backup-standby - effectue la sauvegarde sur une instance secondaire plutôt que sur l’instance principale afin de réduire la charge sur cette dernière. Il n’est pas activé par défaut car il nécessite une configuration supplémentaire et la présence d’une ou plusieurs instances secondaires. Consultez Sauvegarde depuis une instance secondaire pour plus de détails.

Effectuer une sauvegarde

Par défaut, pgBackRest attend la prochaine vérification planifiée avant de démarrer une sauvegarde. Selon les paramètres checkpoint_timeout et checkpoint_segments dans PostgreSQL, il peut s’écouler assez de temps avant qu’une vérification ne soit terminée et que la sauvegarde puisse commencer. En général, il est préférable de définir start-fast=y afin que la sauvegarde démarre immédiatement. Cela force une vérification, mais comme les sauvegardes sont généralement exécutées une fois par jour, une vérification supplémentaire n’a pas d’impact notable sur les performances. Toutefois, sur des clusters très chargés, il peut être préférable de passer --start-fast en ligne de commande au besoin.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configure la reprise rapide de la sauvegarde

[demo]

pg1-path=/var/lib/postgresql/17/demo



[global]

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y



[global:archive-push]

compress-level=3

Pour effectuer une sauvegarde du cluster PostgreSQL, exécutez pgBackRest avec la commande backup.

pg-primary ⇒ Effectuer une sauvegarde du cluster de démonstration

sudo -u postgres pgbackrest --stanza=demo \
       --log-level-console=info backup
P00   INFO: backup command begin 2.59.1: --exec-id=443-5b80dea3 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/postgresql/17/demo --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --start-fast
P00   WARN: no prior backup exists, incr backup has been changed to full
P00   INFO: execute backup start: backup begins after the requested immediate checkpoint completes
P00   INFO: backup start archive = 000000010000000000000002, lsn = 0/2000028
       [filtered 3 lines of output]
P00   INFO: check archive for segment(s) 000000010000000000000002:000000010000000000000003
P00   INFO: new backup label = 20260817-045036F
P00   INFO: full backup size = 22MB, file total = 963
P00   INFO: backup command end: completed successfully
P00   INFO: expire command begin 2.59.1: --exec-id=443-5b80dea3 --log-level-console=info --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo

Par défaut, pgBackRest tente d’exécuter une sauvegarde incrémentielle. Toutefois, une sauvegarde incrémentielle doit être basée sur une sauvegarde complète, et comme aucune sauvegarde complète n’existait, pgBackRest a exécuté une sauvegarde complète à la place.

L’option type peut être utilisée pour spécifier une sauvegarde complète ou une sauvegarde différentielle.

pg-primary ⇒ Sauvegarde différentielle du cluster demo

sudo -u postgres pgbackrest --stanza=demo --type=diff \
       --log-level-console=info backup
       [filtered 7 lines of output]
P00   INFO: check archive for segment(s) 000000010000000000000004:000000010000000000000005
P00   INFO: new backup label = 20260817-045036F_20260817-045039D
P00   INFO: diff backup size = 8.3KB, file total = 963
P00   INFO: backup command end: completed successfully
P00   INFO: expire command begin 2.59.1: --exec-id=468-69e2296f --log-level-console=info --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo

Cette fois-ci, aucun avertissement n’a été affiché car une sauvegarde complète existait déjà. Bien qu’une sauvegarde incrémentielle puisse être basée sur une sauvegarde complète ou une sauvegarde différentielle, une sauvegarde différentielle doit obligatoirement être basée sur une sauvegarde complète. Une sauvegarde complète peut être effectuée en exécutant la commande backup avec --type=full.

Pendant une sauvegarde en ligne, pgBackRest attend que les segments WAL nécessaires à la cohérence de la sauvegarde soient archivés. Cette durée d’attente est régulée par l’option pgBackRest archive-timeout qui vaut 60 secondes par défaut. Si l’archivage d’un segment individuel est connu pour prendre plus de temps, cette option doit être augmentée.

Planifier une sauvegarde

Les sauvegardes peuvent être planifiées à l’aide d’utilitaires tels que cron.

Dans l’exemple suivant, deux tâches cron sont configurées pour s’exécuter ; les sauvegardes complètes sont planifiées à 6 h 30 tous les dimanches, tandis que les sauvegardes différentielles sont planifiées à 6 h 30 du lundi au samedi. Si ce fichier crontab est installé pour la première fois en milieu de semaine, pgBackRest exécutera une sauvegarde complète lors de la première exécution de la tâche différentielle, suivie d’une sauvegarde différentielle le lendemain.

#m h   dom mon dow   command
30 06  *   *   0     pgbackrest --type=full --stanza=demo backup
30 06  *   *   1-6   pgbackrest --type=diff --stanza=demo backup

Une fois les sauvegardes planifiées, il est important de configurer la rétention afin que les sauvegardes soient expirées selon un calendrier régulier, voir Retention .

Informations de sauvegarde

Utilisez la commande info pour obtenir des informations sur les sauvegardes.

pg-primary ⇒ Obtenir les informations sur le cluster de démonstration

sudo -u postgres pgbackrest info
stanza: demo
    status: ok
    cipher: aes-256-cbc

    db (current)
        wal archive min/max (17): 000000010000000000000001/000000010000000000000005
        full backup: 20260817-045036F
            timestamp start/stop: 2026-08-17 04:50:36+00 / 2026-08-17 04:50:39+00
            wal start/stop: 000000010000000000000002 / 000000010000000000000003
            database size: 22MB, database backup size: 22MB
            repo1: backup set size: 2.9MB, backup size: 2.9MB
        diff backup: 20260817-045036F_20260817-045039D
            timestamp start/stop: 2026-08-17 04:50:39+00 / 2026-08-17 04:50:41+00
            wal start/stop: 000000010000000000000004 / 000000010000000000000005
            database size: 22MB, database backup size: 8.3KB
            repo1: backup set size: 2.9MB, backup size: 464B
            backup reference total: 1 full

La commande info s’applique à une seule stanza ou à toutes les stanzas. La sortie texte est la valeur par défaut et fournit un résumé lisible par l’humain des sauvegardes pour la ou les stanzas demandées. Ce format peut évoluer à tout moment dans une version.

Pour une sortie lisible par machine, utilisez --output=json. La sortie JSON contient bien plus d’informations que la sortie texte et est maintenue stable, sauf en cas de bug.

Pour accélérer l’exécution, restreindre la sortie à l’information de progression uniquement en spécifiant --detail-level=progress. Notez que cela ignore toutes les vérifications sauf la disponibilité de la stanza.

Chaque stanza dispose d’une section distincte et il est possible de limiter la sortie à une seule stanza à l’aide de l’option --stanza. La stanza ‘status’ indique brièvement l’état de santé de la stanza. Si cette valeur est ‘ok’, pgBackRest fonctionne normalement. Si plusieurs dépôts sont configurés, une valeur de ‘mixed’ indique que la stanza n’est pas dans un état sain sur un ou plusieurs dépôts ; dans ce cas, l’état de la stanza sera détaillé par dépôt. Dans les cas où une erreur s’est produite sur un dépôt sans correspondre à un code d’erreur connu, un code d’erreur de ‘other’ sera utilisé et les détails complets de l’erreur seront fournis. La ‘wal archive min/max’ affiche le WAL minimum et maximum actuellement stockés dans l’archive et, dans le cas de plusieurs dépôts, sera rapportée sur l’ensemble des dépôts sauf si l’option --repo est définie. Notez qu’il peut y avoir des lacunes dues aux politiques de rétention des archives ou à d’autres raisons.

Les messages ‘backup/expire running’ et/ou ‘restore running’ s’affichent aux côtés des informations ‘status’ si l’une quelconque de ces commandes est actuellement en cours d’exécution sur l’hôte. La progression par répertoire sera également indiquée dans la sortie texte, et un tableau ‘repo’ sera inclus dans la sortie JSON.

Les sauvegardes sont affichées du plus ancien au plus récent. La sauvegarde la plus ancienne sera toujours une sauvegarde complète (indiquée par un F à la fin de l’étiquette), mais la sauvegarde la plus récente peut être complète, différentielle (se terminant par D) ou incrémentielle (se terminant par I).

Le ‘timestamp start/stop’ définit la période pendant laquelle la sauvegarde a été exécutée. Le ‘timestamp stop’ peut être utilisé pour déterminer la sauvegarde à utiliser lors d’une restauration à un instant donné. Plus d’informations sur la restauration à un instant donné sont disponibles dans la section Restauration à un instant donné .

Le ‘wal start/stop’ définit la plage de WAL nécessaire pour rendre la base de données cohérente lors d’une restauration. La commande backup s’assurera que cette plage de WAL se trouve dans l’archive avant de se terminer.

La ‘database size’ correspond à la taille totale non compressée de la base de données, tandis que la ‘database backup size’ représente la quantité de données à sauvegarder réellement ; elles sont identiques pour les sauvegardes complètes.

Le ‘repo’ indique dans quel dépôt se trouve cette sauvegarde. Le ‘backup set size’ inclut tous les fichiers de cette sauvegarde ainsi que toutes les sauvegardes référencées dans le dépôt nécessaires à la restauration de la base de données à partir de cette sauvegarde, tandis que le ‘backup size’ inclut uniquement les fichiers de cette sauvegarde (ceux-ci seront également identiques pour les sauvegardes complètes). Les tailles des dépôts reflètent les tailles des fichiers compressés si la compression est activée dans pgBackRest.

Le ‘backup reference total’ résume la liste des sauvegardes supplémentaires nécessaires pour effectuer la restauration de cette sauvegarde. Utilisez l’option --set pour afficher la liste complète de référence.

Restaurer une sauvegarde

Les sauvegardes peuvent vous protéger contre plusieurs scénarios de catastrophe, dont les plus fréquents sont les pannes matérielles et la corruption des données. La méthode la plus simple pour simuler une corruption de données consiste à supprimer un fichier important du cluster PostgreSQL.

pg-primary ⇒ Arrêtez le cluster de démonstration et supprimez le fichier pg_control

sudo pg_ctlcluster 17 demo stop
sudo -u postgres rm /var/lib/postgresql/17/demo/global/pg_control

Le démarrage du cluster sans ce fichier important entraînera une erreur.

pg-primary ⇒ Tentative de démarrage du cluster démo corrompu

sudo pg_ctlcluster 17 demo start
Error: /usr/lib/postgresql/17/bin/pg_ctl /usr/lib/postgresql/17/bin/pg_ctl start -D /var/lib/postgresql/17/demo -l /var/log/postgresql/postgresql-17-demo.log -s -o  -c config_file="/etc/postgresql/17/demo/postgresql.conf"  exited with status 1:
postgres: could not find the database system
Expected to find it in the directory "/var/lib/postgresql/17/demo",
but could not open file "/var/lib/postgresql/17/demo/global/pg_control": No such file or directory
Examine the log output.

Pour restaurer une sauvegarde du cluster PostgreSQL, exécutez pgBackRest avec la commande restore. Le cluster doit être arrêté (dans ce cas, il est déjà arrêté) et tous les fichiers doivent être supprimés du répertoire de données PostgreSQL.

pg-primary ⇒ Supprimer les anciens fichiers du cluster de démonstration

sudo -u postgres find /var/lib/postgresql/17/demo -mindepth 1 -delete

pg-primary ⇒ Effectuer la restauration du cluster de démonstration et démarrer PostgreSQL

sudo -u postgres pgbackrest --stanza=demo restore
sudo pg_ctlcluster 17 demo start

Cette fois, le cluster a démarré correctement car la restauration a remplacé le fichier pg_control manquant.

Plus d’informations sur la commande restore sont disponibles dans la section Restauration .


Surveillance

La surveillance est une composante essentielle de tout système de production. De nombreuses outils sont disponibles, et pgBackRest peut être surveillé sur l’un d’entre eux avec un peu d’effort.

pgBackRest peut produire des informations sur le dépôt au format JSON, qui inclut la liste de toutes les sauvegardes pour chaque stanza ainsi que les informations sur l’archive WAL.

En PostgreSQL

La commande PostgreSQL COPY permet de charger les informations de pgBackRest dans une table. L’exemple suivant encapsule cette logique dans une fonction pouvant être utilisée pour effectuer des requêtes en temps réel.

pg-primary ⇒ Charger la fonction d’information pgBackRest pour PostgreSQL

sudo -u postgres cat \
       /var/lib/postgresql/pgbackrest/doc/example/pgsql-pgbackrest-info.sql
-- An example of monitoring pgBackRest from within PostgreSQL
--
-- Use copy to export data from the pgBackRest info command into the jsonb
-- type so it can be queried directly by PostgreSQL.

-- Create monitor schema
create schema monitor;

-- Get pgBackRest info in JSON format
create function monitor.pgbackrest_info()
    returns jsonb AS $$
declare
    data jsonb;
begin
    -- Create a temp table to hold the JSON data
    create temp table temp_pgbackrest_data (data text);

    -- Copy data into the table directly from the pgBackRest info command
    copy temp_pgbackrest_data (data)
        from program
            'pgbackrest --output=json info' (format text);

    select replace(temp_pgbackrest_data.data, E'\n', '\n')::jsonb
      into data
      from temp_pgbackrest_data;

    drop table temp_pgbackrest_data;

    return data;
end $$ language plpgsql;
sudo -u postgres psql -f \
       /var/lib/postgresql/pgbackrest/doc/example/pgsql-pgbackrest-info.sql

À présent, la fonction monitor.pgbackrest_info() peut être utilisée pour déterminer l’heure de la dernière sauvegarde réussie et le WAL archivé pour une stanza.

pg-primary ⇒ Interroger l’heure de la dernière sauvegarde réussie et des journaux WAL archivés

sudo -u postgres cat \
       /var/lib/postgresql/pgbackrest/doc/example/pgsql-pgbackrest-query.sql
-- Get last successful backup for each stanza
--
-- Requires the monitor.pgbackrest_info function.
with stanza as
(
    select data->'name' as name,
           data->'backup'->(
               jsonb_array_length(data->'backup') - 1) as last_backup,
           data->'archive'->(
               jsonb_array_length(data->'archive') - 1) as current_archive
      from jsonb_array_elements(monitor.pgbackrest_info()) as data
)
select name,
       to_timestamp(
           (last_backup->'timestamp'->>'stop')::numeric) as last_successful_backup,
       current_archive->>'max' as last_archived_wal
  from stanza;
sudo -u postgres psql -f \
       /var/lib/postgresql/pgbackrest/doc/example/pgsql-pgbackrest-query.sql
  name  | last_successful_backup |    last_archived_wal
--------+------------------------+--------------------------
 "demo" | 2026-08-17 04:50:41+00 | 000000010000000000000005
(1 row)

Utilisation de jq

jq est un utilitaire en ligne de commande permettant d’extraire facilement des données depuis des fichiers JSON.

pg-primary ⇒ Installer l’utilitaire jq

sudo apt-get install jq

À présent, jq peut être utilisé pour interroger l’heure de la dernière sauvegarde réussie pour un stanza.

pg-primary ⇒ Requête le moment de la dernière sauvegarde réussie

sudo -u postgres pgbackrest --output=json --stanza=demo info | \
       jq '.[0] | .backup[-1] | .timestamp.stop'
1786942241

Ou le dernier WAL archivé.

pg-primary ⇒ Requête du dernier WAL archivé

sudo -u postgres pgbackrest --output=json --stanza=demo info | \
       jq '.[0] | .archive[-1] | .max'
"000000010000000000000005"

NOTE :

Cette syntaxe nécessite jq v1.5.

NOTE :

jq peut arrondir des nombres élevés tels que les identifiants système. Testez vos requêtes avec soin.


sauvegarde

Lorsque plusieurs dépôts sont configurés, pgBackRest effectuera la sauvegarde vers le dépôt de priorité la plus élevée (par exemple repo1) sauf si l’option --repo est spécifiée.

pgBackRest ne dispose pas de planificateur intégré, il est donc préférable de l’exécuter depuis cron ou un autre mécanisme de planification.

Consultez Effectuer une sauvegarde pour plus de détails et d’exemples.

Regroupement de fichiers

Regrouper les fichiers dans le dépôt permet de gagner du temps lors de la sauvegarde et de libérer de l’espace dans le dépôt. Cet avantage est particulièrement marqué lorsque le dépôt est stocké sur un magasin d’objets comme S3 ou sur des systèmes de fichiers à grandes tailles de bloc. Le temps de création par fichier est plus élevé sur les magasins d’objets, et des fichiers très petits peuvent coûter autant à stocker qu’un fichier plus volumineux.

La fonctionnalité de regroupement de fichiers est activée avec l’option repo-bundle.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configure repo1-bundle

[demo]

pg1-path=/var/lib/postgresql/17/demo



[global]

repo1-bundle=y

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y



[global:archive-push]

compress-level=3

Une sauvegarde complète sans regroupement de fichiers comportera plus de 1000 fichiers dans le chemin de sauvegarde, mais avec le regroupement, le nombre total de fichiers est fortement réduit. Un avantage supplémentaire est que les fichiers de taille nulle ne sont pas stockés (sauf dans le manifeste), contrairement à une sauvegarde normale où chaque fichier de taille nulle est stocké individuellement.

pg-primary ⇒ Effectuer une sauvegarde complète

sudo -u postgres pgbackrest --stanza=demo --type=full backup

pg-primary ⇒ Vérifier le total des fichiers

sudo -u postgres find /var/lib/pgbackrest/backup/demo/latest/ -type f | wc -l
5

Les options repo-bundle-size et repo-bundle-limit peuvent être utilisées pour le réglage, bien que les valeurs par défaut soient optimales dans la plupart des cas.

Bien que le regroupement de fichiers soit généralement plus efficace, le désavantage réside dans la difficulté d’accès manuel aux fichiers depuis le dépôt. Il peut ne pas être adapté aux stockages à déduplication, car chaque sauvegarde complète organise les fichiers dans les paquets de manière différente. Enfin, les paquets de fichiers ne peuvent pas être repris, veillez donc à ne pas définir repo-bundle-limit trop élevé.

Incrémentation par bloc

Les sauvegardes incrémentielles par bloc économisent de l’espace en ne stockant que les parties d’un fichier modifiées depuis la sauvegarde précédente, plutôt que le fichier entier.

La fonctionnalité de sauvegarde incrémentielle par bloc est activée avec l’option repo-block et fonctionne de manière optimale lorsqu’elle est activée pour toutes les types de sauvegarde. Le regroupement des fichiers doit également être activé.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configure repo1-block

[demo]

pg1-path=/var/lib/postgresql/17/demo



[global]

repo1-block=y

repo1-bundle=y

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y



[global:archive-push]

compress-level=3

Annotations de sauvegarde

Les utilisateurs peuvent attacher des paires clé/valeur explicatives à la sauvegarde. Cette option peut être utilisée plusieurs fois pour attacher plusieurs annotations.

pg-primary ⇒ Effectuer une sauvegarde complète avec annotations

sudo -u postgres pgbackrest --stanza=demo --annotation=source="demo backup" \
       --annotation=key=value --type=full backup

Les annotations sont produites par la sortie texte de la commande info lorsque une sauvegarde est spécifiée avec --set, et apparaissent toujours dans la sortie JSON.

pg-primary ⇒ Obtenir les informations sur le cluster de démonstration

sudo -u postgres pgbackrest --stanza=demo --set=20260817-045055F info
stanza: demo
    status: ok
    cipher: aes-256-cbc

    db (current)
        wal archive min/max (17): 000000020000000000000007/000000020000000000000009

        full backup: 20260817-045055F
            timestamp start/stop: 2026-08-17 04:50:55+00 / 2026-08-17 04:50:56+00
            wal start/stop: 000000020000000000000008 / 000000020000000000000009
            lsn start/stop: 0/8000028 / 0/9000050
            database size: 22MB, database backup size: 22MB
            repo1: backup size: 2.9MB
            database list: postgres (5)
            annotation(s)
                key: value
                source: demo backup

Les annotations incluses avec la commande backup peuvent être ajoutées, modifiées ou supprimées ultérieurement à l’aide de la commande annotate.

pg-primary ⇒ Modifier les annotations de sauvegarde

sudo -u postgres pgbackrest --stanza=demo --set=20260817-045055F \
       --annotation=key= --annotation=new_key=new_value annotate
sudo -u postgres pgbackrest --stanza=demo --set=20260817-045055F info
stanza: demo
    status: ok
    cipher: aes-256-cbc

    db (current)
        wal archive min/max (17): 000000020000000000000007/000000020000000000000009

        full backup: 20260817-045055F
            timestamp start/stop: 2026-08-17 04:50:55+00 / 2026-08-17 04:50:56+00
            wal start/stop: 000000020000000000000008 / 000000020000000000000009
            lsn start/stop: 0/8000028 / 0/9000050
            database size: 22MB, database backup size: 22MB
            repo1: backup size: 2.9MB
            database list: postgres (5)
            annotation(s)
                new_key: new_value
                source: demo backup

rétention

En général, il est préférable de conserver autant de sauvegardes que possible afin de disposer d’une fenêtre plus étendue pour la restauration à un instant donné Restauration à un instant donné , mais des contraintes pratiques telles que l’espace disque doivent également être prises en compte. Les options de rétention suppriment automatiquement les sauvegardes anciennes une fois qu’elles ne sont plus nécessaires.

pgBackRest effectue la rotation des sauvegardes complètes selon le type de rétention, qui peut être défini par un nombre ou une période de temps. Lorsqu’un nombre est spécifié, l’expiration n’est pas liée à la date de création des sauvegardes, mais au nombre de sauvegardes à conserver. Les sauvegardes différentielles sont basées sur un nombre, mais sont toujours expirées lorsque la sauvegarde complète dont elles dépendent l’est. Les sauvegardes incrémentielles ne sont pas expirées indépendamment par rétention — elles sont toujours expirées en même temps que leur sauvegarde complète ou différentielle associée. Pour plus de détails et des exemples, reportez-vous aux sections Rétention des sauvegardes complètes et Rétention des sauvegardes différentielles .

L’archive WAL est conservée par défaut pour les sauvegardes n’ayant pas expiré, mais, bien que non recommandé, ce délai peut être modifié par dépôt à l’aide de l’option retention-archive. Voir la section Archive Retention pour les détails et exemples.

La commande expire s’exécute automatiquement après chaque sauvegarde réussie et peut également être exécutée par l’utilisateur. Lorsqu’elle est exécutée par l’utilisateur, l’expiration s’effectue selon les paramètres de rétention définis pour chaque dépôt configuré. Si l’option --repo est fournie, l’expiration s’applique uniquement au dépôt spécifié. L’expiration peut également être limitée par l’utilisateur à un jeu de sauvegarde spécifique à l’aide de l’option --set, et, sauf si l’option --repo est spécifiée, tous les dépôts seront recherchés et tous ceux correspondant aux critères seront supprimés. Il convient de noter que la planification de rétention des archives sera vérifiée et appliquée chaque fois que la commande expire est exécutée.

Rétention des sauvegardes complètes

L’option repo1-retention-full-type détermine la manière dont l’option repo1-retention-full est interprétée : soit comme le nombre de sauvegardes complètes à conserver, soit comme le nombre de jours pendant lesquels conserver les sauvegardes complètes. Une nouvelle sauvegarde doit être terminée avant qu’une expiration ne puisse se produire — cela signifie que si repo1-retention-full-type=count et repo1-retention-full=2, alors trois sauvegardes complètes seront conservées avant que la plus ancienne ne soit supprimée, ou que si repo1-retention-full-type=time et repo1-retention-full=20, alors une sauvegarde complète d’au moins 20 jours d’âge doit exister avant qu’une expiration ne puisse avoir lieu.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configure repo1-retention-full

[demo]

pg1-path=/var/lib/postgresql/17/demo



[global]

repo1-block=y

repo1-bundle=y

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y



[global:archive-push]

compress-level=3

Sauvegarde repo1-retention-full=2 mais actuellement, il n’existe qu’une seule sauvegarde complète, donc la prochaine sauvegarde complète à exécuter n’expirera aucune sauvegarde complète.

pg-primary ⇒ Effectuer une sauvegarde complète

sudo -u postgres pgbackrest --stanza=demo --type=full \
       --log-level-console=detail backup
       [filtered 975 lines of output]
P00   INFO: repo1: remove expired backup 20260817-045053F
P00 DETAIL: repo1: 17-1 archive retention on backup 20260817-045055F, start = 000000020000000000000008
P00   INFO: repo1: 17-1 remove archive, start = 000000020000000000000007, stop = 000000020000000000000007
P00   INFO: expire command end: completed successfully

L’archive est expirée car des segments WAL ont été générés avant la sauvegarde la plus ancienne. Ces segments ne sont pas utiles pour la récupération — seuls les segments WAL générés après une sauvegarde peuvent être utilisés pour récupérer cette sauvegarde.

pg-primary ⇒ Effectuer une sauvegarde complète

sudo -u postgres pgbackrest --stanza=demo --type=full \
       --log-level-console=info backup
       [filtered 11 lines of output]
P00   INFO: repo1: expire full backup 20260817-045055F
P00   INFO: repo1: remove expired backup 20260817-045055F
P00   INFO: repo1: 17-1 remove archive, start = 000000020000000000000008, stop = 000000020000000000000009
P00   INFO: expire command end: completed successfully

La sauvegarde complète 20260817-045036F a expiré et la rétention des archives est basée sur 20260817-045058F, qui est désormais la sauvegarde complète la plus ancienne.

Rétention des sauvegardes différentielles

Définissez repo1-retention-diff sur le nombre de sauvegardes différentielles requises. Les sauvegardes différentielles ne dépendent que de la dernière sauvegarde complète, il est donc possible de créer un ensemble « en rouleau » de sauvegardes différentielles pour la dernière journée ou plus. Cela permet des restaurations rapides à des points récents dans le temps tout en réduisant la consommation globale d’espace.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configure repo1-retention-diff

[demo]

pg1-path=/var/lib/postgresql/17/demo



[global]

repo1-block=y

repo1-bundle=y

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-diff=1

repo1-retention-full=2

start-fast=y



[global:archive-push]

compress-level=3

Avec repo1-retention-diff=1, deux sauvegardes différentielles doivent être effectuées avant que l’une d’elles n’expire. Une sauvegarde incrémentielle est ajoutée pour illustrer l’expiration incrémentielle, qui dépend ici de l’expiration de la sauvegarde différentielle.

pg-primary ⇒ Effectuer des sauvegardes différentielles et incrémentielles

sudo -u postgres pgbackrest --stanza=demo --type=diff backup
sudo -u postgres pgbackrest --stanza=demo --type=incr backup

Effectuer maintenant une sauvegarde différentielle expire les sauvegardes différentielles et incrémentielles précédentes, ne laissant ainsi qu’une seule sauvegarde différentielle.

pg-primary ⇒ Effectuer une sauvegarde différentielle

sudo -u postgres pgbackrest --stanza=demo --type=diff \
       --log-level-console=info backup
       [filtered 10 lines of output]
P00   INFO: backup command end: completed successfully
P00   INFO: expire command begin 2.59.1: --exec-id=930-d66fce46 --log-level-console=info --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-diff=1 --repo1-retention-full=2 --stanza=demo
P00   INFO: repo1: expire diff backup set 20260817-045100F_20260817-045102D, 20260817-045100F_20260817-045103I
P00   INFO: repo1: remove expired backup 20260817-045100F_20260817-045103I
P00   INFO: repo1: remove expired backup 20260817-045100F_20260817-045102D
P00   INFO: expire command end: completed successfully

Rétention des archives

Bien que pgBackRest supprime automatiquement les segments WAL archivés lors de l’expiration des sauvegardes (le comportement par défaut expire les WAL des sauvegardes complètes en fonction de l’option repo1-retention-full), il peut être utile d’expirer l’archive de manière plus agressive afin de libérer de l’espace disque. Notez que les sauvegardes complètes sont traitées comme des sauvegardes différentielles pour l’application de la rétention des archives différentielles.

L’expiration de l’archive ne supprimera jamais les segments WAL nécessaires à la cohérence d’une sauvegarde. Toutefois, comme la récupération à un point donné (PITR) ne fonctionne qu’avec un flux WAL continu, une attention particulière doit être portée lors de l’expiration agressive de l’archive en dehors du processus normal d’expiration des sauvegardes. Pour déterminer quels éléments seront supprimés sans effectuer réellement l’expiration, l’option dry-run peut être fournie en ligne de commande avec la commande expire.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configure repo1-retention-diff

[demo]

pg1-path=/var/lib/postgresql/17/demo



[global]

repo1-block=y

repo1-bundle=y

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-diff=2

repo1-retention-full=2

start-fast=y



[global:archive-push]

compress-level=3

pg-primary ⇒ Effectuer une sauvegarde différentielle

sudo -u postgres pgbackrest --stanza=demo --type=diff \
       --log-level-console=info backup
       [filtered 6 lines of output]
P00   INFO: backup stop archive = 000000020000000000000017, lsn = 0/17000050
P00   INFO: check archive for segment(s) 000000020000000000000016:000000020000000000000017
P00   INFO: new backup label = 20260817-045100F_20260817-045106D
P00   INFO: diff backup size = 8.3KB, file total = 963
P00   INFO: backup command end: completed successfully
       [filtered 2 lines of output]

pg-primary ⇒ Expire archive

sudo -u postgres pgbackrest --stanza=demo --log-level-console=detail \
       --repo1-retention-archive-type=diff --repo1-retention-archive=1 expire
P00   INFO: expire command begin 2.59.1: --exec-id=1009-97f280d8 --log-level-console=detail --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-archive=1 --repo1-retention-archive-type=diff --repo1-retention-diff=2 --repo1-retention-full=2 --stanza=demo
P00 DETAIL: repo1: 17-1 archive retention on backup 20260817-045058F, start = 00000002000000000000000A, stop = 00000002000000000000000B
P00 DETAIL: repo1: 17-1 archive retention on backup 20260817-045100F, start = 00000002000000000000000C, stop = 00000002000000000000000D
P00 DETAIL: repo1: 17-1 archive retention on backup 20260817-045100F_20260817-045104D, start = 000000020000000000000012, stop = 000000020000000000000013
P00 DETAIL: repo1: 17-1 archive retention on backup 20260817-045100F_20260817-045106D, start = 000000020000000000000016
P00   INFO: repo1: 17-1 remove archive, start = 00000002000000000000000E, stop = 000000020000000000000011
P00   INFO: repo1: 17-1 remove archive, start = 000000020000000000000014, stop = 000000020000000000000015
P00   INFO: expire command end: completed successfully

La sauvegarde différentielle 20260817-045100F_20260817-045104D contient des segments WAL qui doivent être conservés pour assurer la cohérence des sauvegardes plus anciennes, même si elles ne peuvent plus être restaurées ultérieurement avec une récupération à un point précis (PITR). Les segments WAL générés après 20260817-045100F_20260817-045104D mais avant 20260817-045100F_20260817-045106D sont supprimés. Les segments WAL générés après la nouvelle sauvegarde 20260817-045100F_20260817-045106D sont conservés et peuvent être utilisés pour une récupération à un point précis (PITR).

Étant donné que les sauvegardes complètes sont considérées comme des sauvegardes différentielles afin de déterminer la rétention des archives différentielles, si une sauvegarde complète est désormais effectuée avec les mêmes paramètres, seule l’archive correspondante à cette sauvegarde complète est conservée pour la récupération à un instant donné.


restauration

La commande de restauration sélectionne automatiquement la dernière sauvegarde du premier dépôt où des sauvegardes existent (voir Démarrage rapide - Restaurer une sauvegarde ). L’ordre dans lequel les dépôts sont vérifiés est déterminé par le paramètre pgbackrest.conf (par exemple, repo1 sera vérifié avant repo2). Pour sélectionner un dépôt spécifique, l’option --repo peut être utilisée (par exemple, --repo=1). L’option --set peut être utilisée si une sauvegarde autre que la plus récente est souhaitée.

Lorsqu’une restauration à un instant donné de --type=time ou --type=lsn est spécifiée, le temps cible ou le numéro LSN cible doit être précisé à l’aide de l’option --target. Si aucune sauvegarde n’est spécifiée via l’option --set, les dépôts configurés seront examinés, dans l’ordre, à la recherche d’une sauvegarde contenant le temps ou le numéro LSN demandés. Si aucune sauvegarde correspondante n’est trouvée, la dernière sauvegarde du premier dépôt contenant des sauvegardes sera utilisée pour --type=time, tandis qu’aucune sauvegarde ne sera sélectionnée pour --type=lsn. Pour les autres types de restauration à un instant donné, par exemple xid, l’option --set doit être fournie si le temps cible est antérieur à la dernière sauvegarde. Voir Restauration à un instant donné pour plus de détails et d’exemples.

Les slots de réplication ne sont pas inclus, conformément à la recommandation de PostgreSQL. Consultez Sauvegarde du répertoire de données dans la documentation PostgreSQL pour plus d’informations.

Les sections suivantes présentent des fonctionnalités supplémentaires de la commande restore.

Propriétaire du fichier

Si un restore est exécuté en tant qu’utilisateur non privilégié (scénario typique), tous les fichiers restaurés appartiendront à l’utilisateur/groupe exécutant pgBackRest. Si des fichiers existants ne sont pas possédés par l’utilisateur/groupe exécutant, une erreur se produira si la propriété ne peut pas être mise à jour pour correspondre à l’utilisateur/groupe exécutant. Dans ce cas, la propriété des fichiers devra être mise à jour par un utilisateur ayant des privilèges avant de pouvoir réessayer la restauration.

Si un restore est exécuté en tant qu’utilisateur root, pgBackRest tentera de recréer la propriété enregistrée dans le manifeste au moment de la sauvegarde. Seuls les noms d’utilisateur/groupe sont stockés dans le manifeste, donc les mêmes noms doivent exister sur l’hôte de restauration pour que cela fonctionne. Si le nom d’utilisateur/groupe ne peut pas être trouvé localement, l’utilisateur/groupe du répertoire de données PostgreSQL sera utilisé, puis root si l’utilisateur/groupe du répertoire de données ne peut pas être mappé à un nom.

Option Delta

Restaurer une sauvegarde dans Mise en route rapide nécessite que le répertoire du cluster de base de données soit nettoyé avant la restore de restauration. L’option delta permet à pgBackRest de déterminer automatiquement quels fichiers du répertoire du cluster de base de données peuvent être conservés et quels fichiers doivent être restaurés à partir de la sauvegarde — elle supprime également les fichiers absents du manifeste de sauvegarde, ce qui permet d’éliminer les modifications divergentes. Cette opération est réalisée en calculant un hachage cryptographique SHA-1 pour chaque fichier du répertoire du cluster de base de données. Si le hachage SHA-1 ne correspond pas au hachage stocké dans la sauvegarde, ce fichier sera restauré. Cette opération est particulièrement efficace lorsqu’elle est combinée avec l’option process-max. Comme le serveur PostgreSQL est arrêté pendant la restauration, un plus grand nombre de processus peut être utilisé que lors d’une sauvegarde, où le serveur PostgreSQL est en cours d’exécution.

pg-primary ⇒ Arrêtez le cluster de démonstration, effectuez une restauration incrémentielle

sudo pg_ctlcluster 17 demo stop
sudo -u postgres pgbackrest --stanza=demo --delta \
       --log-level-console=detail restore
       [filtered 2 lines of output]
P00 DETAIL: check '/var/lib/postgresql/17/demo' exists
P00 DETAIL: remove 'global/pg_control' so cluster will not start if restore does not complete
P00   INFO: remove invalid files/links/paths from '/var/lib/postgresql/17/demo'
P00 DETAIL: remove invalid file '/var/lib/postgresql/17/demo/backup_label.old'
P00 DETAIL: remove invalid file '/var/lib/postgresql/17/demo/base/1/pg_internal.init'
       [filtered 769 lines of output]
P01 DETAIL: restore file /var/lib/postgresql/17/demo/base/1/113 - exists and matches backup (bundle 20260817-045100F/1/2665832, 8KB, 88.00%) checksum 1cd643347b87a472ff001ae124e4b532ce998d2f
P01 DETAIL: restore file /var/lib/postgresql/17/demo/base/1/112 - exists and matches backup (bundle 20260817-045100F/1/2665920, 8KB, 88.03%) checksum 2cbd5cf8fb22ef627eb539776c5ec7457bdb2890
P01 DETAIL: restore file /var/lib/postgresql/17/demo/PG_VERSION - exists and matches backup (bundle 20260817-045100F/1/2666008, 3B, 88.03%) checksum ad48103e4fc71796e9708cafc43adeed0d1076b7
P01 DETAIL: restore file /var/lib/postgresql/17/demo/base/5/2608_fsm - exists and matches backup (bundle 20260817-045100F/1/2666032, 24KB, 88.14%) checksum e807fe622bbfccc5e9ad7f453ecb4f0eaccb75e2
P01 DETAIL: restore file /var/lib/postgresql/17/demo/postgresql.auto.conf - exists and matches backup (bundle 20260817-045100F/1/2666272, 229B, 88.14%) checksum 4c90da9d2877b1d48cf7f75c3a53cbd9fce086e7
       [filtered 233 lines of output]

pg-primary ⇒ Redémarrer PostgreSQL

sudo pg_ctlcluster 17 demo start

Restauration des bases de données sélectionnées

Il peut arriver que l’on souhaite restaurer sélectivement des bases de données spécifiques à partir d’une sauvegarde de cluster. Cela peut être utile pour des raisons de performance ou pour déplacer des bases sélectionnées vers une machine qui ne dispose pas d’espace suffisant pour restaurer l’intégralité de la sauvegarde du cluster.

Pour démontrer cette fonctionnalité, deux bases de données sont créées : test1 et test2.

pg-primary ⇒ Créer deux bases de données de test

sudo -u postgres psql -c "create database test1;"
CREATE DATABASE
sudo -u postgres psql -c "create database test2;"
CREATE DATABASE

Chaque base de données de test sera initialisée avec des tables et des données afin de démontrer que la restauration sélective fonctionne.

pg-primary ⇒ Créer une table de test dans chaque base de données

sudo -u postgres psql -c "create table test1_table (id int); \
       insert into test1_table (id) values (1);" test1
CREATE TABLE
INSERT 0 1
sudo -u postgres psql -c "create table test2_table (id int); \
       insert into test2_table (id) values (2);" test2
CREATE TABLE
INSERT 0 1

Une nouvelle sauvegarde est exécutée afin que pgBackRest prenne connaissance des nouveaux bases de données.

pg-primary ⇒ Effectuer une sauvegarde

sudo -u postgres pgbackrest --stanza=demo --type=incr backup

L’une des principales raisons d’utiliser une restauration sélective est de conserver de l’espace. La taille de la base de données test1 est indiquée ici afin de pouvoir la comparer à l’utilisation du disque après une restauration sélective.

pg-primary ⇒ Afficher l’espace utilisé par la base test1

sudo -u postgres du -sh /var/lib/postgresql/17/demo/base/32768
7.4M	/var/lib/postgresql/17/demo/base/32768

Si la base de données à restaurer n’est pas connue, utilisez l’option info de la commande set pour découvrir les bases de données faisant partie de l’ensemble de sauvegarde.

pg-primary ⇒ Afficher la liste des bases de données pour la sauvegarde

sudo -u postgres pgbackrest --stanza=demo \
       --set=20260817-045100F_20260817-045113I info
       [filtered 12 lines of output]
            repo1: backup size: 1.9MB
            backup reference list: 20260817-045100F, 20260817-045100F_20260817-045106D
            database list: postgres (5), test1 (32768), test2 (32769)

Arrêtez le cluster et effectuez une restauration uniquement de la base test2. Les bases de données intégrées (template0, template1 et postgres) sont toujours restaurées.

AVERTISSEMENT :

La récupération peut échouer sauf si --type=immediate est spécifié. Cela est dû au fait qu’une fois la cohérence atteinte, PostgreSQL signale les pages nulles comme des erreurs, même pour une écriture complète de page. Pour PostgreSQL ≥ 13, le paramètre ignore_invalid_pages peut être utilisé pour ignorer les pages non valides. Dans ce cas, il est important de vérifier les journaux après la récupération afin de s’assurer qu’aucune page non valide n’a été signalée dans les bases de données sélectionnées.

pg-primary ⇒ Restauration à partir de la dernière sauvegarde, incluant uniquement la base test2

sudo pg_ctlcluster 17 demo stop
sudo -u postgres pgbackrest --stanza=demo --delta \
       --db-include=test2 --type=immediate --target-action=promote restore
sudo pg_ctlcluster 17 demo start

Une fois la récupération terminée, la base de données test2 contiendra toutes les tables et les données précédemment créées.

pg-primary ⇒ Démontrer que la base de données test2 a été restaurée

sudo -u postgres psql -c "select * from test2_table;" test2
 id
----
  2
(1 row)

La base de données test1, malgré une récupération réussie, n’est pas accessible. Cela est dû au fait que la base entière a été restaurée sous forme de fichiers creux initialisés à zéro. PostgreSQL peut appliquer correctement le WAL sur ces fichiers initialisés à zéro, mais la base de données dans son ensemble ne sera pas valide, car certains fichiers clés ne contiennent aucune donnée. Cette situation est volontaire, afin d’éviter que la base de données ne soit utilisée accidentellement alors qu’elle pourrait contenir des données partielles appliquées pendant la relecture du WAL.

pg-primary ⇒ Tenter de se connecter à la base de données test1 produira une erreur

sudo -u postgres psql -c "select * from test1_table;" test1
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  relation mapping file "base/32768/pg_filenode.map" contains invalid data

Étant donné que la base de données test1 est restaurée avec des fichiers épars et initialisés à zéro, elle n’utilisera que l’espace nécessaire à la quantité de WAL écrite pendant la récupération. Bien que la quantité de WAL générée lors d’une sauvegarde et appliquée lors de la récupération puisse être importante, elle représente généralement une fraction réduite de la taille totale de la base de données, en particulier pour les grandes bases de données où cette fonctionnalité est le plus susceptible d’être utile.

Il est clair que la base de données test1 utilise bien moins d’espace disque lors d’une restauration sélective que si toute la base de données avait été restaurée.

pg-primary ⇒ Afficher l’espace utilisé par la base de données test1 après la récupération

sudo -u postgres du -sh /var/lib/postgresql/17/demo/base/32768
8.0K	/var/lib/postgresql/17/demo/base/32768

À ce stade, la seule action pouvant être entreprise sur la base test1 invalide est drop database. pgBackRest ne supprime pas automatiquement la base de données, car cela n’est pas possible tant que la récupération n’est pas terminée et que le cluster n’est pas accessible.

pg-primary ⇒ Supprimer la base de données test1

sudo -u postgres psql -c "drop database test1;"
DROP DATABASE

À présent que la base de données test1 invalide a été supprimée, seules les bases de données test2 et les bases intégrées restent.

pg-primary ⇒ Liste des bases de données restantes

sudo -u postgres psql -c "select oid, datname from pg_database order by oid;"
  oid  |  datname
-------+-----------
     1 | template1
     4 | template0
     5 | postgres
 32769 | test2
(4 rows)

restauration à un instant donné

Restaurer une sauvegarde dans Démarrage rapide a effectué une récupération par défaut, qui consiste à rejouer toutes les transactions jusqu’à la fin du flux WAL. En cas de panne matérielle, il s’agit généralement du choix optimal, mais en cas de corruption des données (qu’elle soit due à une panne matérielle ou humaine), la restauration à un instant donné (PITR) est souvent plus appropriée.

La restauration à un instant donné (PITR) permet de rejouer les journaux d’écriture (WAL) à partir d’une sauvegarde jusqu’à un LSN, une heure, un identifiant de transaction ou un point de récupération spécifié. Pour les scénarios de récupération courants, la récupération basée sur le temps est sans doute la plus utile. Un scénario de récupération typique consiste à restaurer une table supprimée par erreur ou des données supprimées par erreur. La récupération d’une table supprimée est plus spectaculaire, aussi est-elle prise comme exemple ici, mais les données supprimées seraient récupérées exactement de la même manière.

pg-primary ⇒ Créer une table avec des données très importantes

sudo -u postgres psql -c "begin; \
       create table important_table (message text); \
       insert into important_table values ('Important Data'); \
       commit; \
       select * from important_table;"
       [filtered 4 lines of output]
    message
----------------
 Important Data
(1 row)

Il est important de représenter l’heure selon le calcul de PostgreSQL et d’inclure les décalages de fuseau horaire. Cela réduit la possibilité de conversions de fuseau horaire non souhaitées et d’un résultat de récupération inattendu.

pg-primary ⇒ Obtenir l’heure depuis PostgreSQL

sudo -u postgres psql -Atc "select current_timestamp"
2026-08-17 04:51:24.23782+00

À présent que l’heure a été enregistrée, la table est supprimée. En pratique, déterminer l’heure exacte à laquelle la table a été supprimée est bien plus difficile qu’à l’exemple présenté. Il se peut qu’il ne soit pas possible de déterminer l’heure exacte, mais une analyse forensique devrait toutefois pouvoir s’en approcher.

pg-primary ⇒ Supprimer la table importante

sudo -u postgres psql -c "begin; \
       drop table important_table; \
       commit; \
       select * from important_table;"
BEGIN
DROP TABLE
COMMITERROR:  relation "important_table" does not exist
LINE 1: ...le important_table;     commit;     select * from important_...
                                                             ^

Si la mauvaise sauvegarde est sélectionnée pour la restauration, la récupération jusqu’à la cible de temps requise échouera. Pour illustrer ce cas, une nouvelle sauvegarde incrémentielle est effectuée alors que important_table n’existe pas.

pg-primary ⇒ Effectuer une sauvegarde incrémentielle

sudo -u postgres pgbackrest --stanza=demo --type=incr backup
sudo -u postgres pgbackrest info
       [filtered 38 lines of output]
            backup reference total: 1 full, 1 diff
        incr backup: 20260817-045100F_20260817-045125I
            timestamp start/stop: 2026-08-17 04:51:25+00 / 2026-08-17 04:51:26+00
            wal start/stop: 00000004000000000000001A / 00000004000000000000001A
       [filtered 2 lines of output]

Il ne sera pas possible de récupérer la table perdue à partir de cette sauvegarde, car PostgreSQL ne peut avancer que vers l’avant, pas vers l’arrière.

pg-primary ⇒ Tentative de récupération à partir d’une sauvegarde incorrecte

sudo pg_ctlcluster 17 demo stop
sudo -u postgres pgbackrest --stanza=demo --delta \
       --set=20260817-045100F_20260817-045125I --target-timeline=current \
       --type=time "--target=2026-08-17 04:51:24.23782+00" --target-action=promote restore
sudo pg_ctlcluster 17 demo start
       [filtered 13 lines of output]
LOG:  database system is ready to accept read-only connections
LOG:  redo done at 0/1A000120 system usage: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.02 s
FATAL:  recovery ended before configured recovery target was reached
LOG:  startup process (PID 1402) exited with exit code 1
LOG:  terminating any other active server processes
       [filtered 3 lines of output]

Une méthode fiable consiste à autoriser pgBackRest à sélectionner automatiquement une sauvegarde pouvant être restaurée jusqu’à l’instant cible, c’est-à-dire une sauvegarde terminée avant l’instant spécifié.

NOTE :

pgBackRest ne peut pas sélectionner automatiquement une sauvegarde lorsque le type de restauration est xid ou name.

pg-primary ⇒ Effectuer la restauration du cluster de démonstration sur 2026-08-17 04:51:24.23782+00

sudo -u postgres pgbackrest --stanza=demo --delta \
       --type=time "--target=2026-08-17 04:51:24.23782+00" \
       --target-action=promote restore
sudo -u postgres cat /var/lib/postgresql/17/demo/postgresql.auto.conf
       [filtered 9 lines of output]
# Recovery settings generated by pgBackRest restore on 2026-08-17 04:51:28
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'
recovery_target_time = '2026-08-17 04:51:24.23782+00'
recovery_target_action = 'promote'

pgBackRest a généré les paramètres de récupération dans postgresql.auto.conf afin que PostgreSQL puisse être démarré immédiatement. %f est le moyen par lequel PostgreSQL indique le segment WAL dont il a besoin, et %p est l’emplacement où il doit être copié. Une fois la récupération de PostgreSQL terminée, la table existera à nouveau et pourra être interrogée.

pg-primary ⇒ Démarrer PostgreSQL et vérifier que la table importante existe

sudo pg_ctlcluster 17 demo start
sudo -u postgres psql -c "select * from important_table"
    message
----------------
 Important Data
(1 row)

Le journal PostgreSQL contient également des informations précieuses. Il indique l’heure et la transaction où la récupération s’est arrêtée, ainsi que l’heure de la dernière transaction appliquée.

pg-primary ⇒ Examinez la sortie des journaux PostgreSQL

sudo -u postgres cat /var/log/postgresql/postgresql-17-demo.log
       [filtered 7 lines of output]
LOG:  restored log file "00000004.history" from archive
LOG:  restored log file "000000040000000000000019" from archive
LOG:  starting point-in-time recovery to 2026-08-17 04:51:24.23782+00
LOG:  restored log file "00000003.history" from archive
LOG:  redo starts at 0/19000028
       [filtered 2 lines of output]
LOG:  database system is ready to accept read-only connections
LOG:  restored log file "00000004000000000000001A" from archive
LOG:  recovery stopping before commit of transaction 748, time 2026-08-17 04:51:25.556252+00
LOG:  redo done at 0/1901CC00 system usage: CPU: user: 0.00 s, system: 0.01 s, elapsed: 0.09 s
LOG:  last completed transaction was at log time 2026-08-17 04:51:22.942835+00
LOG:  restored log file "000000040000000000000019" from archive
LOG:  selected new timeline ID: 5
       [filtered 5 lines of output]

Supprimer une stanza

La commande stanza-delete supprime les données du dépôt associées à un stanza.

AVERTISSEMENT :

Utilisez cette commande avec précaution — elle supprimera définitivement toutes les sauvegardes et archives du dépôt pgBackRest pour le stanza spécifié.

Pour supprimer une stanza :

  • Arrêtez le cluster PostgreSQL associé à la stanza (ou utilisez –force pour l’ignorer).
  • Exécutez la commande stop sur l’hôte où la commande stanza-delete sera exécutée.
  • Exécutez la commande stanza-delete.

Une fois la commande exécutée avec succès, il incombe à l’utilisateur de supprimer la stanza de tous les fichiers de configuration pgBackRest et/ou des variables d’environnement.

Un stanza ne peut être supprimé que d’un dépôt à la fois. Pour supprimer le stanza de plusieurs dépôts, répétez la commande stanza-delete pour chaque dépôt tout en spécifiant l’option --repo.

pg-primary ⇒ Arrêtez le cluster PostgreSQL à supprimer

sudo pg_ctlcluster 17 demo stop

pg-primary ⇒ Arrêtez pgBackRest pour la stanza

sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stop
P00   INFO: stop command begin 2.59.1: --exec-id=1531-7c532db6 --log-level-console=info --no-log-timestamp --stanza=demo
P00   INFO: stop command end: completed successfully

pg-primary ⇒ Supprimer le stanza depuis un dépôt

sudo -u postgres pgbackrest --stanza=demo --repo=1 \
       --log-level-console=info stanza-delete
P00   INFO: stanza-delete command begin 2.59.1: --exec-id=1538-cfcbf395 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/postgresql/17/demo --repo=1 --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --stanza=demo
P00   INFO: stanza-delete command end: completed successfully

Dépôts multiples

Plusieurs dépôts peuvent être configurés, comme illustré dans Prise en charge S3 . Un avantage potentiel est la possibilité de disposer d’un dépôt local pour des restaurations rapides et d’un dépôt distant pour la redondance.

Certaines commandes, par exemple stanza-create /stanza-upgrade , fonctionnent automatiquement avec tous les dépôts configurés, tandis que d’autres, par exemple stanza-delete , nécessitent la spécification d’un dépôt à l’aide de l’option repo.

Notez que l’option repo n’est pas obligatoire lorsqu’uniquement repo1 est configuré, afin de préserver la compatibilité descendante. Toutefois, l’option repo est obligatoire lorsqu’un seul dépôt est configuré, par exemple repo2. Ceci vise à éviter la rupture de commande en cas d’ajout ultérieur d’un nouveau dépôt.

La commande archive-push poussera toujours les journaux WAL vers l’archive dans tous les dépôts configurés. Si un dépôt n’est pas accessible, les journaux WAL seront tout de même poussés vers les autres dépôts. Toutefois, pour que cela fonctionne efficacement, archive-async=y doit être activé ; sinon, les autres dépôts ne pourront avancer que d’un segment WAL par rapport au dépôt inatteignable. Notez également qu’en cas d’impossibilité de pousser les journaux WAL vers n’importe quel dépôt, PostgreSQL ne supprimera pas ces journaux du répertoire pg_wal, ce qui peut entraîner la saturation du volume.

Les sauvegardes doivent être planifiées individuellement pour chaque dépôt. Dans de nombreuses situations, cela est souhaitable car les types de sauvegarde et la rétention varient d’un dépôt à l’autre. De même, les restaurations doivent préciser un dépôt. Il est généralement préférable de spécifier un dépôt à faible latence/coût, même si cela implique un temps de récupération plus long. Seule une vérification par test de restauration permettra de déterminer quel dépôt sera le plus efficace.


Prise en charge du magasin d’objets compatible Azure

pgBackRest prend en charge la localisation des dépôts dans des magasins d’objets compatibles Azure. Le conteneur utilisé pour stocker le dépôt doit être créé à l’avance — pgBackRest ne le fera pas automatiquement. Le dépôt peut être situé à la racine du conteneur (/), mais il est généralement préférable de le placer dans un sous-chemin afin de pouvoir stocker également des journaux ou d’autres données dans le conteneur sans conflit.

AVERTISSEMENT :

N’activez pas l’« espace de noms hiérarchique » car cela provoquera des erreurs lors de l’expiration.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez Azure

[demo]

pg1-path=/var/lib/postgresql/17/demo



[global]

repo1-block=y

repo1-bundle=y

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-diff=2

repo1-retention-full=2

repo2-azure-account=pgbackrest

repo2-azure-container=demo-container

repo2-azure-key=YXpLZXk=

repo2-path=/demo-repo

repo2-retention-full=4

repo2-type=azure

start-fast=y



[global:archive-push]

compress-level=3

Les signatures d’accès partagé peuvent être utilisées en définissant l’option repo2-azure-key-type sur sas et l’option repo2-azure-key sur le jeton de signature d’accès partagé.

Les commandes sont exécutées exactement comme si le dépôt était stocké sur un disque local.

pg-primary ⇒ Créer la stanza

sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create
P00   INFO: stanza-create command begin 2.59.1: --exec-id=1617-2bccee33 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/postgresql/17/demo --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo2-type=azure --stanza=demo
P00   INFO: stanza-create for stanza 'demo' on repo1
P00   INFO: stanza-create for stanza 'demo' on repo2
P00   INFO: stanza-create command end: completed successfully

Le temps de création de fichier dans Azure est relativement lent, aussi la performance de backup/restore est améliorée en activant le regroupement de fichiers file bundling .

pg-primary ⇒ Effectuer une sauvegarde du cluster de démonstration

sudo -u postgres pgbackrest --stanza=demo --repo=2 \
       --log-level-console=info backup
P00   INFO: backup command begin 2.59.1: --exec-id=1626-8e5019a5 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/postgresql/17/demo --repo=2 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-block --repo1-bundle --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo2-type=azure --stanza=demo --start-fast
P00   WARN: no prior backup exists, incr backup has been changed to full
P00   INFO: execute backup start: backup begins after the requested immediate checkpoint completes
P00   INFO: backup start archive = 00000005000000000000001B, lsn = 0/1B000028
       [filtered 3 lines of output]
P00   INFO: check archive for segment(s) 00000005000000000000001B:00000005000000000000001B
P00   INFO: new backup label = 20260817-045139F
P00   INFO: full backup size = 29.2MB, file total = 1265
P00   INFO: backup command end: completed successfully
P00   INFO: expire command begin 2.59.1: --exec-id=1626-8e5019a5 --log-level-console=info --no-log-timestamp --repo=2 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo2-type=azure --stanza=demo

Prise en charge du stockage d’objets compatible S3

pgBackRest prend en charge le positionnement des dépôts dans des magasins d’objets compatibles S3. Le bac utilisé pour stocker le dépôt doit être créé à l’avance — pgBackRest ne le fera pas automatiquement. Le dépôt peut être placé à la racine du bac (/), mais il est généralement préférable de le situer dans un sous-répertoire afin de pouvoir stocker également des journaux ou d’autres données dans le bac sans conflit.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez S3

[demo]

pg1-path=/var/lib/postgresql/17/demo



[global]

repo1-block=y

repo1-bundle=y

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-diff=2

repo1-retention-full=2

repo2-azure-account=pgbackrest

repo2-azure-container=demo-container

repo2-azure-key=YXpLZXk=

repo2-path=/demo-repo

repo2-retention-full=4

repo2-type=azure

repo3-path=/demo-repo

repo3-retention-full=4

repo3-s3-bucket=demo-bucket

repo3-s3-endpoint=s3.us-east-1.amazonaws.com

repo3-s3-key=accessKey1

repo3-s3-key-secret=verySecretKey1

repo3-s3-region=us-east-1

repo3-type=s3

start-fast=y



[global:archive-push]

compress-level=3

NOTE :

La région et le point de terminaison devront être configurés selon l’emplacement du bac. Les valeurs indiquées ici correspondent à la région us-east-1.

Un rôle doit être créé pour exécuter pgBackRest et les autorisations du bac doivent être définies aussi restrictivement que possible. Si le rôle est associé à une instance dans AWS, pgBackRest récupérera automatiquement des identifiants temporaires lorsque repo3-s3-key-type=auto, ce qui signifie que les clés n’ont pas besoin d’être explicitement définies dans /etc/pgbackrest/pgbackrest.conf.

Politique Amazon S3 d’exemple qui restreint toutes les lectures et écritures au bac et au chemin du dépôt.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::demo-bucket"
            ],
            "Condition": {
                "StringEquals": {
                    "s3:prefix": [
                        "",
                        "demo-repo"
                    ],
                    "s3:delimiter": [
                        "/"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::demo-bucket"
            ],
            "Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "demo-repo/*"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectTagging",
                "s3:GetObject",
                "s3:GetObjectVersion",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::demo-bucket/demo-repo/*"
            ]
        }
    ]
}

Les commandes sont exécutées exactement comme si le dépôt était stocké sur un disque local.

pg-primary ⇒ Créer la stanza

sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create
       [filtered 4 lines of output]
P00   INFO: stanza 'demo' already exists on repo2 and is valid
P00   INFO: stanza-create for stanza 'demo' on repo3
P00   INFO: stanza-create command end: completed successfully

Le temps de création de fichier dans S3 est relativement lent, aussi la performance de backup/restore est améliorée en activant le regroupement de fichiers file bundling .

pg-primary ⇒ Effectuer une sauvegarde du cluster de démonstration

sudo -u postgres pgbackrest --stanza=demo --repo=3 \
       --log-level-console=info backup
P00   INFO: backup command begin 2.59.1: --exec-id=1726-b8012aef --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/postgresql/17/demo --repo=3 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-block --repo1-bundle --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo3-retention-full=4 --repo3-s3-bucket=demo-bucket --repo3-s3-endpoint=s3.us-east-1.amazonaws.com --repo3-s3-key=<redacted> --repo3-s3-key-secret=<redacted> --repo3-s3-region=us-east-1 --repo2-type=azure --repo3-type=s3 --stanza=demo --start-fast
P00   WARN: no prior backup exists, incr backup has been changed to full
P00   INFO: execute backup start: backup begins after the requested immediate checkpoint completes
P00   INFO: backup start archive = 00000005000000000000001D, lsn = 0/1D000028
       [filtered 3 lines of output]
P00   INFO: check archive for segment(s) 00000005000000000000001D:00000005000000000000001D
P00   INFO: new backup label = 20260817-045153F
P00   INFO: full backup size = 29.2MB, file total = 1265
P00   INFO: backup command end: completed successfully
P00   INFO: expire command begin 2.59.1: --exec-id=1726-b8012aef --log-level-console=info --no-log-timestamp --repo=3 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo3-retention-full=4 --repo3-s3-bucket=demo-bucket --repo3-s3-endpoint=s3.us-east-1.amazonaws.com --repo3-s3-key=<redacted> --repo3-s3-key-secret=<redacted> --repo3-s3-region=us-east-1 --repo2-type=azure --repo3-type=s3 --stanza=demo

Prise en charge SFTP

pgBackRest prend en charge le localisation des dépôts sur des hôtes SFTP. Le transfert de fichiers SFTP est relativement lent, aussi les commandes bénéficient-elles d’une augmentation de process-max afin de paralléliser le transfert de fichiers.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez SFTP

[demo]

pg1-path=/var/lib/postgresql/17/demo



[global]

process-max=4

repo1-block=y

repo1-bundle=y

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-diff=2

repo1-retention-full=2

repo2-azure-account=pgbackrest

repo2-azure-container=demo-container

repo2-azure-key=YXpLZXk=

repo2-path=/demo-repo

repo2-retention-full=4

repo2-type=azure

repo3-path=/demo-repo

repo3-retention-full=4

repo3-s3-bucket=demo-bucket

repo3-s3-endpoint=s3.us-east-1.amazonaws.com

repo3-s3-key=accessKey1

repo3-s3-key-secret=verySecretKey1

repo3-s3-region=us-east-1

repo3-type=s3

repo4-bundle=y

repo4-path=/demo-repo

repo4-sftp-host=sftp-server

repo4-sftp-host-key-hash-type=sha1

repo4-sftp-host-user=pgbackrest

repo4-sftp-private-key-file=/var/lib/postgresql/.ssh/id_rsa_sftp

repo4-sftp-public-key-file=/var/lib/postgresql/.ssh/id_rsa_sftp.pub

repo4-type=sftp

start-fast=y



[global:archive-push]

compress-level=3

Lors de l’utilisation de SFTP, si libssh2 est compilé contre OpenSSH, repo4-sftp-public-key-file est facultatif.

pg-primary ⇒ Générer une paire de clés SSH pour la sauvegarde SFTP

sudo -u postgres mkdir -m 750 -p /var/lib/postgresql/.ssh
sudo -u postgres ssh-keygen -f /var/lib/postgresql/.ssh/id_rsa_sftp \
       -t rsa -b 4096 -N "" -m PEM

sftp-server ⇒ Copier la clé publique de sauvegarde SFTP de pg-primary sur sftp-server

sudo -u pgbackrest mkdir -m 750 -p /home/pgbackrest/.ssh
(sudo ssh root@pg-primary cat /var/lib/postgresql/.ssh/id_rsa_sftp.pub) | \
       sudo -u pgbackrest tee -a /home/pgbackrest/.ssh/authorized_keys

Les commandes sont exécutées exactement comme si le dépôt était stocké sur un disque local.

pg-primary ⇒ Ajouter l’empreinte du serveur SFTP au fichier known_hosts, car repo4-sftp-host-key-check-type est par défaut défini sur « strict »

ssh-keyscan -H sftp-server >> /var/lib/postgresql/.ssh/known_hosts 2>/dev/null

pg-primary ⇒ Créer la stanza

sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create
       [filtered 6 lines of output]
P00   INFO: stanza 'demo' already exists on repo3 and is valid
P00   INFO: stanza-create for stanza 'demo' on repo4
P00   INFO: stanza-create command end: completed successfully

pg-primary ⇒ Effectuer une sauvegarde du cluster de démonstration

sudo -u postgres pgbackrest --stanza=demo --repo=4 \
       --log-level-console=info backup
P00   INFO: backup command begin 2.59.1: --exec-id=1815-96aacc2b --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/postgresql/17/demo --process-max=4 --repo=4 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-block --repo1-bundle --repo4-bundle --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo4-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo3-retention-full=4 --repo3-s3-bucket=demo-bucket --repo3-s3-endpoint=s3.us-east-1.amazonaws.com --repo3-s3-key=<redacted> --repo3-s3-key-secret=<redacted> --repo3-s3-region=us-east-1 --repo4-sftp-host=sftp-server --repo4-sftp-host-key-hash-type=sha1 --repo4-sftp-host-user=pgbackrest --repo4-sftp-private-key-file=/var/lib/postgresql/.ssh/id_rsa_sftp --repo4-sftp-public-key-file=/var/lib/postgresql/.ssh/id_rsa_sftp.pub --repo2-type=azure --repo3-type=s3 --repo4-type=sftp --stanza=demo --start-fast
P00   WARN: option 'repo4-retention-full' is not set for 'repo4-retention-full-type=count', the repository may run out of space
            HINT: to retain full backups indefinitely (without warning), set option 'repo4-retention-full' to the maximum.
P00   WARN: no prior backup exists, incr backup has been changed to full
P00   INFO: execute backup start: backup begins after the requested immediate checkpoint completes
P00   INFO: backup start archive = 00000005000000000000001F, lsn = 0/1F000028
       [filtered 3 lines of output]
P00   INFO: check archive for segment(s) 00000005000000000000001F:00000005000000000000001F
P00   INFO: new backup label = 20260817-045208F
P00   INFO: full backup size = 29.2MB, file total = 1265
P00   INFO: backup command end: completed successfully
P00   INFO: expire command begin 2.59.1: --exec-id=1815-96aacc2b --log-level-console=info --no-log-timestamp --repo=4 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo4-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo3-retention-full=4 --repo3-s3-bucket=demo-bucket --repo3-s3-endpoint=s3.us-east-1.amazonaws.com --repo3-s3-key=<redacted> --repo3-s3-key-secret=<redacted> --repo3-s3-region=us-east-1 --repo4-sftp-host=sftp-server --repo4-sftp-host-key-hash-type=sha1 --repo4-sftp-host-user=pgbackrest --repo4-sftp-private-key-file=/var/lib/postgresql/.ssh/id_rsa_sftp --repo4-sftp-public-key-file=/var/lib/postgresql/.ssh/id_rsa_sftp.pub --repo2-type=azure --repo3-type=s3 --repo4-type=sftp --stanza=demo
P00   INFO: expire command end: completed successfully

Prise en charge du stockage d’objets compatible GCS

pgBackRest prend en charge la localisation des dépôts dans des magasins d’objets compatibles GCS. Le conteneur utilisé pour stocker le dépôt doit être créé à l’avance — pgBackRest ne le fera pas automatiquement. Le dépôt peut être situé à la racine du conteneur (/), mais il est généralement préférable de le placer dans un sous-répertoire afin de pouvoir stocker également des journaux ou d’autres données dans le conteneur sans conflit.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez le GCS

[demo]

pg1-path=/var/lib/postgresql/17/demo



[global]

process-max=4

repo1-block=y

repo1-bundle=y

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-diff=2

repo1-retention-full=2

repo2-azure-account=pgbackrest

repo2-azure-container=demo-container

repo2-azure-key=YXpLZXk=

repo2-path=/demo-repo

repo2-retention-full=4

repo2-type=azure

repo3-path=/demo-repo

repo3-retention-full=4

repo3-s3-bucket=demo-bucket

repo3-s3-endpoint=s3.us-east-1.amazonaws.com

repo3-s3-key=accessKey1

repo3-s3-key-secret=verySecretKey1

repo3-s3-region=us-east-1

repo3-type=s3

repo4-bundle=y

repo4-path=/demo-repo

repo4-sftp-host=sftp-server

repo4-sftp-host-key-hash-type=sha1

repo4-sftp-host-user=pgbackrest

repo4-sftp-private-key-file=/var/lib/postgresql/.ssh/id_rsa_sftp

repo4-sftp-public-key-file=/var/lib/postgresql/.ssh/id_rsa_sftp.pub

repo4-type=sftp

repo5-gcs-bucket=demo-bucket

repo5-gcs-key=/etc/pgbackrest/gcs-key.json

repo5-path=/demo-repo

repo5-type=gcs

start-fast=y



[global:archive-push]

compress-level=3

Lors de l’exécution sur GCE, définissez repo5-gcs-key-type=auto pour authentifier automatiquement à l’aide du compte de service de l’instance.

Les commandes sont exécutées exactement comme si le dépôt était stocké sur un disque local.

Le temps de création de fichier dans GCS est relativement lent, aussi la performance de backup/restore est améliorée en activant le regroupement de fichiers file bundling .


Heure cible pour le dépôt

Le temps cible définit l’instant auquel les commandes lisent un dépôt sur un stockage versionné. Cela permet à la commande de lire le dépôt tel qu’il était à un instant donné, afin de récupérer des données supprimées ou corrompues par une erreur utilisateur ou un logiciel malveillant.

Le stockage versionné est pris en charge par S3, GCS et Azure, mais il est généralement désactivé par défaut. En plus d’activer la versioning, il peut être utile d’activer le verrouillage d’objets pour S3, ou la suppression progressive pour GCS ou Azure.

Lorsque l’option repo-target-time est spécifiée, l’option repo doit également être fournie. Il est probable que tous les types de dépôt ne prennent pas en charge la versionning, et il est généralement préférable de cibler un seul dépôt pour la récupération.

Notez que les comparaisons avec l’horodatage de stockage sont <= à l’horodatage fourni et que les millisecondes sont tronquées de l’horodatage lorsqu’elles sont fournies.

Pour démontrer cette fonctionnalité, la stanza demo dans le dépôt S3 est supprimée.

pg-primary ⇒ Supprimer le stanza dans le dépôt S3

sudo pg_ctlcluster 17 demo stop
sudo -u postgres pgbackrest --stanza=demo stop
sudo -u postgres pgbackrest --stanza=demo --repo=3 stanza-delete

Une fois le stanza supprimé, la commande info affichera le dépôt dans un état d’erreur.

pg-primary ⇒ Erreur lors de l’information

sudo -u postgres pgbackrest --stanza=demo --repo=3 info
stanza: demo
    status: error (missing stanza path)

Toutefois, comme le stockage est versionné, il est possible d’examiner le dépôt à une époque antérieure à la suppression du stanza. Trouver l’instant cible peut s’avérer délicat selon la situation, mais dans ce cas, l’instant de suppression du stanza peut être déterminé en vérifiant quand backup.info a été supprimé.

pg-primary ⇒ Répertorier les versions de backup.info dans le bac

key=demo-repo/backup/demo/backup.info; \
       aws s3api list-object-versions --bucket demo-bucket \
       --prefix $key --output table \
       --query "sort_by([Versions[?Key=='$key'].{Action:'PUT', \
       Modified:LastModified,Object:Key}, \
       DeleteMarkers[?Key=='$key'].{Action:'DELETE', \
       Modified:LastModified,Object:Key}][],&Modified)"
-----------------------------------------------------------------------------
|                            ListObjectVersions                             |
+--------+----------------------------+-------------------------------------+
| Action |         Modified           |               Object                |
+--------+----------------------------+-------------------------------------+
|  PUT   |  2026-08-17T04:51:53.020Z  |  demo-repo/backup/demo/backup.info  |
|  PUT   |  2026-08-17T04:52:04.161Z  |  demo-repo/backup/demo/backup.info  |
|  DELETE|  2026-08-17T04:52:12.845Z  |  demo-repo/backup/demo/backup.info  |
+--------+----------------------------+-------------------------------------+

À présent, la commande info peut être exécutée avec une heure cible afin d’afficher le dépôt avant sa suppression.

pg-primary ⇒ Information avec heure cible

sudo -u postgres pgbackrest --stanza=demo --repo=3 \
       --repo-target-time="2026-08-17 04:52:04+00" info
       [filtered 5 lines of output]
        wal archive min/max (17): 00000005000000000000001C/00000005000000000000001D
        full backup: 20260817-045153F
            timestamp start/stop: 2026-08-17 04:51:53+00 / 2026-08-17 04:52:03+00
            wal start/stop: 00000005000000000000001D / 00000005000000000000001D
            repo3: backup set size: 3.8MB, backup size: 3.8MB

Si la sauvegarde requise est indiquée par la commande info, elle peut être restaurée en utilisant le même instant cible.

pg-primary ⇒ Restauration avec heure cible

sudo -u postgres pgbackrest --stanza=demo --repo=3 --delta \
       --repo-target-time="2026-08-17 04:52:04+00" --log-level-console=info restore
P00   INFO: restore command begin 2.59.1: --delta --exec-id=1906-0f3d66ad --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/postgresql/17/demo --process-max=4 --repo=3 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo5-gcs-bucket=demo-bucket --repo5-gcs-key=<redacted> --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo4-path=/demo-repo --repo5-path=/demo-repo --repo3-s3-bucket=demo-bucket --repo3-s3-endpoint=s3.us-east-1.amazonaws.com --repo3-s3-key=<redacted> --repo3-s3-key-secret=<redacted> --repo3-s3-region=us-east-1 --repo4-sftp-host=sftp-server --repo4-sftp-host-key-hash-type=sha1 --repo4-sftp-host-user=pgbackrest --repo4-sftp-private-key-file=/var/lib/postgresql/.ssh/id_rsa_sftp --repo4-sftp-public-key-file=/var/lib/postgresql/.ssh/id_rsa_sftp.pub --repo-target-time="2026-08-17 04:52:04+00" --repo2-type=azure --repo3-type=s3 --repo4-type=sftp --repo5-type=gcs --stanza=demo
P00   INFO: repo3: restore backup set 20260817-045153F, recovery will start at 2026-08-17 04:51:53
P00   INFO: remove invalid files/links/paths from '/var/lib/postgresql/17/demo'
P00   INFO: write updated /var/lib/postgresql/17/demo/postgresql.auto.conf
       [filtered 2 lines of output]
sudo pg_ctlcluster 17 demo start

Hôte dédié au dépôt

La configuration décrite dans Quickstart convient aux installations simples, mais pour les configurations d’entreprise, il est plus courant d’avoir un hôte dédié au dépôt, où sont stockées les sauvegardes et les fichiers d’archive WAL. Cette approche sépare les sauvegardes et l’archive WAL du serveur de base de données, de sorte que les défaillances de l’hôte de base de données aient un impact moindre. Il est toutefois recommandé d’utiliser un logiciel de sauvegarde traditionnel pour sauvegarder l’hôte du dépôt.

Sur les hôtes PostgreSQL, pg1-path doit être le chemin du cluster PostgreSQL local et aucune configuration pg1-host ne doit être définie. Lors de la configuration d’un hôte de dépôt, le fichier de configuration pgBackRest doit inclure l’option pg-host pour se connecter aux hôtes principaux et secondaires (le cas échéant). L’hôte de dépôt est le seul qui doit disposer d’une configuration pgBackRest connaissant plusieurs hôtes PostgreSQL. L’ordre n’a pas d’importance, par exemple pg1-path/pg1-host, pg2-path/pg2-host peut correspondre à un hôte principal ou secondaire.

Installation

Un nouvel hôte nommé repository est créé pour stocker les sauvegardes du cluster.

NOTE :

La version de pgBackRest installée sur l’hôte du dépôt doit correspondre exactement à la version installée sur l’hôte PostgreSQL.

L’utilisateur pgbackrest est créé pour posséder le dépôt pgBackRest. Tout utilisateur peut posséder le dépôt, mais il est préférable de ne pas utiliser postgres (le cas échéant) afin d’éviter toute confusion.

NOTE :

Lorsque pgBackRest est installé à partir d’un paquet, une configuration logrotate telle que /etc/logrotate.d/pgbackrest peut être fournie, qui effectue le rotation des journaux en tant qu’utilisateur spécifique via la directive su (par exemple su postgres postgres). Étant donné que les fichiers dans /var/log/pgbackrest sont possédés par l’utilisateur exécutant pgBackRest (ici pgbackrest), la directive su doit être mise à jour pour correspondre à cet utilisateur, sinon logrotate échouera avec une erreur de permission.

dépôt ⇒ Créer l’utilisateur pgbackrest

sudo adduser --disabled-password --gecos "" pgbackrest

Installer pgBackRest à partir d’un paquet est préférable à la compilation à partir des sources. Lors de l’installation à partir d’un paquet, les autres instructions de cette section sont généralement inutiles, mais il se peut qu’un paquet omette de créer un répertoire ou applique des permissions incorrectes. Dans ce cas, il peut être nécessaire de créer manuellement les répertoires ou de mettre à jour les permissions.

Les paquets Debian/Ubuntu pour pgBackRest sont disponibles sur apt.PostgreSQL.org .

Si des paquets ne sont pas fournis pour votre distribution/version, vous pouvez compiler à partir des sources puis procéder à l’installation manuelle comme indiqué ici.

dépôt ⇒ Installer les dépendances

sudo apt-get install postgresql-client libxml2 libssh2-1

dépôt ⇒ Copier le binaire pgBackRest depuis l’hôte de compilation

sudo scp build:/build/pgbackrest/src/pgbackrest /usr/bin
sudo chmod 755 /usr/bin/pgbackrest

pgBackRest nécessite des répertoires pour les journaux et la configuration, ainsi qu’un fichier de configuration.

dépôt ⇒ Créer le fichier de configuration pgBackRest et les répertoires

sudo mkdir -p -m 770 /var/log/pgbackrest
sudo chown pgbackrest:pgbackrest /var/log/pgbackrest
sudo mkdir -p /etc/pgbackrest
sudo mkdir -p /etc/pgbackrest/conf.d
sudo touch /etc/pgbackrest/pgbackrest.conf
sudo chmod 640 /etc/pgbackrest/pgbackrest.conf
sudo chown pgbackrest:pgbackrest /etc/pgbackrest/pgbackrest.conf

dépôt ⇒ Créer le dépôt pgBackRest

sudo mkdir -p /var/lib/pgbackrest
sudo chmod 750 /var/lib/pgbackrest
sudo chown pgbackrest:pgbackrest /var/lib/pgbackrest

Configuration d’un accès SSH sans mot de passe

pgBackRest peut utiliser SSH sans mot de passe pour permettre la communication entre les hôtes. Il est également possible d’utiliser TLS, voir Configurer TLS .

dépôt ⇒ Créer une paire de clés pour l’hôte du dépôt

sudo -u pgbackrest mkdir -m 750 /home/pgbackrest/.ssh
sudo -u pgbackrest ssh-keygen -f /home/pgbackrest/.ssh/id_rsa \
       -t rsa -b 4096 -N ""

pg-primary ⇒ Créer une paire de clés pour l’hôte pg-primary

sudo -u postgres mkdir -m 750 -p /var/lib/postgresql/.ssh
sudo -u postgres ssh-keygen -f /var/lib/postgresql/.ssh/id_rsa \
       -t rsa -b 4096 -N ""

Échanger les clés entre le dépôt et pg-primary.

dépôt ⇒ Copiez la clé publique pg-primary vers le dépôt

(echo -n 'no-agent-forwarding,no-X11-forwarding,no-port-forwarding,' && \
       echo -n 'command="/usr/bin/pgbackrest ${SSH_ORIGINAL_COMMAND#* }" ' && \
       sudo ssh root@pg-primary cat /var/lib/postgresql/.ssh/id_rsa.pub) | \
       sudo -u pgbackrest tee -a /home/pgbackrest/.ssh/authorized_keys

pg-primary ⇒ Copier la clé publique du dépôt sur pg-primary

(echo -n 'no-agent-forwarding,no-X11-forwarding,no-port-forwarding,' && \
       echo -n 'command="/usr/bin/pgbackrest ${SSH_ORIGINAL_COMMAND#* }" ' && \
       sudo ssh root@repository cat /home/pgbackrest/.ssh/id_rsa.pub) | \
       sudo -u postgres tee -a /var/lib/postgresql/.ssh/authorized_keys

Testez que les connexions peuvent être établies depuis le dépôt vers pg-primary et inversement.

dépôt ⇒ Tester la connexion depuis le dépôt vers pg-primary

sudo -u pgbackrest ssh postgres@pg-primary

pg-primary ⇒ Tester la connexion depuis pg-primary vers le dépôt

sudo -u postgres ssh pgbackrest@repository

NOTE :

ssh a été configuré pour autoriser uniquement l’exécution de pgBackRest via ssh sans mot de passe. Cela renforce la sécurité en cas de compromission d’un compte de service.

Configuration

L’hôte du dépôt doit être configuré avec l’hôte/utilisateur principal et le chemin de la base de données. Le principal sera configuré en tant que pg1 afin de permettre l’ajout ultérieur d’un serveur de secours.

dépôt : /etc/pgbackrest/pgbackrest.conf ⇒ Configurez pg1-host/pg1-host-user et pg1-path

[demo]

pg1-host=pg-primary

pg1-path=/var/lib/postgresql/17/demo



[global]

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y

L’hôte de base de données doit être configuré avec l’hôte/utilisateur du dépôt. La valeur par défaut de l’option repo1-host-user est pgbackrest. Si l’utilisateur postgres effectue des restaurations sur l’hôte du dépôt, il est préférable de ne pas autoriser également l’utilisateur postgres à effectuer des sauvegardes. Toutefois, l’utilisateur postgres peut lire directement le dépôt s’il appartient au même groupe que l’utilisateur pgbackrest.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configure repo1-host/repo1-host-user

[demo]

pg1-path=/var/lib/postgresql/17/demo



[global]

log-level-file=detail

repo1-host=repository

La configuration de PostgreSQL peut être trouvée dans la section Configurer la sauvegarde archivée .

Les commandes sont exécutées de la même manière qu’avec une configuration à hôte unique, à ceci près que certaines commandes, telles que backup et expire, sont exécutées depuis l’hôte du dépôt plutôt que depuis l’hôte de la base de données.

Créer et vérifier une stanza

Créez le stanza dans le nouveau dépôt.

dépôt ⇒ Créer le stanza

sudo -u pgbackrest pgbackrest --stanza=demo stanza-create

Vérifiez que la configuration est correcte sur les hôtes de base de données et de dépôt. Plus d’informations sur la commande check sont disponibles dans Vérifier la configuration .

pg-primary ⇒ Vérifier la configuration

sudo -u postgres pgbackrest --stanza=demo check

dépôt ⇒ Vérifiez la configuration

sudo -u pgbackrest pgbackrest --stanza=demo check

Effectuer une sauvegarde

Pour effectuer une sauvegarde du cluster PostgreSQL, exécutez pgBackRest avec la commande backup sur l’hôte du dépôt.

dépôt ⇒ Sauvegarder le cluster de démonstration

sudo -u pgbackrest pgbackrest --stanza=demo backup
P00   WARN: no prior backup exists, incr backup has been changed to full

Depuis la création d’un nouveau dépôt sur l’hôte du dépôt, l’avertissement indiquant que la sauvegarde incrémentielle passe à une sauvegarde complète a été émis.

Restaurer une sauvegarde

Pour effectuer une restauration du cluster PostgreSQL, exécutez pgBackRest avec la commande restore sur l’hôte de la base de données.

pg-primary ⇒ Arrêtez le cluster de démonstration, effectuez une restauration, puis redémarrez PostgreSQL

sudo pg_ctlcluster 17 demo stop
sudo -u postgres pgbackrest --stanza=demo --delta restore
sudo pg_ctlcluster 17 demo start

Sauvegarde / Restauration parallèle

pgBackRest propose un traitement parallèle afin d’améliorer les performances de compression et de transfert. Le nombre de processus à utiliser pour cette fonctionnalité est défini à l’aide de l’option --process-max.

Il est généralement préférable de ne pas utiliser plus de 25 % des processeurs disponibles pour la commande backup. Les sauvegardes n’ont pas besoin de s’exécuter aussi rapidement, à condition d’être effectuées régulièrement, et le processus de sauvegarde ne doit pas impacter les performances de la base de données, si possible.

La commande de restauration peut et doit utiliser tous les processeurs disponibles, car pendant une restauration le cluster PostgreSQL est arrêté et il n’y a généralement aucune autre tâche importante en cours sur l’hôte. Si l’hôte contient plusieurs clusters, cela doit être pris en compte lors de la configuration de la parallélisation de la restauration.

dépôt ⇒ Effectuer une sauvegarde avec un seul processus

sudo -u pgbackrest pgbackrest --stanza=demo --type=full backup

dépôt : /etc/pgbackrest/pgbackrest.conf ⇒ Configurez pgBackRest pour utiliser plusieurs processus backup

[demo]

pg1-host=pg-primary

pg1-path=/var/lib/postgresql/17/demo



[global]

process-max=3

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y

dépôt ⇒ Effectuer une sauvegarde avec plusieurs processus

sudo -u pgbackrest pgbackrest --stanza=demo --type=full backup

dépôt ⇒ Obtenir les informations de sauvegarde pour le cluster de démonstration

sudo -u pgbackrest pgbackrest info
stanza: demo
    status: ok
    cipher: none

    db (current)
        wal archive min/max (17): 000000070000000000000023/000000070000000000000025

        full backup: 20260817-045249F
            timestamp start/stop: 2026-08-17 04:52:49+00 / 2026-08-17 04:52:53+00
            wal start/stop: 000000070000000000000023 / 000000070000000000000023
            database size: 29.2MB, database backup size: 29.2MB
            repo1: backup set size: 3.8MB, backup size: 3.8MB

        full backup: 20260817-045255F
            timestamp start/stop: 2026-08-17 04:52:55+00 / 2026-08-17 04:52:58+00
            wal start/stop: 000000070000000000000024 / 000000070000000000000025
            database size: 29.2MB, database backup size: 29.2MB
            repo1: backup set size: 3.8MB, backup size: 3.8MB

La performance de la dernière sauvegarde devrait être améliorée en utilisant plusieurs processus. Pour des sauvegardes très petites, la différence peut ne pas être très marquée, mais à mesure que la taille de la base de données augmente, les gains de temps deviennent plus importants.


Démarrage et arrêt

Si un serveur de secours est promu à des fins de test, ou si un cluster de test est restauré à partir d’une sauvegarde de production, il est recommandé de bloquer l’écriture de ces clusters dans les dépôts pgBackRest. Cette mesure peut être mise en œuvre à l’aide de la commande stop.

Les commandes qui écrivent et sont bloquées par stop sont : archive-push, backup, expire, stanza-create et stanza-upgrade. Notez que stanza-delete est une exception à cette règle (voir Supprimer une stanza pour plus de détails).

pg-primary ⇒ Arrêt des commandes d’écriture pgBackRest

sudo -u postgres pgbackrest stop

Les nouvelles commandes d’écriture pgBackRest ne s’exécuteront plus.

dépôt ⇒ Tentative de sauvegarde

sudo -u pgbackrest pgbackrest --stanza=demo backup
P00   WARN: unable to check pg1: [StopError] raised from remote-0 ssh protocol on 'pg-primary': stop file exists for all stanzas
P00  ERROR: [056]: unable to find primary cluster - cannot proceed
            HINT: are all available clusters in recovery?

Spécifiez l’option --force pour interrompre toute commande d’écriture pgBackRest en cours d’exécution. Cela inclut l’archive-get asynchrone (même si elle redémarre si PostgreSQL en a besoin). Si pgBackRest est déjà arrêté, un nouvel arrêt générera un avertissement.

pg-primary ⇒ Arrêtez à nouveau les services pgBackRest

sudo -u postgres pgbackrest stop
P00   WARN: stop file already exists for all stanzas

Redémarrez les commandes d’écriture pgBackRest à l’aide de la commande start. Les commandes d’écriture en cours avant l’arrêt ne reprendront pas automatiquement, mais elles sont désormais autorisées à redémarrer.

pg-primary ⇒ Démarrer les commandes d’écriture pgBackRest

sudo -u postgres pgbackrest start

Il est également possible d’arrêter pgBackRest pour une seule stanza.

pg-primary ⇒ Arrête les commandes d’écriture pgBackRest pour la stanza demo

sudo -u postgres pgbackrest --stanza=demo stop

Les nouvelles commandes d’écriture pgBackRest pour la stanza spécifiée ne s’exécuteront plus.

dépôt ⇒ Tentative de sauvegarde

sudo -u pgbackrest pgbackrest --stanza=demo backup
P00   WARN: unable to check pg1: [StopError] raised from remote-0 ssh protocol on 'pg-primary': stop file exists for stanza demo
P00  ERROR: [056]: unable to find primary cluster - cannot proceed
            HINT: are all available clusters in recovery?

La stanza doit également être précisée lors du lancement des commandes d’écriture pgBackRest pour une seule stanza.

pg-primary ⇒ Démarrer les commandes d’écriture pgBackRest pour la stanza demo

sudo -u postgres pgbackrest --stanza=demo start

Réplication

La réplication permet de créer plusieurs copies d’un cluster PostgreSQL (appelées réplicas) à partir d’un seul hôte principal. Les réplicas sont utiles pour équilibrer les lectures et assurer une redondance en cas de défaillance de l’hôte principal.

Installation

Un nouvel hôte nommé pg-standby est créé pour exécuter le serveur de secours.

Installer pgBackRest à partir d’un paquet est préférable à la compilation à partir des sources. Lors de l’installation à partir d’un paquet, les autres instructions de cette section sont généralement inutiles, mais il se peut qu’un paquet omette de créer un répertoire ou applique des permissions incorrectes. Dans ce cas, il peut être nécessaire de créer manuellement les répertoires ou de mettre à jour les permissions.

Les paquets Debian/Ubuntu pour pgBackRest sont disponibles sur apt.PostgreSQL.org .

Si des paquets ne sont pas fournis pour votre distribution/version, vous pouvez compiler à partir des sources puis procéder à l’installation manuelle comme indiqué ici.

pg-standby ⇒ Installer les dépendances

sudo apt-get install postgresql-client libxml2 libssh2-1

pg-standby ⇒ Copier le binaire pgBackRest depuis l’hôte de compilation

sudo scp build:/build/pgbackrest/src/pgbackrest /usr/bin
sudo chmod 755 /usr/bin/pgbackrest

pgBackRest nécessite des répertoires pour les journaux et la configuration, ainsi qu’un fichier de configuration.

pg-standby ⇒ Créer le fichier de configuration et les répertoires pgBackRest

sudo mkdir -p -m 770 /var/log/pgbackrest
sudo chown postgres:postgres /var/log/pgbackrest
sudo mkdir -p /etc/pgbackrest
sudo mkdir -p /etc/pgbackrest/conf.d
sudo touch /etc/pgbackrest/pgbackrest.conf
sudo chmod 640 /etc/pgbackrest/pgbackrest.conf
sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf

Configuration d’un accès SSH sans mot de passe

pgBackRest peut utiliser SSH sans mot de passe pour permettre la communication entre les hôtes. Il est également possible d’utiliser TLS, voir Configurer TLS .

pg-standby ⇒ Créer une paire de clés hôte pg-standby

sudo -u postgres mkdir -m 750 -p /var/lib/postgresql/.ssh
sudo -u postgres ssh-keygen -f /var/lib/postgresql/.ssh/id_rsa \
       -t rsa -b 4096 -N ""

Échanger les clés entre le dépôt et pg-standby.

dépôt ⇒ Copiez la clé publique pg-standby sur le dépôt

(echo -n 'no-agent-forwarding,no-X11-forwarding,no-port-forwarding,' && \
       echo -n 'command="/usr/bin/pgbackrest ${SSH_ORIGINAL_COMMAND#* }" ' && \
       sudo ssh root@pg-standby cat /var/lib/postgresql/.ssh/id_rsa.pub) | \
       sudo -u pgbackrest tee -a /home/pgbackrest/.ssh/authorized_keys

pg-standby ⇒ Copier la clé publique du dépôt sur pg-standby

(echo -n 'no-agent-forwarding,no-X11-forwarding,no-port-forwarding,' && \
       echo -n 'command="/usr/bin/pgbackrest ${SSH_ORIGINAL_COMMAND#* }" ' && \
       sudo ssh root@repository cat /home/pgbackrest/.ssh/id_rsa.pub) | \
       sudo -u postgres tee -a /var/lib/postgresql/.ssh/authorized_keys

Testez que les connexions peuvent être établies depuis le dépôt vers pg-standby et réciproquement.

dépôt ⇒ Tester la connexion depuis le dépôt vers pg-standby

sudo -u pgbackrest ssh postgres@pg-standby

pg-standby ⇒ Tester la connexion depuis pg-standby vers le dépôt

sudo -u postgres ssh pgbackrest@repository

Standby chaud

Une station de secours active effectue la réplication à l’aide de l’archive WAL et autorise les requêtes en lecture seule.

La configuration de pgBackRest est très similaire à celle de pg-primary, sauf que le type de récupération standby sera utilisé pour maintenir le cluster en mode récupération lorsque la fin du flux WAL aura été atteinte.

pg-standby:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez pgBackRest sur le serveur de secours

[demo]

pg1-path=/var/lib/postgresql/17/demo



[global]

log-level-file=detail

repo1-host=repository

Le cluster de démonstration doit être créé (même s’il sera écrasé lors de la restauration) afin de générer les fichiers de configuration PostgreSQL.

pg-standby ⇒ Créer un cluster de démonstration

sudo pg_createcluster 17 demo

À présent, le serveur de secours peut être créé avec la commande restore.

IMPORTANT :

Si le cluster doit être promu sans devenir le nouveau principal (par exemple pour des rapports ou des tests), utilisez --archive-mode=off ou définissez archive_mode=off dans postgresql.conf afin de désactiver l’archivage. Si l’archivage n’est pas désactivé, le dépôt risque d’être pollué par des WAL qui peuvent compliquer les restaurations.

pg-standby ⇒ Effectuer la restauration du cluster de secours démo

sudo -u postgres pgbackrest --stanza=demo --delta --type=standby restore
sudo -u postgres cat /var/lib/postgresql/17/demo/postgresql.auto.conf
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:50:43
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:51:08
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:51:28
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'
# Removed by pgBackRest restore on 2026-08-17 04:52:17 # recovery_target_time = '2026-08-17 04:51:24.23782+00'
# Removed by pgBackRest restore on 2026-08-17 04:52:17 # recovery_target_action = 'promote'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:52:17
restore_command = 'pgbackrest --repo=3 --repo-target-time="2026-08-17 04:52:04+00" --stanza=demo archive-get %f "%p"'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:52:43
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:53:15
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'

La configuration est en cas de promotion du serveur de secours en serveur principal.

pg-standby:/etc/postgresql/17/demo/postgresql.conf ⇒ Configurez PostgreSQL

archive_command = 'pgbackrest --stanza=demo archive-push %p'

archive_mode = on

pg-standby ⇒ Démarrer PostgreSQL

sudo pg_ctlcluster 17 demo start

Le journal PostgreSQL fournit des informations précieuses sur la récupération. Notez notamment que le cluster est passé en mode standby et est prêt à accepter des connexions en lecture seule.

pg-standby ⇒ Examinez la sortie du journal PostgreSQL pour les messages indiquant une réussite

sudo -u postgres cat /var/log/postgresql/postgresql-17-demo.log
       [filtered 6 lines of output]
LOG:  restored log file "00000007.history" from archive
LOG:  restored log file "000000070000000000000024" from archive
LOG:  entering standby mode
LOG:  redo starts at 0/24000028
LOG:  restored log file "000000070000000000000025" from archive
       [filtered 3 lines of output]

Une façon simple de vérifier que la réplication est correctement configurée consiste à créer une table sur pg-primary.

pg-primary ⇒ Créer une nouvelle table sur le serveur primaire

sudo -u postgres psql -c " \
       begin; \
       create table replicated_table (message text); \
       insert into replicated_table values ('Important Data'); \
       commit; \
       select * from replicated_table";
       [filtered 4 lines of output]
    message
----------------
 Important Data
(1 row)

Ensuite, interrogez la même table sur pg-standby.

pg-standby ⇒ Interroger une nouvelle table sur le serveur de secours

sudo -u postgres psql -c "select * from replicated_table;"
ERROR:  relation "replicated_table" does not exist
LINE 1: select * from replicated_table;
                      ^

Qu’est-ce qui s’est mal passé ? Puisque PostgreSQL extrait les segments WAL de l’archive pour effectuer la réplication, les modifications ne seront pas visibles sur le serveur de secours tant que le segment WAL contenant ces modifications n’aura pas été transféré depuis pg-primary.

Cela peut être effectué manuellement en appelant pg_switch_wal(), ce qui transfère le segment WAL actuel vers l’archive (un nouveau segment WAL est créé pour contenir les modifications ultérieures).

pg-primary ⇒ Appel à pg_switch_wal()

sudo -u postgres psql -c "select *, current_timestamp from pg_switch_wal()";
 pg_switch_wal |       current_timestamp
---------------+-------------------------------
 0/260195C8    | 2026-08-17 04:53:22.649899+00
(1 row)

À présent, après un court délai, la table apparaîtra sur pg-standby.

pg-standby ⇒ La nouvelle table existe désormais sur le serveur de secours (peut nécessiter plusieurs tentatives)

sudo -u postgres psql -c " \
       select *, current_timestamp from replicated_table"
    message     |       current_timestamp
----------------+-------------------------------
 Important Data | 2026-08-17 04:53:24.247724+00
(1 row)

Vérifiez la configuration du serveur de secours pour accéder au dépôt.

pg-standby ⇒ Vérifier la configuration

sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check
P00   INFO: check command begin 2.59.1: --exec-id=505-273c787f --log-level-console=info --log-level-file=detail --no-log-timestamp --pg1-path=/var/lib/postgresql/17/demo --repo1-host=repository --stanza=demo
P00   INFO: check repo1 (standby)
P00   INFO: switch wal not performed because this is a standby
P00   INFO: check command end: completed successfully

Réplication en streaming

Au lieu de se fier uniquement à l’archive WAL, la réplication en streaming établit une connexion directe avec le principal et applique les modifications dès qu’elles sont effectuées sur ce dernier. Cela réduit considérablement le délai de latence entre le principal et le secondaire.

La réplication en streaming nécessite un utilisateur disposant du privilège de réplication.

pg-primary ⇒ Créer un utilisateur de réplication

sudo -u postgres psql -c " \
       create user replicator password 'jw8s0F4' replication";
CREATE ROLE

Le fichier pg_hba.conf doit être mis à jour pour autoriser le serveur de secours à se connecter en tant qu’utilisateur de réplication. Veillez à remplacer l’adresse IP ci-dessous par l’adresse IP réelle de votre serveur pg-standby. Un rechargement sera nécessaire après la modification du fichier pg_hba.conf.

pg-primary ⇒ Créer une entrée pg_hba.conf pour l’utilisateur de réplication

sudo -u postgres sh -c 'echo \
       "host    replication     replicator      172.17.0.8/32           md5" \
       >> /etc/postgresql/17/demo/pg_hba.conf'
sudo pg_ctlcluster 17 demo reload

Le serveur de secours doit savoir comment contacter le serveur principal, donc le paramètre primary_conninfo sera configuré dans pgBackRest.

pg-standby:/etc/pgbackrest/pgbackrest.conf ⇒ Définir primary_conninfo

[demo]

pg1-path=/var/lib/postgresql/17/demo

recovery-option=primary_conninfo=host=172.17.0.6 port=5432 user=replicator



[global]

log-level-file=detail

repo1-host=repository

Il est possible de configurer un mot de passe dans le paramètre primary_conninfo, mais utiliser un fichier .pgpass est plus flexible et plus sécurisé.

pg-standby ⇒ Configurez le mot de passe de réplication dans le fichier .pgpass.

sudo -u postgres sh -c 'echo \
       "172.17.0.6:*:replication:replicator:jw8s0F4" \
       >> /var/lib/postgresql/.pgpass'
sudo -u postgres chmod 600 /var/lib/postgresql/.pgpass

À présent, le serveur de secours peut être créé avec la commande restore.

pg-standby ⇒ Arrêtez PostgreSQL et effectuez la restauration du cluster de secours démo

sudo pg_ctlcluster 17 demo stop
sudo -u postgres pgbackrest --stanza=demo --delta --type=standby restore
sudo -u postgres cat /var/lib/postgresql/17/demo/postgresql.auto.conf
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:50:43
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:51:08
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:51:28
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'
# Removed by pgBackRest restore on 2026-08-17 04:52:17 # recovery_target_time = '2026-08-17 04:51:24.23782+00'
# Removed by pgBackRest restore on 2026-08-17 04:52:17 # recovery_target_action = 'promote'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:52:17
restore_command = 'pgbackrest --repo=3 --repo-target-time="2026-08-17 04:52:04+00" --stanza=demo archive-get %f "%p"'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:52:43
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:53:27
primary_conninfo = 'host=172.17.0.6 port=5432 user=replicator'
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'

NOTE :

Le paramètre primary_conninfo a été écrit dans le fichier postgresql.auto.conf car il a été configuré en tant que recovery-option dans pgbackrest.conf. L’option --type=preserve peut être utilisée avec restore pour laisser le fichier postgresql.auto.conf existant inchangé si ce comportement est préféré.

pg-standby ⇒ Démarrer PostgreSQL

sudo pg_ctlcluster 17 demo start

Le journal PostgreSQL confirmera que la réplication en flux a commencé.

pg-standby ⇒ Examinez la sortie du journal PostgreSQL pour les messages indiquant une réussite

sudo -u postgres cat /var/log/postgresql/postgresql-17-demo.log
       [filtered 13 lines of output]
LOG:  consistent recovery state reached at 0/25000088
LOG:  database system is ready to accept read-only connections
LOG:  started streaming WAL from primary at 0/27000000 on timeline 7

Désormais, lorsque vous créerez une table sur pg-primary, elle apparaîtra sur pg-standby rapidement et sans avoir à appeler pg_switch_wal().

pg-primary ⇒ Créer une nouvelle table sur le serveur primaire

sudo -u postgres psql -c " \
       begin; \
       create table stream_table (message text); \
       insert into stream_table values ('Important Data'); \
       commit; \
       select *, current_timestamp from stream_table";
       [filtered 4 lines of output]
    message     |       current_timestamp
----------------+-------------------------------
 Important Data | 2026-08-17 04:53:33.817993+00
(1 row)

pg-standby ⇒ Interroger une table sur le serveur de secours

sudo -u postgres psql -c " \
       select *, current_timestamp from stream_table"
    message     |       current_timestamp
----------------+-------------------------------
 Important Data | 2026-08-17 04:53:34.003849+00
(1 row)

Stanzas multiples

pgBackRest prend en charge plusieurs stanzas. L’utilisation la plus courante consiste à partager un hôte de dépôt entre plusieurs stanzas.

Installation

Un nouvel hôte nommé pg-alt est créé pour exécuter le nouveau primaire.

Installer pgBackRest à partir d’un paquet est préférable à la compilation à partir des sources. Lors de l’installation à partir d’un paquet, les autres instructions de cette section sont généralement inutiles, mais il se peut qu’un paquet omette de créer un répertoire ou applique des permissions incorrectes. Dans ce cas, il peut être nécessaire de créer manuellement les répertoires ou de mettre à jour les permissions.

Les paquets Debian/Ubuntu pour pgBackRest sont disponibles sur apt.PostgreSQL.org .

Si des paquets ne sont pas fournis pour votre distribution/version, vous pouvez compiler à partir des sources puis procéder à l’installation manuelle comme indiqué ici.

pg-alt ⇒ Installer les dépendances

sudo apt-get install postgresql-client libxml2 libssh2-1

pg-alt ⇒ Copier le binaire pgBackRest depuis l’hôte de compilation

sudo scp build:/build/pgbackrest/src/pgbackrest /usr/bin
sudo chmod 755 /usr/bin/pgbackrest

pgBackRest nécessite des répertoires pour les journaux et la configuration, ainsi qu’un fichier de configuration.

pg-alt ⇒ Créer le fichier de configuration et les répertoires pgBackRest

sudo mkdir -p -m 770 /var/log/pgbackrest
sudo chown postgres:postgres /var/log/pgbackrest
sudo mkdir -p /etc/pgbackrest
sudo mkdir -p /etc/pgbackrest/conf.d
sudo touch /etc/pgbackrest/pgbackrest.conf
sudo chmod 640 /etc/pgbackrest/pgbackrest.conf
sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf

Configuration d’un accès SSH sans mot de passe

pgBackRest peut utiliser SSH sans mot de passe pour permettre la communication entre les hôtes. Il est également possible d’utiliser TLS, voir Configurer TLS .

pg-alt ⇒ Créer une paire de clés hôte pg-alt

sudo -u postgres mkdir -m 750 -p /var/lib/postgresql/.ssh
sudo -u postgres ssh-keygen -f /var/lib/postgresql/.ssh/id_rsa \
       -t rsa -b 4096 -N ""

Échanger les clés entre le dépôt et pg-alt.

dépôt ⇒ Copiez la clé publique pg-alt vers le dépôt

(echo -n 'no-agent-forwarding,no-X11-forwarding,no-port-forwarding,' && \
       echo -n 'command="/usr/bin/pgbackrest ${SSH_ORIGINAL_COMMAND#* }" ' && \
       sudo ssh root@pg-alt cat /var/lib/postgresql/.ssh/id_rsa.pub) | \
       sudo -u pgbackrest tee -a /home/pgbackrest/.ssh/authorized_keys

pg-alt ⇒ Copier la clé publique du dépôt sur pg-alt

(echo -n 'no-agent-forwarding,no-X11-forwarding,no-port-forwarding,' && \
       echo -n 'command="/usr/bin/pgbackrest ${SSH_ORIGINAL_COMMAND#* }" ' && \
       sudo ssh root@repository cat /home/pgbackrest/.ssh/id_rsa.pub) | \
       sudo -u postgres tee -a /var/lib/postgresql/.ssh/authorized_keys

Testez que les connexions peuvent être établies depuis le dépôt vers pg-alt et réciproquement.

dépôt ⇒ Tester la connexion depuis le dépôt vers pg-alt

sudo -u pgbackrest ssh postgres@pg-alt

pg-alt ⇒ Tester la connexion depuis pg-alt vers le dépôt

sudo -u postgres ssh pgbackrest@repository

Configuration

La configuration de pgBackRest est presque identique à celle de pg-primary, sauf que la stanza demo-alt sera utilisée, de sorte que les sauvegardes et l’archive seront stockées dans un emplacement séparé.

pg-alt:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez pgBackRest sur le nouveau serveur primaire

[demo-alt]

pg1-path=/var/lib/postgresql/17/demo



[global]

log-level-file=detail

repo1-host=repository

dépôt : /etc/pgbackrest/pgbackrest.conf ⇒ Configurez pg1-host/pg1-host-user et pg1-path

[demo]

pg1-host=pg-primary

pg1-path=/var/lib/postgresql/17/demo



[demo-alt]

pg1-host=pg-alt

pg1-path=/var/lib/postgresql/17/demo



[global]

process-max=3

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y

Configurer un cluster de démonstration

pg-alt ⇒ Créer le cluster de démonstration

sudo -u postgres /usr/lib/postgresql/17/bin/initdb \
       -D /var/lib/postgresql/17/demo -k -A peer
sudo pg_createcluster 17 demo
Configuring already existing cluster (configuration: /etc/postgresql/17/demo, data: /var/lib/postgresql/17/demo, owner: 102:103)
Ver Cluster Port Status Owner    Data directory              Log file
17  demo    5432 down   postgres /var/lib/postgresql/17/demo /var/log/postgresql/postgresql-17-demo.log

pg-alt:/etc/postgresql/17/demo/postgresql.conf ⇒ Configure les paramètres PostgreSQL

archive_command = 'pgbackrest --stanza=demo-alt archive-push %p'

archive_mode = on

pg-alt ⇒ Démarrer le cluster de démonstration

sudo pg_ctlcluster 17 demo restart

Créer la stanza et vérifier la configuration

La commande stanza-create doit être exécutée pour initialiser la stanza. Il est recommandé d’exécuter la commande check après stanza-create afin de vérifier que l’archivage et les sauvegardes sont correctement configurés.

pg-alt ⇒ Créer la stanza et vérifier la configuration

sudo -u postgres pgbackrest --stanza=demo-alt --log-level-console=info stanza-create
P00   INFO: stanza-create command begin 2.59.1: --exec-id=372-b225fca7 --log-level-console=info --log-level-file=detail --no-log-timestamp --pg1-path=/var/lib/postgresql/17/demo --repo1-host=repository --stanza=demo-alt
P00   INFO: stanza-create for stanza 'demo-alt' on repo1
P00   INFO: stanza-create command end: completed successfully
sudo -u postgres pgbackrest --log-level-console=info check
P00   INFO: check command begin 2.59.1: --exec-id=382-ccef16c6 --log-level-console=info --log-level-file=detail --no-log-timestamp --repo1-host=repository
P00   INFO: check stanza 'demo-alt'
P00   INFO: check repo1 configuration (primary)
P00   INFO: check repo1 archive for WAL (primary)
P00   INFO: WAL segment 000000010000000000000001 successfully archived to '/var/lib/pgbackrest/archive/demo-alt/17-1/0000000100000000/000000010000000000000001-df38b84009fe42b2c6af1be56a25c22b25004849.gz' on repo1
P00   INFO: check command end: completed successfully

Si la commande check est exécutée depuis l’hôte du dépôt, tous les stanzas seront vérifiés.

dépôt ⇒ Vérifiez la configuration de tous les stanzas

sudo -u pgbackrest pgbackrest --log-level-console=info check
P00   INFO: check command begin 2.59.1: --exec-id=1249-f7860275 --log-level-console=info --no-log-timestamp --repo1-path=/var/lib/pgbackrest
P00   INFO: check stanza 'demo'
P00   INFO: check repo1 configuration (primary)
P00   INFO: check repo1 archive for WAL (primary)
P00   INFO: WAL segment 000000070000000000000027 successfully archived to '/var/lib/pgbackrest/archive/demo/17-1/0000000700000000/000000070000000000000027-4d7f856eebbec0a9d75eb22920ce0c0c07a023a3.gz' on repo1
P00   INFO: check stanza 'demo-alt'
P00   INFO: check repo1 configuration (primary)
P00   INFO: check repo1 archive for WAL (primary)
P00   INFO: WAL segment 000000010000000000000002 successfully archived to '/var/lib/pgbackrest/archive/demo-alt/17-1/0000000100000000/000000010000000000000002-7c0a567acd264e55aa6391e2c9609c4bd0777559.gz' on repo1
P00   INFO: check command end: completed successfully

Archivage asynchrone

La sauvegarde asynchrone est activée avec l’option archive-async. Cette option permet une opération asynchrone pour les commandes archive-push et archive-get.

Un chemin de tampon est requis. Les commandes stockeront les données temporaires ici, mais chaque commande fonctionne de manière assez différente ; l’utilisation du chemin de tampon est donc décrite en détail dans chaque section.

pg-primary ⇒ Créer le répertoire de file d’attente

sudo mkdir -p -m 750 /var/spool/pgbackrest
sudo chown postgres:postgres /var/spool/pgbackrest

pg-standby ⇒ Créer le répertoire de tampon

sudo mkdir -p -m 750 /var/spool/pgbackrest
sudo chown postgres:postgres /var/spool/pgbackrest

Le chemin d’attente doit être configuré et l’archivage asynchrone activé. L’archivage asynchrone apporte automatiquement certains avantages en réduisant le nombre de connexions établies vers le stockage distant, mais la configuration de process-max peut améliorer considérablement les performances en parallélisant les opérations. Veillez à ne pas définir process-max trop élevé afin de ne pas affecter les opérations normales de la base de données.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez le chemin d’épissage et l’archivage asynchrone

[demo]

pg1-path=/var/lib/postgresql/17/demo



[global]

archive-async=y

log-level-file=detail

repo1-host=repository

spool-path=/var/spool/pgbackrest



[global:archive-get]

process-max=2



[global:archive-push]

process-max=2

pg-standby:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez le chemin d’épissage et l’archivage asynchrone

[demo]

pg1-path=/var/lib/postgresql/17/demo

recovery-option=primary_conninfo=host=172.17.0.6 port=5432 user=replicator



[global]

archive-async=y

log-level-file=detail

repo1-host=repository

spool-path=/var/spool/pgbackrest



[global:archive-get]

process-max=2



[global:archive-push]

process-max=2

NOTE :

process-max est configuré à l’aide de sections de commande afin que l’option ne soit pas utilisée lors de la sauvegarde ni de la restauration. Cela permet également d’attribuer des valeurs différentes à archive-push et archive-get.

À des fins de démonstration, la réplication en streaming sera interrompue afin de forcer PostgreSQL à récupérer les WAL à l’aide de la commande restore_command.

pg-primary ⇒ Interrompre la réplication en continu en modifiant le mot de passe de réplication

sudo -u postgres psql -c "alter user replicator password 'bogus'"
ALTER ROLE

pg-standby ⇒ Redémarrer le serveur de secours pour interrompre la connexion

sudo pg_ctlcluster 17 demo restart

Archivage push

La commande asynchrone archive-push déplace l’archivage des WAL vers un processus (ou plusieurs processus) distinct pour améliorer le débit. Elle fonctionne en « regardant à l’avance » pour déterminer quels segments WAL sont prêts à être archivés, au-delà de la demande actuelle de PostgreSQL via le archive_command. Les segments WAL sont transférés directement depuis le répertoire pg_xlog/pg_wal et la réussite n’est retournée par le archive_command que lorsque le segment WAL a été stocké en toute sécurité dans l’archive.

Le répertoire de stockage temporaire contient l’état actuel de l’archivage des WAL. Les fichiers d’état écrits dans le répertoire de stockage temporaire sont généralement de taille nulle et doivent consommer une quantité négligeable d’espace (au plus quelques mégaoctets) et très peu d’E/S. Toutes les informations contenues dans ce répertoire peuvent être régénérées, aussi n’est-il pas nécessaire de préserver le répertoire de stockage temporaire si le cluster est déplacé vers de nouveaux matériels.

IMPORTANT :

Dans l’implémentation originale de l’archivage asynchrone, les segments WAL étaient copiés dans le répertoire tampon avant compression et transfert. La nouvelle implémentation copie directement les segments WAL depuis le répertoire pg_xlog. Si l’archivage asynchrone était utilisé dans la version 1.12 ou antérieure, lisez attentivement les notes de publication de la version 1.13 avant de procéder à la mise à jour.

Le fichier [stanza]-archive-push-async.log peut être utilisé pour surveiller l’activité du processus asynchrone. Une bonne manière de tester cela consiste à envoyer rapidement un nombre important de segments WAL.

pg-primary ⇒ Test de l’archivage asynchrone parallèle

sudo -u postgres psql -c " \
       select pg_create_restore_point('test async push'); select pg_switch_wal(); \
       select pg_create_restore_point('test async push'); select pg_switch_wal(); \
       select pg_create_restore_point('test async push'); select pg_switch_wal(); \
       select pg_create_restore_point('test async push'); select pg_switch_wal(); \
       select pg_create_restore_point('test async push'); select pg_switch_wal();"
sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check
P00   INFO: check command begin 2.59.1: --exec-id=2530-9a7af218 --log-level-console=info --log-level-file=detail --no-log-timestamp --pg1-path=/var/lib/postgresql/17/demo --repo1-host=repository --stanza=demo
P00   INFO: check repo1 configuration (primary)
P00   INFO: check repo1 archive for WAL (primary)
P00   INFO: WAL segment 00000007000000000000002D successfully archived to '/var/lib/pgbackrest/archive/demo/17-1/0000000700000000/00000007000000000000002D-c467ce0a3301b25e7031ee7d8eb7ec6233f85d9e.gz' on repo1
P00   INFO: check command end: completed successfully

Le fichier journal contiendra désormais une activité parallèle et asynchrone.

pg-primary ⇒ Vérifier les résultats dans le journal

sudo -u postgres cat /var/log/pgbackrest/demo-archive-push-async.log
-------------------PROCESS START-------------------
P00   INFO: archive-push:async command begin 2.59.1: [/var/lib/postgresql/17/demo/pg_wal] --archive-async --exec-id=2516-b69036b0 --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/17/demo --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo
P00   INFO: push 1 WAL file(s) to archive: 000000070000000000000028
P01 DETAIL: pushed WAL file '000000070000000000000028' to the archive
P00   INFO: archive-push:async command end: completed successfully

-------------------PROCESS START-------------------
P00   INFO: archive-push:async command begin 2.59.1: [/var/lib/postgresql/17/demo/pg_wal] --archive-async --exec-id=2534-68722823 --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/17/demo --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo
P00   INFO: push 5 WAL file(s) to archive: 000000070000000000000029...00000007000000000000002D
P01 DETAIL: pushed WAL file '000000070000000000000029' to the archive
P02 DETAIL: pushed WAL file '00000007000000000000002A' to the archive
P01 DETAIL: pushed WAL file '00000007000000000000002B' to the archive
P02 DETAIL: pushed WAL file '00000007000000000000002C' to the archive
P01 DETAIL: pushed WAL file '00000007000000000000002D' to the archive
P00   INFO: archive-push:async command end: completed successfully

Récupération d’archive

La commande asynchrone archive-get maintient une file locale de WAL afin d’améliorer le débit. Si un segment de WAL n’est pas présent dans la file, il est récupéré à partir du dépôt, accompagné de suffisamment de segments de WAL consécutifs pour remplir la file. La taille maximale de la file est définie par archive-get-queue-max. Chaque fois que la file est à moins de la moitié pleine, davantage de WAL est récupéré afin de la remplir.

L’opération asynchrone est particulièrement utile dans les environnements qui génèrent beaucoup de WAL ou qui disposent d’une connexion à haute latence avec le stockage du dépôt (par exemple, S3 ou d’autres magasins d’objets). Dans le cas d’une connexion à haute latence, il peut être pertinent d’augmenter process-max.

Le fichier [stanza]-archive-get-async.log peut être utilisé pour surveiller l’activité du processus asynchrone.

pg-standby ⇒ Vérifier les résultats dans le journal

sudo -u postgres cat /var/log/pgbackrest/demo-archive-get-async.log
-------------------PROCESS START-------------------
P00   INFO: archive-get:async command begin 2.59.1: [000000070000000000000024, 000000070000000000000025, 000000070000000000000026, 000000070000000000000027, 000000070000000000000028, 000000070000000000000029, 00000007000000000000002A, 00000007000000000000002B] --archive-async --exec-id=719-dc191549 --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/17/demo --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo
P00   INFO: get 8 WAL file(s) from archive: 000000070000000000000024...00000007000000000000002B
P02 DETAIL: found 000000070000000000000025 in the repo1: 17-1 archive
P01 DETAIL: found 000000070000000000000024 in the repo1: 17-1 archive
P02 DETAIL: found 000000070000000000000026 in the repo1: 17-1 archive
P01 DETAIL: found 000000070000000000000027 in the repo1: 17-1 archive
P00 DETAIL: unable to find 000000070000000000000028 in the archive
P00   INFO: archive-get:async command end: completed successfully
       [filtered 14 lines of output]
P00   INFO: archive-get:async command begin 2.59.1: [000000070000000000000028, 000000070000000000000029, 00000007000000000000002A, 00000007000000000000002B, 00000007000000000000002C, 00000007000000000000002D, 00000007000000000000002E, 00000007000000000000002F] --archive-async --exec-id=771-11074399 --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/17/demo --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo
P00   INFO: get 8 WAL file(s) from archive: 000000070000000000000028...00000007000000000000002F
P01 DETAIL: found 000000070000000000000028 in the repo1: 17-1 archive
P02 DETAIL: found 000000070000000000000029 in the repo1: 17-1 archive
P01 DETAIL: found 00000007000000000000002A in the repo1: 17-1 archive
P02 DETAIL: found 00000007000000000000002B in the repo1: 17-1 archive
P02 DETAIL: found 00000007000000000000002D in the repo1: 17-1 archive
P01 DETAIL: found 00000007000000000000002C in the repo1: 17-1 archive
P00 DETAIL: unable to find 00000007000000000000002E in the archive
P00   INFO: archive-get:async command end: completed successfully
       [filtered 9 lines of output]

pg-primary ⇒ Corriger la réplication en streaming en modifiant le mot de passe de réplication

sudo -u postgres psql -c "alter user replicator password 'jw8s0F4'"
ALTER ROLE

Sauvegarde à partir d’un serveur de secours

pgBackRest peut effectuer des sauvegardes sur une instance de secours au lieu du serveur principal. Les sauvegardes sur instance de secours nécessitent que l’hôte pg-standby soit configuré et que l’option backup-standby soit activée. Si plusieurs instances de secours sont configurées, la première instance de secours en cours d’exécution trouvée sera utilisée pour la sauvegarde.

dépôt : /etc/pgbackrest/pgbackrest.conf ⇒ Configurez pg2-host/pg2-host-user et pg2-path

[demo]

pg1-host=pg-primary

pg1-path=/var/lib/postgresql/17/demo

pg2-host=pg-standby

pg2-path=/var/lib/postgresql/17/demo



[demo-alt]

pg1-host=pg-alt

pg1-path=/var/lib/postgresql/17/demo



[global]

backup-standby=y

process-max=3

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y

La base primaire comme la base standby sont nécessaires pour effectuer la sauvegarde, bien que l’immense majorité des fichiers soient copiés depuis le standby afin de réduire la charge du primaire. Les hôtes de base de données peuvent être configurés dans n’importe quel ordre ; pgBackRest détermine automatiquement lequel est primaire et lequel est standby.

dépôt ⇒ Effectuer une sauvegarde du cluster de démonstration depuis pg2

sudo -u pgbackrest pgbackrest --stanza=demo --log-level-console=detail backup
       [filtered 2 lines of output]
P00   INFO: execute backup start: backup begins after the requested immediate checkpoint completes
P00   INFO: backup start archive = 00000007000000000000002F, lsn = 0/2F000028
P00   INFO: wait for replay on the standby to reach 0/2F000028
P00   INFO: replay on the standby reached 0/2F000028
P00   INFO: check archive for prior segment 00000007000000000000002E
P04 DETAIL: backup file pg-standby:/var/lib/postgresql/17/demo/base/5/1247 (120KB, 7.94%) checksum fa2fb6657bf9785e320a8a5516851de78d7a7a33
P01 DETAIL: backup file pg-primary:/var/lib/postgresql/17/demo/global/pg_control (8KB, 8.47%) checksum 285bd888f4f957a70cbfd99129b783f2b523b529
P01 DETAIL: match file from prior backup pg-primary:/var/lib/postgresql/17/demo/pg_logical/replorigin_checkpoint (8B, 8.47%) checksum 347fc8f2df71bd4436e38bd1516ccd7ea0d46532
P02 DETAIL: backup file pg-standby:/var/lib/postgresql/17/demo/base/5/1249 (448KB, 38.10%) checksum 3b6f5ca3b766aa5972894958f6b2f4d0d98f0228
       [filtered 1277 lines of output]

Cette sauvegarde incrémentielle montre que la majeure partie des fichiers provient de l’hôte pg-standby et qu’un petit nombre provient de l’hôte pg-primary.

pgBackRest crée une sauvegarde en mode basculement identique à celle effectuée sur le serveur principal. Il procède en lançant/arrêtant la sauvegarde sur l’hôte pg-primary, en copiant uniquement les fichiers répliqués depuis l’hôte pg-standby, puis en copiant les quelques fichiers restants depuis l’hôte pg-primary. Cela signifie que les journaux et les statistiques de la base de données principale seront inclus dans la sauvegarde.


Mise à jour de PostgreSQL

Immédiatement après la mise à niveau de PostgreSQL vers une nouvelle version majeure, le pg-path de toutes les configurations pgBackRest doit être défini sur le nouveau emplacement de la base de données, puis la commande stanza-upgrade doit être exécutée. Si plusieurs dépôts sont configurés sur l’hôte, le stanza sera mis à niveau sur chacun. Si la base de données est hors ligne, utilisez l’option --no-online.

Les instructions suivantes ne constituent pas un guide complet de mise à jour de PostgreSQL, mais décrivent le processus général de mise à jour d’un nœud principal et d’un nœud secondaire, dans le but de démontrer les étapes nécessaires à la reconfiguration de pgBackRest. Il est recommandé de prendre une sauvegarde avant la mise à jour.

pg-primary ⇒ Arrêt de l’ancêtre cluster

sudo pg_ctlcluster 17 demo stop

Arrêtez l’ancien cluster sur le serveur de secours, car il sera restauré à partir du cluster nouvellement mis à jour.

pg-standby ⇒ Arrêter l’ancêtre cluster

sudo pg_ctlcluster 17 demo stop

Créez le nouveau cluster et effectuez la mise à jour.

pg-primary ⇒ Créer un nouveau cluster et effectuer la mise à jour

sudo -u postgres /usr/lib/postgresql/18/bin/initdb \
       -D /var/lib/postgresql/18/demo -k -A peer
sudo pg_createcluster 18 demo
sudo -u postgres sh -c 'cd /var/lib/postgresql && \
       /usr/lib/postgresql/18/bin/pg_upgrade \
       --old-bindir=/usr/lib/postgresql/17/bin \
       --new-bindir=/usr/lib/postgresql/18/bin \
       --old-datadir=/var/lib/postgresql/17/demo \
       --new-datadir=/var/lib/postgresql/18/demo \
       --old-options=" -c config_file=/etc/postgresql/17/demo/postgresql.conf" \
       --new-options=" -c config_file=/etc/postgresql/18/demo/postgresql.conf"'
       [filtered 44 lines of output]
Checking for extension updates                                ok
Upgrade Complete
----------------
Some statistics are not transferred by pg_upgrade.
       [filtered 4 lines of output]

Configurez les paramètres du nouveau cluster et le port.

pg-primary:/etc/postgresql/18/demo/postgresql.conf ⇒ Configurez PostgreSQL

archive_command = 'pgbackrest --stanza=demo archive-push %p'

archive_mode = on

Mettez à jour la configuration de pgBackRest sur tous les systèmes pour qu’elle pointe vers le nouveau cluster.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Mettre à jour pg1-path

[demo]

pg1-path=/var/lib/postgresql/18/demo



[global]

archive-async=y

log-level-file=detail

repo1-host=repository

spool-path=/var/spool/pgbackrest



[global:archive-get]

process-max=2



[global:archive-push]

process-max=2

pg-standby:/etc/pgbackrest/pgbackrest.conf ⇒ Mettre à jour pg-path

[demo]

pg1-path=/var/lib/postgresql/18/demo

recovery-option=primary_conninfo=host=172.17.0.6 port=5432 user=replicator



[global]

archive-async=y

log-level-file=detail

repo1-host=repository

spool-path=/var/spool/pgbackrest



[global:archive-get]

process-max=2



[global:archive-push]

process-max=2

dépôt : /etc/pgbackrest/pgbackrest.conf ⇒ Mettre à jour pg1-path et pg2-path, désactiver la sauvegarde depuis le serveur de secours

[demo]

pg1-host=pg-primary

pg1-path=/var/lib/postgresql/18/demo

pg2-host=pg-standby

pg2-path=/var/lib/postgresql/18/demo



[demo-alt]

pg1-host=pg-alt

pg1-path=/var/lib/postgresql/17/demo



[global]

backup-standby=n

process-max=3

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y

pg-primary ⇒ Copie de la configuration HBA

sudo cp /etc/postgresql/17/demo/pg_hba.conf \
       /etc/postgresql/18/demo/pg_hba.conf

Avant de démarrer le nouveau cluster, la commande stanza-upgrade doit être exécutée.

pg-primary ⇒ Mettre à jour la stanza

sudo -u postgres pgbackrest --stanza=demo --no-online \
       --log-level-console=info stanza-upgrade
P00   INFO: stanza-upgrade command begin 2.59.1: --exec-id=2952-4ae81a5e --log-level-console=info --log-level-file=detail --no-log-timestamp --no-online --pg1-path=/var/lib/postgresql/18/demo --repo1-host=repository --stanza=demo
P00   INFO: stanza-upgrade for stanza 'demo' on repo1
P00   INFO: stanza-upgrade command end: completed successfully

Démarrer le nouveau cluster et confirmer qu’il est correctement installé.

pg-primary ⇒ Démarrer un nouveau cluster

sudo pg_ctlcluster 18 demo start

Testez la configuration à l’aide de la commande check.

pg-primary ⇒ Vérifier la configuration

sudo pg_lsclusters
sudo -u postgres pgbackrest --stanza=demo check

Supprimez le cluster ancien.

pg-primary ⇒ Supprimer le cluster ancien

sudo pg_dropcluster 17 demo

Installez les nouveaux binaires PostgreSQL sur le serveur de secours et créez le cluster.

pg-standby ⇒ Supprimer l’ancien cluster et créer le nouveau cluster

sudo pg_dropcluster 17 demo
sudo pg_createcluster 18 demo

Exécutez check sur l’hôte du dépôt. L’avertissement concernant l’arrêt du serveur secondaire est attendu, car le cluster secondaire est arrêté. L’exécution de cette commande montre que le serveur de dépôt est conscient de la présence du serveur secondaire et est correctement configuré pour le serveur principal.

dépôt ⇒ Vérifier la configuration

sudo -u pgbackrest pgbackrest --stanza=demo check
P00   WARN: unable to check pg2: [DbConnectError] raised from remote-0 ssh protocol on 'pg-standby': unable to connect to 'dbname='postgres' port=5432': connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
                Is the server running locally and accepting connections on that socket?

Effectuez une sauvegarde complète sur le cluster nouvellement configuré, puis restaurez le serveur de secours à partir de cette sauvegarde. Le type de sauvegarde sera automatiquement modifié en full si incr ou diff est demandé.

dépôt ⇒ Exécuter une sauvegarde complète

sudo -u pgbackrest pgbackrest --stanza=demo --type=full backup

pg-standby ⇒ Effectuer la restauration du cluster de secours démo

sudo -u postgres pgbackrest --stanza=demo --delta --type=standby restore

pg-standby ⇒ Démarrer PostgreSQL et vérifier la configuration de pgBackRest

sudo pg_ctlcluster 18 demo start
sudo -u postgres pgbackrest --stanza=demo check

La sauvegarde depuis un serveur de secours peut maintenant être activée, puisque le serveur de secours est restauré.

dépôt : /etc/pgbackrest/pgbackrest.conf ⇒ Réactiver la sauvegarde depuis le serveur secondaire

[demo]

pg1-host=pg-primary

pg1-path=/var/lib/postgresql/18/demo

pg2-host=pg-standby

pg2-path=/var/lib/postgresql/18/demo



[demo-alt]

pg1-host=pg-alt

pg1-path=/var/lib/postgresql/17/demo



[global]

backup-standby=y

process-max=3

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y

3 - Guide utilisateur (RHEL)

Guide pas à pas d’installation et d’utilisation de pgBackRest pour les systèmes RHEL, Rocky et AlmaLinux.

Introduction

Ce guide utilisateur est conçu pour être suivi séquentiellement, du début à la fin — chaque section dépend de la précédente. Par exemple, la section Restauration repose sur la configuration effectuée dans la section Démarrage rapide . Une fois pgBackRest en fonctionnement, il est possible de sauter des sections, mais il est recommandé de suivre le guide dans l’ordre lors de la première utilisation.

Bien que les exemples de ce guide soient destinés à RHEL et à PostgreSQL 14, il devrait être relativement facile de les appliquer à toute distribution Unix et toute version de PostgreSQL. Les seules commandes spécifiques au système d’exploitation sont celles permettant de créer, démarrer, arrêter et supprimer des clusters PostgreSQL. Les commandes pgBackRest seront identiques sur tout système Unix, bien que l’emplacement de l’exécutable puisse varier. Bien que pgBackRest cherche à fonctionner de manière cohérente sur les différentes versions de PostgreSQL, certaines différences subtiles entre versions de PostgreSQL peuvent apparaître dans ce guide lors de l’illustration de certains exemples, par exemple les chemins ou noms de fichiers de PostgreSQL, ainsi que les paramètres.

Informations de configuration et documentation pour PostgreSQL sont disponibles dans le Manuel de PostgreSQL.

Une approche quelque peu originale est adoptée pour la documentation dans ce guide utilisateur. Chaque commande est exécutée sur une machine virtuelle au moment où la documentation est générée à partir de la source XML. Cela signifie que vous pouvez avoir une confiance élevée quant au bon fonctionnement des commandes, dans l’ordre présenté. La sortie est capturée et affichée sous la commande lorsque cela est pertinent. Si la sortie n’est pas incluse, c’est parce qu’elle a été jugée sans intérêt ou qu’elle aurait pu distraire du récit.

Toutes les commandes doivent être exécutées en tant qu’utilisateur non privilégié disposant des droits sudo pour les utilisateurs root et postgres. Il est également possible d’exécuter les commandes directement en tant que leurs utilisateurs respectifs sans modification, auquel cas les commandes sudo peuvent être omises.


Concepts

Les concepts suivants sont définis en tant qu’ils sont pertinents pour pgBackRest, PostgreSQL et ce guide utilisateur.

sauvegarde

Une sauvegarde est une copie cohérente d’un cluster de base de données pouvant être restaurée pour récupérer après une panne matérielle, effectuer une restauration à un instant donné ou mettre en place un serveur secondaire nouveau.

Sauvegarde complète : pgBackRest copie l’intégralité du contenu du cluster de base de données vers la sauvegarde. La première sauvegarde du cluster de base de données est toujours une sauvegarde complète. pgBackRest est toujours en mesure de restaurer directement une sauvegarde complète. La sauvegarde complète ne dépend d’aucun fichier en dehors d’elle-même pour assurer sa cohérence.

Sauvegarde différentielle : pgBackRest copie uniquement les fichiers du cluster de base de données modifiés depuis la dernière sauvegarde complète. Pour restaurer une sauvegarde différentielle, pgBackRest copie tous les fichiers de celle-ci ainsi que les fichiers inchangés requis de la sauvegarde complète précédente. Une sauvegarde différentielle occupe moins d’espace disque qu’une sauvegarde complète, mais elle et la sauvegarde complète doivent chacune être valides pour permettre la restauration.

Sauvegarde incrémentielle : pgBackRest copie uniquement les fichiers du cluster de base de données ayant changé depuis la dernière sauvegarde (qui peut être une autre sauvegarde incrémentielle, une sauvegarde différentielle ou une sauvegarde complète). Comme une sauvegarde incrémentielle ne comprend que les fichiers modifiés depuis la sauvegarde précédente, elle est généralement bien plus petite que les sauvegardes complètes ou différentielles. Comme pour la sauvegarde différentielle, la sauvegarde incrémentielle dépend d’autres sauvegardes pour être valide lors d’une restauration. Étant donné qu’une sauvegarde incrémentielle ne contient que les fichiers modifiés depuis la dernière sauvegarde, toutes les sauvegardes incrémentielles antérieures jusqu’à la dernière sauvegarde différentielle, la dernière sauvegarde différentielle et la dernière sauvegarde complète doivent être valides afin de pouvoir restaurer la sauvegarde incrémentielle. Si aucune sauvegarde différentielle n’existe, alors toutes les sauvegardes incrémentielles antérieures jusqu’à la dernière sauvegarde complète, qui doit exister, ainsi que la sauvegarde complète elle-même doivent être valides pour restaurer la sauvegarde incrémentielle.

restauration

Une restauration est l’opération de copie d’une sauvegarde sur un système où elle sera lancée en tant que cluster de base de données en cours d’exécution. Une restauration nécessite les fichiers de sauvegarde et un ou plusieurs segments WAL afin de fonctionner correctement.

Journaux d’écriture anticipée (WAL)

Le WAL est le mécanisme utilisé par PostgreSQL pour garantir qu’aucun changement validé n’est perdu. Les transactions sont écrites séquentiellement dans le WAL, et une transaction est considérée comme validée lorsque ces écritures sont écrites sur le disque. Par la suite, un processus en arrière-plan écrit les modifications dans les fichiers du cluster de base de données principal (également appelés heap). En cas de panne, le WAL est rejoué afin de rendre la base de données cohérente.

Les journaux d’écriture (WAL) sont conceptuellement infinis, mais en pratique ils sont divisés en fichiers individuels de 16 Mo appelés segments. Les segments WAL suivent la convention de nommage 0000000100000A1E000000FE, où les huit premiers chiffres hexadécimaux représentent la timeline et les seize chiffres suivants constituent le numéro de séquence logique (LSN).

Chiffrement

Le chiffrement est le processus de conversion des données dans un format illisible à moins qu’un mot de passe approprié (appelé également phrase secrète) ne soit fourni.

pgBackRest chiffrera le dépôt en fonction d’un mot de passe fourni par l’utilisateur, empêchant ainsi tout accès non autorisé aux données stockées dans le dépôt.


Mise à jour de pgBackRest

Mise à jour de pgBackRest de la version v2.x à la v2.y

La mise à niveau depuis la version v2.x vers la version v2.y est directe. Le format du dépôt n’a pas changé, aussi, pour la plupart des installations, il s’agit simplement d’installer les binaires de la nouvelle version. Il est également possible de revenir à une version antérieure si vous n’avez pas utilisé de fonctionnalités nouvelles non prises en charge par la version plus ancienne.

IMPORTANT :

Les versions locales et distantes de pgBackRest doivent correspondre exactement, elles doivent donc être mises à jour ensemble. En cas de désaccord, l’archivage des WAL et les sauvegardes ne fonctionneront pas jusqu’à ce que les versions soient synchronisées. Dans ce cas, l’erreur suivante sera signalée : [ProtocolError] expected value '2.x' for greeting key 'version' but got '2.y'.


Construction

Installer pgBackRest à partir d’un paquet est préférable à la compilation à partir des sources. Consultez Installation pour plus d’informations sur les paquets.

Lors de la compilation à partir des sources, il est préférable d’utiliser une machine de compilation plutôt que de compiler directement sur la production. La plupart des outils nécessaires à la compilation ne devraient généralement pas être installés en production. pgBackRest se compose d’un seul exécutable, ce qui facilite sa copie sur une nouvelle machine une fois compilé.

build ⇒ Télécharger la version 2.59.1 de pgBackRest vers le chemin /build

mkdir -p /build
curl -fsSL \
       https://github.com/pgbackrest/pgbackrest/releases/download/release%2F2.59.1/pgbackrest-2.59.1.tar.gz | \
       tar zx -C /build

build ⇒ Installer les dépendances de compilation

sudo yum install meson gcc postgresql14-devel openssl-devel libxml2-devel \
       lz4-devel libzstd-devel bzip2-devel libssh2-devel systemd-devel

build ⇒ Configurer et compiler pgBackRest

meson setup /build/pgbackrest /build/pgbackrest-2.59.1
ninja -C /build/pgbackrest

build ⇒ Exécuter éventuellement des tests de fumée pour vérifier que pgBackRest a été correctement construit

meson test -C /build/pgbackrest --suite smoke
ninja: Entering directory `/build/pgbackrest'
ninja: no work to do.
1/1 smoke OK               12.40s
Ok:                 1
       [filtered 6 lines of output]

Installation

Un nouvel hôte nommé pg-primary est créé pour contenir le cluster de démonstration et exécuter les exemples pgBackRest.

Installer pgBackRest à partir d’un paquet est préférable à la compilation à partir des sources. Lors de l’installation à partir d’un paquet, les autres instructions de cette section sont généralement inutiles, mais il se peut qu’un paquet omette de créer un répertoire ou applique des permissions incorrectes. Dans ce cas, il peut être nécessaire de créer manuellement les répertoires ou de mettre à jour les permissions.

Les paquets RHEL pour pgBackRest sont disponibles sur yum.PostgreSQL.org .

Si des paquets ne sont pas fournis pour votre distribution/version, vous pouvez compiler à partir des sources puis procéder à l’installation manuelle comme indiqué ici.

pg-primary ⇒ Installer les dépendances

sudo yum install postgresql-libs libssh2

pg-primary ⇒ Copier le binaire pgBackRest depuis l’hôte de compilation

sudo scp build:/build/pgbackrest/src/pgbackrest /usr/bin
sudo chmod 755 /usr/bin/pgbackrest

pgBackRest nécessite des répertoires pour les journaux et la configuration, ainsi qu’un fichier de configuration.

pg-primary ⇒ Créer le fichier de configuration et les répertoires pgBackRest

sudo mkdir -p -m 770 /var/log/pgbackrest
sudo chown postgres:postgres /var/log/pgbackrest
sudo mkdir -p /etc/pgbackrest
sudo mkdir -p /etc/pgbackrest/conf.d
sudo touch /etc/pgbackrest/pgbackrest.conf
sudo chmod 640 /etc/pgbackrest/pgbackrest.conf
sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf

pgBackRest doit maintenant être correctement installé, mais il est préférable de le vérifier. Si des dépendances ont été omises, une erreur sera générée lors de l’exécution de pgBackRest en ligne de commande.

pg-primary ⇒ Vérifiez que l’installation s’est déroulée correctement

sudo -u postgres pgbackrest
pgBackRest 2.59.1 - General help

Usage:
    pgbackrest [options] [command]

Commands:
    annotate        add or modify backup annotation
    archive-get     get a WAL segment from the archive
    archive-push    push a WAL segment to the archive
    backup          backup a database cluster
    check           check the configuration
    expire          expire backups that exceed retention
    help            get help
    info            retrieve information about backups
    repo-get        get a file from a repository
    repo-ls         list files in a repository
    restore         restore a database cluster
    server          pgBackRest server
    server-ping     ping pgBackRest server
    stanza-create   create the required stanza data
    stanza-delete   delete a stanza
    stanza-upgrade  upgrade a stanza
    start           allow pgBackRest processes to run
    stop            stop pgBackRest processes from running
    verify          verify contents of a repository
    version         get version

Use 'pgbackrest help [command]' for more information.

Démarrage rapide

La section Début rapide abordera la configuration basique de pgBackRest et de PostgreSQL, et présentera les commandes backup, restore et info.

Configurer un cluster de démonstration

La création du cluster de démonstration est facultative mais fortement recommandée, en particulier pour les nouveaux utilisateurs, car les commandes d’exemple du guide utilisateur font référence au cluster de démonstration ; les exemples supposent que le cluster de démonstration s’exécute sur le port par défaut (c’est-à-dire 5432). Le cluster ne sera pas lancé avant une section ultérieure, car il reste encore certaines configurations à effectuer.

pg-primary ⇒ Créer le cluster de démonstration

sudo -u postgres /usr/pgsql-14/bin/initdb \
       -D /var/lib/pgsql/14/data -k -A peer

Par défaut, RHEL inclut le jour de la semaine dans le nom du fichier de journalisation. Cela complique un peu le guide utilisateur, aussi le paramètre log_filename est-il défini sur une valeur constante.

pg-primary:/var/lib/pgsql/14/data/postgresql.conf ⇒ Définir log_filename

log_filename = 'postgresql.log'

Configurer une stanza de cluster

Une stanza est la configuration d’un cluster de base de données PostgreSQL qui définit son emplacement, la manière dont il sera sauvegardé, les options d’archivage, etc. La plupart des serveurs de base de données n’ont qu’un seul cluster PostgreSQL et donc une seule stanza, tandis que les serveurs de sauvegarde ont une stanza pour chaque cluster de base de données à sauvegarder.

Il est tentant de nommer la stanza en fonction du cluster principal, mais un nom plus pertinent décrit les bases de données contenues dans le cluster. Étant donné que le nom de la stanza sera utilisé pour le principal et toutes les répliques, il est préférable de choisir un nom qui décrit la fonction réelle du cluster, par exemple app ou dw, plutôt que le nom local du cluster, comme main ou prod.

Le nom « demo » décrit avec précision le but de ce cluster, ce qui en fait également un bon nom de stanza.

pgBackRest doit connaître l’emplacement du répertoire de données de base du cluster PostgreSQL. Le chemin peut être demandé directement à PostgreSQL, mais dans un scénario de récupération, le processus PostgreSQL ne sera pas disponible. Lors des sauvegardes, la valeur fournie à pgBackRest sera comparée au chemin sur lequel PostgreSQL est en cours d’exécution, et elles doivent être identiques, sinon la sauvegarde retournera une erreur. Assurez-vous que pg-path est exactement égal à la valeur data_directory rapportée par PostgreSQL.

Par défaut, RHEL stocke les clusters dans /var/lib/pgsql/[version]/data, ce qui facilite la détermination du chemin correct du répertoire de données.

Lors de la création du fichier /etc/pgbackrest/pgbackrest.conf, le propriétaire de la base de données (généralement postgres) doit être autorisé en lecture.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configure le répertoire de données du cluster PostgreSQL

[demo]

pg1-path=/var/lib/pgsql/14/data

Les fichiers de configuration de pgBackRest suivent une convention semblable à celle des fichiers INI sous Windows. Les sections sont indiquées par du texte entre crochets, et les paires clé/valeur sont contenues dans chaque section. Les lignes commençant par # sont ignorées et peuvent être utilisées comme commentaires, mais les commentaires en fin de ligne suivant une valeur sur la même ligne ne sont pas pris en charge. Les guillemets ne sont pas pris en charge, et les espaces sont supprimés des clés et des valeurs. Les sections seront fusionnées si elles apparaissent plus d’une fois.

Il existe plusieurs façons de charger les fichiers de configuration de pgBackRest :

  • config et config-include-path sont par défaut : le fichier de configuration par défaut sera chargé, s’il existe, et les fichiers *.conf dans le chemin d’inclusion de configuration par défaut seront ajoutés, s’ils existent.
  • config est spécifié : seul le fichier de configuration indiqué sera chargé et doit exister.
  • config-include-path est spécifié : les fichiers *.conf dans le chemin d’inclusion de configuration seront chargés et le chemin doit exister. Le fichier de configuration par défaut sera chargé s’il existe. Si l’on souhaite charger uniquement les fichiers dans le chemin d’inclusion de configuration spécifié, l’option --no-config peut également être passée.
  • config et config-include-path sont spécifiés : en utilisant les valeurs spécifiées par l’utilisateur, le fichier de configuration sera chargé et les fichiers *.conf dans le chemin d’inclusion de configuration seront ajoutés. Les fichiers doivent exister.
  • config-path est spécifié : ce paramètre remplacera le chemin de base pour l’emplacement par défaut du fichier de configuration et/ou le chemin de base du paramètre de chemin d’inclusion de configuration par défaut, sauf si l’option config et/ou config-include-path est explicitement définie.

Les fichiers sont concaténés comme s’ils formaient un seul grand fichier, et chaque fichier doit être valide individuellement. Cela signifie que les sections doivent être spécifiées dans chaque fichier là où elles sont nécessaires pour stocker une paire clé/valeur. L’ordre n’a pas d’importance, mais une priorité s’applique selon les sections. La priorité (de la plus élevée à la plus faible) est :

  • [stanza:command]
  • [stanza]
  • [global:command]
  • [global]

NOTE :

--config, --config-include-path et --config-path sont des options uniquement disponibles en ligne de commande.

pgBackRest peut également être configuré à l’aide de variables d’environnement (exemple ci-dessous) ; ces variables s’appliquent aux commandes telles que backup , restore et archive-push .

pg-primary ⇒ Configure log-path en utilisant l’environnement

sudo -u postgres bash -c ' \
       export PGBACKREST_LOG_PATH=/path/set/by/env && \
       pgbackrest --log-level-console=error help backup log-path'
pgBackRest 2.59.1 - 'backup' command - 'log-path' option help

Path where log files are stored.

The log path provides a location for pgBackRest to store log files. Note that
if log-level-file=off then no log path is required.
current: /path/set/by/env
default: /var/log/pgbackrest

Créer le dépôt

Le dépôt est l’emplacement où pgBackRest stocke les sauvegardes et les archives des segments WAL.

Il peut être difficile de prévoir à l’avance l’espace nécessaire. La meilleure approche consiste à effectuer quelques sauvegardes, puis à noter la taille des différents types de sauvegardes (pleines, incrémentielles, différentielles) et à mesurer la quantité de WAL générée par jour. Cela vous donnera une idée générale de l’espace requis, bien que les besoins évoluent probablement au fil du temps avec l’évolution de votre base de données.

Pour cette démonstration, le dépôt sera stocké sur le même hôte que le serveur PostgreSQL. Il s’agit de la configuration la plus simple et elle est utile dans les cas où un logiciel de sauvegarde traditionnel est utilisé pour sauvegarder l’hôte de la base de données.

pg-primary ⇒ Créer le dépôt pgBackRest

sudo mkdir -p /var/lib/pgbackrest
sudo chmod 750 /var/lib/pgbackrest
sudo chown postgres:postgres /var/lib/pgbackrest

Le chemin du dépôt doit être configuré afin que pgBackRest sache où le trouver.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez le chemin du dépôt pgBackRest

[demo]

pg1-path=/var/lib/pgsql/14/data



[global]

repo1-path=/var/lib/pgbackrest

Plusieurs dépôts peuvent également être configurés. Consultez Dépôts multiples pour plus de détails.

Configurer la sauvegarde archivée

La sauvegarde d’un cluster PostgreSQL en cours d’exécution nécessite que l’archivage du WAL soit activé. %p est le mécanisme utilisé par PostgreSQL pour spécifier l’emplacement du segment WAL à archiver. Notez qu’au moins un segment WAL sera créé pendant le processus de sauvegarde, même si aucune écriture explicite n’est effectuée sur le cluster.

pg-primary:/var/lib/pgsql/14/data/postgresql.conf ⇒ Configurez les paramètres d’archive

archive_command = 'pgbackrest --stanza=demo archive-push %p'

archive_mode = on

log_filename = 'postgresql.log'

Le cluster PostgreSQL doit être redémarré après avoir apporté ces modifications et avant d’effectuer une sauvegarde.

pg-primary ⇒ Redémarrer le cluster de démonstration

sudo systemctl restart postgresql-14.service

Le paramètre hot_standby est activé par défaut et doit rester ainsi sur chaque cluster. Un cluster peut être restauré ultérieurement en réplica, par exemple un principal reconstruit en réplica après une bascule, et un réplica n’acceptera pas de connexions en lecture seule sans ce paramètre.

Lorsqu’il est prévu qu’un segment WAL mette plus de 60 secondes (valeur par défaut) à atteindre le dépôt pgBackRest, l’option archive-timeout de pgBackRest doit être augmentée. Notez que cette option n’est pas identique à l’option archive_timeout de PostgreSQL, qui est utilisée pour forcer un basculement de segment WAL ; elle est utile pour les bases de données présentant des périodes prolongées d’inactivité. Pour plus d’informations sur l’option archive_timeout de PostgreSQL, consultez PostgreSQL Write Ahead Log .

La commande archive-push peut être configurée avec ses propres options. Par exemple, un niveau de compression plus faible peut être défini afin d’accélérer l’archivage sans affecter le niveau de compression utilisé pour les sauvegardes.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configurer archive-push pour utiliser un niveau de compression plus faible

[demo]

pg1-path=/var/lib/pgsql/14/data



[global]

repo1-path=/var/lib/pgbackrest



[global:archive-push]

compress-level=3

Cette configuration technique peut être utilisée pour toute commande et peut même cibler une stanza spécifique, par exemple demo:archive-push.

Configurer la rétention

pgBackRest expire les sauvegardes en fonction des options de rétention.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez la rétention à 2 sauvegardes complètes

[demo]

pg1-path=/var/lib/pgsql/14/data



[global]

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2



[global:archive-push]

compress-level=3

Plus d’informations sur la rétention sont disponibles dans la section Retention .

Configurer le chiffrement du dépôt

Le dépôt sera configuré avec un type de chiffrement et une clé afin de démontrer le chiffrement. Le chiffrement est toujours effectué côté client, même si le type de dépôt (par exemple S3 ou autre magasin d’objets) prend en charge le chiffrement.

Il est important d’utiliser une phrase secrète longue et aléatoire pour la clé de chiffrement. Une bonne manière de la générer consiste à exécuter : openssl rand -base64 48.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez le chiffrement du dépôt pgBackRest

[demo]

pg1-path=/var/lib/pgsql/14/data



[global]

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2



[global:archive-push]

compress-level=3

NOTE :

Les paramètres de chiffrement sont placés dans la section [global], ci-dessus, afin que la commande info puisse lire toutes les stanzas. Sans l’option stanza, la commande info ne lit les paramètres de chiffrement que dans la section [global], de sorte que les paramètres de chiffrement configurés par stanza nécessitent l’option stanza pour lire une stanza chiffrée.

Une fois que le dépôt a été configuré et que le stanza a été créé et vérifié, les paramètres de chiffrement du dépôt ne peuvent pas être modifiés.

Créer la stanza

La commande stanza-create doit être exécutée pour initialiser la stanza. Il est recommandé d’exécuter la commande check après stanza-create afin de vérifier que l’archivage et les sauvegardes sont correctement configurés.

pg-primary ⇒ Créer la stanza et vérifier la configuration

sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create
P00   INFO: stanza-create command begin 2.59.1: --exec-id=1187-8aaf6311 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/pgsql/14/data --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --stanza=demo
P00   INFO: stanza-create for stanza 'demo' on repo1
P00   INFO: stanza-create command end: completed successfully

Vérifier la configuration

La commande check vérifie que pgBackRest et le paramètre archive_command sont correctement configurés pour l’archivage et les sauvegardes du stanza spécifié. Elle tente de vérifier tous les dépôts et bases de données configurés pour l’hôte sur lequel la commande est exécutée. Elle détecte les mauvaises configurations, en particulier celles relatives à l’archivage, qui entraînent des sauvegardes incomplètes car des segments WAL requis n’ont pas atteint l’archive. La commande peut être exécutée sur l’hôte PostgreSQL ou sur l’hôte dépôt. Elle peut également être exécutée sur l’hôte de basculement, toutefois, comme les opérations pg_switch_xlog()/pg_switch_wal() ne peuvent pas être effectuées sur le basculement, la commande ne testera que la configuration du dépôt.

Notez que pg_create_restore_point('pgBackRest Archive Check') et pg_switch_xlog()/pg_switch_wal() sont appelés pour forcer PostgreSQL à archiver un segment WAL.

pg-primary ⇒ Vérifier la configuration

sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check
P00   INFO: check command begin 2.59.1: --exec-id=1220-8e2ca9fb --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/pgsql/14/data --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --stanza=demo
P00   INFO: check repo1 configuration (primary)
P00   INFO: check repo1 archive for WAL (primary)
P00   INFO: WAL segment 000000010000000000000001 successfully archived to '/var/lib/pgbackrest/archive/demo/14-1/0000000100000000/000000010000000000000001-4e795a8d15743cd35f6da1a12f24d637b4cbccb3.gz' on repo1
P00   INFO: check command end: completed successfully

Optimisation des performances

pgBackRest dispose de plusieurs options de performance qui ne sont pas activées par défaut afin de préserver la compatibilité descendante du dépôt. Toutefois, lors de la création d’un nouveau dépôt, les options suivantes sont recommandées. Elles peuvent également être utilisées sur un dépôt existant, à condition de noter que les versions plus anciennes de pgBackRest ne seront pas en mesure de lire le dépôt. Cette incompatibilité dépend de la date d’introduction de la fonctionnalité, comme indiqué dans la liste ci-dessous.

  • compress-type - détermine l’algorithme de compression utilisé par les commandes backup et archive-push. La valeur par défaut est gz (Gzip), mais zst (Zstandard) est recommandé car il est bien plus rapide et offre une compression similaire à gz. zst est pris en charge par l’option compress-type depuis v2.27 . Voir Type de compression pour plus de détails.
  • repo-bundle - combine les petits fichiers lors de la sauvegarde afin de économiser de l’espace et d’améliorer la vitesse des commandes backup et restore, notamment sur des magasins d’objets tels que S3. L’option repo-bundle a été introduite dans v2.39 . Voir Regroupement de fichiers pour plus de détails.
  • repo-block - stocke uniquement les parties des fichiers qui ont changé plutôt que le fichier entier lors des diff/incr backup. Cela permet d’économiser de l’espace et d’accroître la vitesse de la backup. L’option repo-block a été introduite dans v2.46 , mais une version d’au moins v2.52.1 est recommandée. Voir Incrémentation par bloc pour plus de détails.

D’autres options de performance ne sont pas activées par défaut car elles nécessitent une configuration supplémentaire ou car la valeur par défaut est sûre (mais non optimale). Ces options sont disponibles dans toutes les versions v2 de pgBackRest.

  • process-max - détermine le nombre de processus utilisés pour les commandes. La valeur par défaut est 1, qui est presque jamais appropriée. Chaque commande utilise process-max de manière différente ; reportez-vous à la documentation de chaque commande pour plus de détails sur son utilisation.
  • archive-async - archive les fichiers WAL dans le dépôt par lots, ce qui accroît considérablement la vitesse d’archivage. Il n’est pas activé par défaut car il nécessite la création d’un chemin d’épissage. Consultez Archivage asynchrone pour plus de détails.
  • backup-standby - effectue la sauvegarde sur une instance secondaire plutôt que sur l’instance principale afin de réduire la charge sur cette dernière. Il n’est pas activé par défaut car il nécessite une configuration supplémentaire et la présence d’une ou plusieurs instances secondaires. Consultez Sauvegarde depuis une instance secondaire pour plus de détails.

Effectuer une sauvegarde

Par défaut, pgBackRest attend la prochaine vérification planifiée avant de démarrer une sauvegarde. Selon les paramètres checkpoint_timeout et checkpoint_segments dans PostgreSQL, il peut s’écouler assez de temps avant qu’une vérification ne soit terminée et que la sauvegarde puisse commencer. En général, il est préférable de définir start-fast=y afin que la sauvegarde démarre immédiatement. Cela force une vérification, mais comme les sauvegardes sont généralement exécutées une fois par jour, une vérification supplémentaire n’a pas d’impact notable sur les performances. Toutefois, sur des clusters très chargés, il peut être préférable de passer --start-fast en ligne de commande au besoin.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configure la reprise rapide de la sauvegarde

[demo]

pg1-path=/var/lib/pgsql/14/data



[global]

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y



[global:archive-push]

compress-level=3

Pour effectuer une sauvegarde du cluster PostgreSQL, exécutez pgBackRest avec la commande backup.

pg-primary ⇒ Effectuer une sauvegarde du cluster de démonstration

sudo -u postgres pgbackrest --stanza=demo \
       --log-level-console=info backup
P00   INFO: backup command begin 2.59.1: --exec-id=1313-653dd239 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/pgsql/14/data --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --start-fast
P00   WARN: no prior backup exists, incr backup has been changed to full
P00   INFO: execute backup start: backup begins after the requested immediate checkpoint completes
P00   INFO: backup start archive = 000000010000000000000002, lsn = 0/2000028
       [filtered 3 lines of output]
P00   INFO: check archive for segment(s) 000000010000000000000002:000000010000000000000003
P00   INFO: new backup label = 20260817-044340F
P00   INFO: full backup size = 25.2MB, file total = 951
P00   INFO: backup command end: completed successfully
P00   INFO: expire command begin 2.59.1: --exec-id=1313-653dd239 --log-level-console=info --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo

Par défaut, pgBackRest tente d’exécuter une sauvegarde incrémentielle. Toutefois, une sauvegarde incrémentielle doit être basée sur une sauvegarde complète, et comme aucune sauvegarde complète n’existait, pgBackRest a exécuté une sauvegarde complète à la place.

L’option type peut être utilisée pour spécifier une sauvegarde complète ou une sauvegarde différentielle.

pg-primary ⇒ Sauvegarde différentielle du cluster demo

sudo -u postgres pgbackrest --stanza=demo --type=diff \
       --log-level-console=info backup
       [filtered 7 lines of output]
P00   INFO: check archive for segment(s) 000000010000000000000004:000000010000000000000005
P00   INFO: new backup label = 20260817-044340F_20260817-044344D
P00   INFO: diff backup size = 9.2KB, file total = 951
P00   INFO: backup command end: completed successfully
P00   INFO: expire command begin 2.59.1: --exec-id=1384-482147d8 --log-level-console=info --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo

Cette fois-ci, aucun avertissement n’a été affiché car une sauvegarde complète existait déjà. Bien qu’une sauvegarde incrémentielle puisse être basée sur une sauvegarde complète ou une sauvegarde différentielle, une sauvegarde différentielle doit obligatoirement être basée sur une sauvegarde complète. Une sauvegarde complète peut être effectuée en exécutant la commande backup avec --type=full.

Pendant une sauvegarde en ligne, pgBackRest attend que les segments WAL nécessaires à la cohérence de la sauvegarde soient archivés. Cette durée d’attente est régulée par l’option pgBackRest archive-timeout qui vaut 60 secondes par défaut. Si l’archivage d’un segment individuel est connu pour prendre plus de temps, cette option doit être augmentée.

Planifier une sauvegarde

Les sauvegardes peuvent être planifiées à l’aide d’utilitaires tels que cron.

Dans l’exemple suivant, deux tâches cron sont configurées pour s’exécuter ; les sauvegardes complètes sont planifiées à 6 h 30 tous les dimanches, tandis que les sauvegardes différentielles sont planifiées à 6 h 30 du lundi au samedi. Si ce fichier crontab est installé pour la première fois en milieu de semaine, pgBackRest exécutera une sauvegarde complète lors de la première exécution de la tâche différentielle, suivie d’une sauvegarde différentielle le lendemain.

#m h   dom mon dow   command
30 06  *   *   0     pgbackrest --type=full --stanza=demo backup
30 06  *   *   1-6   pgbackrest --type=diff --stanza=demo backup

Une fois les sauvegardes planifiées, il est important de configurer la rétention afin que les sauvegardes soient expirées selon un calendrier régulier, voir Retention .

Informations de sauvegarde

Utilisez la commande info pour obtenir des informations sur les sauvegardes.

pg-primary ⇒ Obtenir les informations sur le cluster de démonstration

sudo -u postgres pgbackrest info
stanza: demo
    status: ok
    cipher: aes-256-cbc

    db (current)
        wal archive min/max (14): 000000010000000000000001/000000010000000000000005
        full backup: 20260817-044340F
            timestamp start/stop: 2026-08-17 04:43:40+00 / 2026-08-17 04:43:43+00
            wal start/stop: 000000010000000000000002 / 000000010000000000000003
            database size: 25.2MB, database backup size: 25.2MB
            repo1: backup set size: 3.2MB, backup size: 3.2MB
        diff backup: 20260817-044340F_20260817-044344D
            timestamp start/stop: 2026-08-17 04:43:44+00 / 2026-08-17 04:43:45+00
            wal start/stop: 000000010000000000000004 / 000000010000000000000005
            database size: 25.2MB, database backup size: 9.2KB
            repo1: backup set size: 3.2MB, backup size: 864B
            backup reference total: 1 full

La commande info s’applique à une seule stanza ou à toutes les stanzas. La sortie texte est la valeur par défaut et fournit un résumé lisible par l’humain des sauvegardes pour la ou les stanzas demandées. Ce format peut évoluer à tout moment dans une version.

Pour une sortie lisible par machine, utilisez --output=json. La sortie JSON contient bien plus d’informations que la sortie texte et est maintenue stable, sauf en cas de bug.

Pour accélérer l’exécution, restreindre la sortie à l’information de progression uniquement en spécifiant --detail-level=progress. Notez que cela ignore toutes les vérifications sauf la disponibilité de la stanza.

Chaque stanza dispose d’une section distincte et il est possible de limiter la sortie à une seule stanza à l’aide de l’option --stanza. La stanza ‘status’ indique brièvement l’état de santé de la stanza. Si cette valeur est ‘ok’, pgBackRest fonctionne normalement. Si plusieurs dépôts sont configurés, une valeur de ‘mixed’ indique que la stanza n’est pas dans un état sain sur un ou plusieurs dépôts ; dans ce cas, l’état de la stanza sera détaillé par dépôt. Dans les cas où une erreur s’est produite sur un dépôt sans correspondre à un code d’erreur connu, un code d’erreur de ‘other’ sera utilisé et les détails complets de l’erreur seront fournis. La ‘wal archive min/max’ affiche le WAL minimum et maximum actuellement stockés dans l’archive et, dans le cas de plusieurs dépôts, sera rapportée sur l’ensemble des dépôts sauf si l’option --repo est définie. Notez qu’il peut y avoir des lacunes dues aux politiques de rétention des archives ou à d’autres raisons.

Les messages ‘backup/expire running’ et/ou ‘restore running’ s’affichent aux côtés des informations ‘status’ si l’une quelconque de ces commandes est actuellement en cours d’exécution sur l’hôte. La progression par répertoire sera également indiquée dans la sortie texte, et un tableau ‘repo’ sera inclus dans la sortie JSON.

Les sauvegardes sont affichées du plus ancien au plus récent. La sauvegarde la plus ancienne sera toujours une sauvegarde complète (indiquée par un F à la fin de l’étiquette), mais la sauvegarde la plus récente peut être complète, différentielle (se terminant par D) ou incrémentielle (se terminant par I).

Le ‘timestamp start/stop’ définit la période pendant laquelle la sauvegarde a été exécutée. Le ‘timestamp stop’ peut être utilisé pour déterminer la sauvegarde à utiliser lors d’une restauration à un instant donné. Plus d’informations sur la restauration à un instant donné sont disponibles dans la section Restauration à un instant donné .

Le ‘wal start/stop’ définit la plage de WAL nécessaire pour rendre la base de données cohérente lors d’une restauration. La commande backup s’assurera que cette plage de WAL se trouve dans l’archive avant de se terminer.

La ‘database size’ correspond à la taille totale non compressée de la base de données, tandis que la ‘database backup size’ représente la quantité de données à sauvegarder réellement ; elles sont identiques pour les sauvegardes complètes.

Le ‘repo’ indique dans quel dépôt se trouve cette sauvegarde. Le ‘backup set size’ inclut tous les fichiers de cette sauvegarde ainsi que toutes les sauvegardes référencées dans le dépôt nécessaires à la restauration de la base de données à partir de cette sauvegarde, tandis que le ‘backup size’ inclut uniquement les fichiers de cette sauvegarde (ceux-ci seront également identiques pour les sauvegardes complètes). Les tailles des dépôts reflètent les tailles des fichiers compressés si la compression est activée dans pgBackRest.

Le ‘backup reference total’ résume la liste des sauvegardes supplémentaires nécessaires pour effectuer la restauration de cette sauvegarde. Utilisez l’option --set pour afficher la liste complète de référence.

Restaurer une sauvegarde

Les sauvegardes peuvent vous protéger contre plusieurs scénarios de catastrophe, dont les plus fréquents sont les pannes matérielles et la corruption des données. La méthode la plus simple pour simuler une corruption de données consiste à supprimer un fichier important du cluster PostgreSQL.

pg-primary ⇒ Arrêtez le cluster de démonstration et supprimez le fichier pg_control

sudo systemctl stop postgresql-14.service
sudo -u postgres rm /var/lib/pgsql/14/data/global/pg_control

Le démarrage du cluster sans ce fichier important entraînera une erreur.

pg-primary ⇒ Tentative de démarrage du cluster démo corrompu

sudo systemctl start postgresql-14.service
sudo systemctl status postgresql-14.service
postgresql-14.service - PostgreSQL 14 database server
    Loaded: loaded (/usr/lib/systemd/system/postgresql-14.service, disabled)
    Active: failed (failed)

Pour restaurer une sauvegarde du cluster PostgreSQL, exécutez pgBackRest avec la commande restore. Le cluster doit être arrêté (dans ce cas, il est déjà arrêté) et tous les fichiers doivent être supprimés du répertoire de données PostgreSQL.

pg-primary ⇒ Supprimer les anciens fichiers du cluster de démonstration

sudo -u postgres find /var/lib/pgsql/14/data -mindepth 1 -delete

pg-primary ⇒ Effectuer la restauration du cluster de démonstration et démarrer PostgreSQL

sudo -u postgres pgbackrest --stanza=demo restore
sudo systemctl start postgresql-14.service

Cette fois, le cluster a démarré correctement car la restauration a remplacé le fichier pg_control manquant.

Plus d’informations sur la commande restore sont disponibles dans la section Restauration .


Surveillance

La surveillance est une composante essentielle de tout système de production. De nombreuses outils sont disponibles, et pgBackRest peut être surveillé sur l’un d’entre eux avec un peu d’effort.

pgBackRest peut produire des informations sur le dépôt au format JSON, qui inclut la liste de toutes les sauvegardes pour chaque stanza ainsi que les informations sur l’archive WAL.

En PostgreSQL

La commande PostgreSQL COPY permet de charger les informations de pgBackRest dans une table. L’exemple suivant encapsule cette logique dans une fonction pouvant être utilisée pour effectuer des requêtes en temps réel.

pg-primary ⇒ Charger la fonction d’information pgBackRest pour PostgreSQL

sudo -u postgres cat \
       /var/lib/pgsql/pgbackrest/doc/example/pgsql-pgbackrest-info.sql
-- An example of monitoring pgBackRest from within PostgreSQL
--
-- Use copy to export data from the pgBackRest info command into the jsonb
-- type so it can be queried directly by PostgreSQL.

-- Create monitor schema
create schema monitor;

-- Get pgBackRest info in JSON format
create function monitor.pgbackrest_info()
    returns jsonb AS $$
declare
    data jsonb;
begin
    -- Create a temp table to hold the JSON data
    create temp table temp_pgbackrest_data (data text);

    -- Copy data into the table directly from the pgBackRest info command
    copy temp_pgbackrest_data (data)
        from program
            'pgbackrest --output=json info' (format text);

    select replace(temp_pgbackrest_data.data, E'\n', '\n')::jsonb
      into data
      from temp_pgbackrest_data;

    drop table temp_pgbackrest_data;

    return data;
end $$ language plpgsql;
sudo -u postgres psql -f \
       /var/lib/pgsql/pgbackrest/doc/example/pgsql-pgbackrest-info.sql

À présent, la fonction monitor.pgbackrest_info() peut être utilisée pour déterminer l’heure de la dernière sauvegarde réussie et le WAL archivé pour une stanza.

pg-primary ⇒ Interroger l’heure de la dernière sauvegarde réussie et des journaux WAL archivés

sudo -u postgres cat \
       /var/lib/pgsql/pgbackrest/doc/example/pgsql-pgbackrest-query.sql
-- Get last successful backup for each stanza
--
-- Requires the monitor.pgbackrest_info function.
with stanza as
(
    select data->'name' as name,
           data->'backup'->(
               jsonb_array_length(data->'backup') - 1) as last_backup,
           data->'archive'->(
               jsonb_array_length(data->'archive') - 1) as current_archive
      from jsonb_array_elements(monitor.pgbackrest_info()) as data
)
select name,
       to_timestamp(
           (last_backup->'timestamp'->>'stop')::numeric) as last_successful_backup,
       current_archive->>'max' as last_archived_wal
  from stanza;
sudo -u postgres psql -f \
       /var/lib/pgsql/pgbackrest/doc/example/pgsql-pgbackrest-query.sql
  name  | last_successful_backup |    last_archived_wal
--------+------------------------+--------------------------
 "demo" | 2026-08-17 04:43:45+00 | 000000010000000000000005
(1 row)

sauvegarde

Lorsque plusieurs dépôts sont configurés, pgBackRest effectuera la sauvegarde vers le dépôt de priorité la plus élevée (par exemple repo1) sauf si l’option --repo est spécifiée.

pgBackRest ne dispose pas de planificateur intégré, il est donc préférable de l’exécuter depuis cron ou un autre mécanisme de planification.

Consultez Effectuer une sauvegarde pour plus de détails et d’exemples.

Regroupement de fichiers

Regrouper les fichiers dans le dépôt permet de gagner du temps lors de la sauvegarde et de libérer de l’espace dans le dépôt. Cet avantage est particulièrement marqué lorsque le dépôt est stocké sur un magasin d’objets comme S3 ou sur des systèmes de fichiers à grandes tailles de bloc. Le temps de création par fichier est plus élevé sur les magasins d’objets, et des fichiers très petits peuvent coûter autant à stocker qu’un fichier plus volumineux.

La fonctionnalité de regroupement de fichiers est activée avec l’option repo-bundle.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configure repo1-bundle

[demo]

pg1-path=/var/lib/pgsql/14/data



[global]

repo1-bundle=y

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y



[global:archive-push]

compress-level=3

Une sauvegarde complète sans regroupement de fichiers comportera plus de 1000 fichiers dans le chemin de sauvegarde, mais avec le regroupement, le nombre total de fichiers est fortement réduit. Un avantage supplémentaire est que les fichiers de taille nulle ne sont pas stockés (sauf dans le manifeste), contrairement à une sauvegarde normale où chaque fichier de taille nulle est stocké individuellement.

pg-primary ⇒ Effectuer une sauvegarde complète

sudo -u postgres pgbackrest --stanza=demo --type=full backup

pg-primary ⇒ Vérifier le total des fichiers

sudo -u postgres find /var/lib/pgbackrest/backup/demo/latest/ -type f | wc -l
5

Les options repo-bundle-size et repo-bundle-limit peuvent être utilisées pour le réglage, bien que les valeurs par défaut soient optimales dans la plupart des cas.

Bien que le regroupement de fichiers soit généralement plus efficace, le désavantage réside dans la difficulté d’accès manuel aux fichiers depuis le dépôt. Il peut ne pas être adapté aux stockages à déduplication, car chaque sauvegarde complète organise les fichiers dans les paquets de manière différente. Enfin, les paquets de fichiers ne peuvent pas être repris, veillez donc à ne pas définir repo-bundle-limit trop élevé.

Incrémentation par bloc

Les sauvegardes incrémentielles par bloc économisent de l’espace en ne stockant que les parties d’un fichier modifiées depuis la sauvegarde précédente, plutôt que le fichier entier.

La fonctionnalité de sauvegarde incrémentielle par bloc est activée avec l’option repo-block et fonctionne de manière optimale lorsqu’elle est activée pour toutes les types de sauvegarde. Le regroupement des fichiers doit également être activé.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configure repo1-block

[demo]

pg1-path=/var/lib/pgsql/14/data



[global]

repo1-block=y

repo1-bundle=y

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y



[global:archive-push]

compress-level=3

Annotations de sauvegarde

Les utilisateurs peuvent attacher des paires clé/valeur explicatives à la sauvegarde. Cette option peut être utilisée plusieurs fois pour attacher plusieurs annotations.

pg-primary ⇒ Effectuer une sauvegarde complète avec annotations

sudo -u postgres pgbackrest --stanza=demo --annotation=source="demo backup" \
       --annotation=key=value --type=full backup

Les annotations sont produites par la sortie texte de la commande info lorsque une sauvegarde est spécifiée avec --set, et apparaissent toujours dans la sortie JSON.

pg-primary ⇒ Obtenir les informations sur le cluster de démonstration

sudo -u postgres pgbackrest --stanza=demo --set=20260817-044358F info
stanza: demo
    status: ok
    cipher: aes-256-cbc

    db (current)
        wal archive min/max (14): 000000020000000000000007/000000020000000000000009

        full backup: 20260817-044358F
            timestamp start/stop: 2026-08-17 04:43:58+00 / 2026-08-17 04:44:00+00
            wal start/stop: 000000020000000000000008 / 000000020000000000000009
            lsn start/stop: 0/8000028 / 0/9000050
            database size: 25.2MB, database backup size: 25.2MB
            repo1: backup size: 3.2MB
            database list: postgres (13755)
            annotation(s)
                key: value
                source: demo backup

Les annotations incluses avec la commande backup peuvent être ajoutées, modifiées ou supprimées ultérieurement à l’aide de la commande annotate.

pg-primary ⇒ Modifier les annotations de sauvegarde

sudo -u postgres pgbackrest --stanza=demo --set=20260817-044358F \
       --annotation=key= --annotation=new_key=new_value annotate
sudo -u postgres pgbackrest --stanza=demo --set=20260817-044358F info
stanza: demo
    status: ok
    cipher: aes-256-cbc

    db (current)
        wal archive min/max (14): 000000020000000000000007/000000020000000000000009

        full backup: 20260817-044358F
            timestamp start/stop: 2026-08-17 04:43:58+00 / 2026-08-17 04:44:00+00
            wal start/stop: 000000020000000000000008 / 000000020000000000000009
            lsn start/stop: 0/8000028 / 0/9000050
            database size: 25.2MB, database backup size: 25.2MB
            repo1: backup size: 3.2MB
            database list: postgres (13755)
            annotation(s)
                new_key: new_value
                source: demo backup

rétention

En général, il est préférable de conserver autant de sauvegardes que possible afin de disposer d’une fenêtre plus étendue pour la restauration à un instant donné Restauration à un instant donné , mais des contraintes pratiques telles que l’espace disque doivent également être prises en compte. Les options de rétention suppriment automatiquement les sauvegardes anciennes une fois qu’elles ne sont plus nécessaires.

pgBackRest effectue la rotation des sauvegardes complètes selon le type de rétention, qui peut être défini par un nombre ou une période de temps. Lorsqu’un nombre est spécifié, l’expiration n’est pas liée à la date de création des sauvegardes, mais au nombre de sauvegardes à conserver. Les sauvegardes différentielles sont basées sur un nombre, mais sont toujours expirées lorsque la sauvegarde complète dont elles dépendent l’est. Les sauvegardes incrémentielles ne sont pas expirées indépendamment par rétention — elles sont toujours expirées en même temps que leur sauvegarde complète ou différentielle associée. Pour plus de détails et des exemples, reportez-vous aux sections Rétention des sauvegardes complètes et Rétention des sauvegardes différentielles .

L’archive WAL est conservée par défaut pour les sauvegardes n’ayant pas expiré, mais, bien que non recommandé, ce délai peut être modifié par dépôt à l’aide de l’option retention-archive. Voir la section Archive Retention pour les détails et exemples.

La commande expire s’exécute automatiquement après chaque sauvegarde réussie et peut également être exécutée par l’utilisateur. Lorsqu’elle est exécutée par l’utilisateur, l’expiration s’effectue selon les paramètres de rétention définis pour chaque dépôt configuré. Si l’option --repo est fournie, l’expiration s’applique uniquement au dépôt spécifié. L’expiration peut également être limitée par l’utilisateur à un jeu de sauvegarde spécifique à l’aide de l’option --set, et, sauf si l’option --repo est spécifiée, tous les dépôts seront recherchés et tous ceux correspondant aux critères seront supprimés. Il convient de noter que la planification de rétention des archives sera vérifiée et appliquée chaque fois que la commande expire est exécutée.

Rétention des sauvegardes complètes

L’option repo1-retention-full-type détermine la manière dont l’option repo1-retention-full est interprétée : soit comme le nombre de sauvegardes complètes à conserver, soit comme le nombre de jours pendant lesquels conserver les sauvegardes complètes. Une nouvelle sauvegarde doit être terminée avant qu’une expiration ne puisse se produire — cela signifie que si repo1-retention-full-type=count et repo1-retention-full=2, alors trois sauvegardes complètes seront conservées avant que la plus ancienne ne soit supprimée, ou que si repo1-retention-full-type=time et repo1-retention-full=20, alors une sauvegarde complète d’au moins 20 jours d’âge doit exister avant qu’une expiration ne puisse avoir lieu.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configure repo1-retention-full

[demo]

pg1-path=/var/lib/pgsql/14/data



[global]

repo1-block=y

repo1-bundle=y

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y



[global:archive-push]

compress-level=3

Sauvegarde repo1-retention-full=2 mais actuellement, il n’existe qu’une seule sauvegarde complète, donc la prochaine sauvegarde complète à exécuter n’expirera aucune sauvegarde complète.

pg-primary ⇒ Effectuer une sauvegarde complète

sudo -u postgres pgbackrest --stanza=demo --type=full \
       --log-level-console=detail backup
       [filtered 963 lines of output]
P00   INFO: repo1: remove expired backup 20260817-044356F
P00 DETAIL: repo1: 14-1 archive retention on backup 20260817-044358F, start = 000000020000000000000008
P00   INFO: repo1: 14-1 remove archive, start = 000000020000000000000007, stop = 000000020000000000000007
P00   INFO: expire command end: completed successfully

L’archive est expirée car des segments WAL ont été générés avant la sauvegarde la plus ancienne. Ces segments ne sont pas utiles pour la récupération — seuls les segments WAL générés après une sauvegarde peuvent être utilisés pour récupérer cette sauvegarde.

pg-primary ⇒ Effectuer une sauvegarde complète

sudo -u postgres pgbackrest --stanza=demo --type=full \
       --log-level-console=info backup
       [filtered 11 lines of output]
P00   INFO: repo1: expire full backup 20260817-044358F
P00   INFO: repo1: remove expired backup 20260817-044358F
P00   INFO: repo1: 14-1 remove archive, start = 000000020000000000000008, stop = 000000020000000000000009
P00   INFO: expire command end: completed successfully

La sauvegarde complète 20260817-044340F a expiré et la rétention des archives est basée sur 20260817-044401F, qui est désormais la sauvegarde complète la plus ancienne.

Rétention des sauvegardes différentielles

Définissez repo1-retention-diff sur le nombre de sauvegardes différentielles requises. Les sauvegardes différentielles ne dépendent que de la dernière sauvegarde complète, il est donc possible de créer un ensemble « en rouleau » de sauvegardes différentielles pour la dernière journée ou plus. Cela permet des restaurations rapides à des points récents dans le temps tout en réduisant la consommation globale d’espace.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configure repo1-retention-diff

[demo]

pg1-path=/var/lib/pgsql/14/data



[global]

repo1-block=y

repo1-bundle=y

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-diff=1

repo1-retention-full=2

start-fast=y



[global:archive-push]

compress-level=3

Avec repo1-retention-diff=1, deux sauvegardes différentielles doivent être effectuées avant que l’une d’elles n’expire. Une sauvegarde incrémentielle est ajoutée pour illustrer l’expiration incrémentielle, qui dépend ici de l’expiration de la sauvegarde différentielle.

pg-primary ⇒ Effectuer des sauvegardes différentielles et incrémentielles

sudo -u postgres pgbackrest --stanza=demo --type=diff backup
sudo -u postgres pgbackrest --stanza=demo --type=incr backup

Effectuer maintenant une sauvegarde différentielle expire les sauvegardes différentielles et incrémentielles précédentes, ne laissant ainsi qu’une seule sauvegarde différentielle.

pg-primary ⇒ Effectuer une sauvegarde différentielle

sudo -u postgres pgbackrest --stanza=demo --type=diff \
       --log-level-console=info backup
       [filtered 10 lines of output]
P00   INFO: backup command end: completed successfully
P00   INFO: expire command begin 2.59.1: --exec-id=2616-f4c946a1 --log-level-console=info --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-diff=1 --repo1-retention-full=2 --stanza=demo
P00   INFO: repo1: expire diff backup set 20260817-044403F_20260817-044405D, 20260817-044403F_20260817-044406I
P00   INFO: repo1: remove expired backup 20260817-044403F_20260817-044406I
P00   INFO: repo1: remove expired backup 20260817-044403F_20260817-044405D
P00   INFO: expire command end: completed successfully

Rétention des archives

Bien que pgBackRest supprime automatiquement les segments WAL archivés lors de l’expiration des sauvegardes (le comportement par défaut expire les WAL des sauvegardes complètes en fonction de l’option repo1-retention-full), il peut être utile d’expirer l’archive de manière plus agressive afin de libérer de l’espace disque. Notez que les sauvegardes complètes sont traitées comme des sauvegardes différentielles pour l’application de la rétention des archives différentielles.

L’expiration de l’archive ne supprimera jamais les segments WAL nécessaires à la cohérence d’une sauvegarde. Toutefois, comme la récupération à un point donné (PITR) ne fonctionne qu’avec un flux WAL continu, une attention particulière doit être portée lors de l’expiration agressive de l’archive en dehors du processus normal d’expiration des sauvegardes. Pour déterminer quels éléments seront supprimés sans effectuer réellement l’expiration, l’option dry-run peut être fournie en ligne de commande avec la commande expire.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configure repo1-retention-diff

[demo]

pg1-path=/var/lib/pgsql/14/data



[global]

repo1-block=y

repo1-bundle=y

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-diff=2

repo1-retention-full=2

start-fast=y



[global:archive-push]

compress-level=3

pg-primary ⇒ Effectuer une sauvegarde différentielle

sudo -u postgres pgbackrest --stanza=demo --type=diff \
       --log-level-console=info backup
       [filtered 6 lines of output]
P00   INFO: backup stop archive = 000000020000000000000017, lsn = 0/17000050
P00   INFO: check archive for segment(s) 000000020000000000000016:000000020000000000000017
P00   INFO: new backup label = 20260817-044403F_20260817-044409D
P00   INFO: diff backup size = 11.5KB, file total = 951
P00   INFO: backup command end: completed successfully
       [filtered 2 lines of output]

pg-primary ⇒ Expire archive

sudo -u postgres pgbackrest --stanza=demo --log-level-console=detail \
       --repo1-retention-archive-type=diff --repo1-retention-archive=1 expire
P00   INFO: expire command begin 2.59.1: --exec-id=2851-7355d46a --log-level-console=detail --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-archive=1 --repo1-retention-archive-type=diff --repo1-retention-diff=2 --repo1-retention-full=2 --stanza=demo
P00 DETAIL: repo1: 14-1 archive retention on backup 20260817-044401F, start = 00000002000000000000000A, stop = 00000002000000000000000B
P00 DETAIL: repo1: 14-1 archive retention on backup 20260817-044403F, start = 00000002000000000000000C, stop = 00000002000000000000000D
P00 DETAIL: repo1: 14-1 archive retention on backup 20260817-044403F_20260817-044407D, start = 000000020000000000000012, stop = 000000020000000000000013
P00 DETAIL: repo1: 14-1 archive retention on backup 20260817-044403F_20260817-044409D, start = 000000020000000000000016
P00   INFO: repo1: 14-1 remove archive, start = 00000002000000000000000E, stop = 000000020000000000000011
P00   INFO: repo1: 14-1 remove archive, start = 000000020000000000000014, stop = 000000020000000000000015
P00   INFO: expire command end: completed successfully

La sauvegarde différentielle 20260817-044403F_20260817-044407D contient des segments WAL qui doivent être conservés pour assurer la cohérence des sauvegardes plus anciennes, même si elles ne peuvent plus être restaurées ultérieurement avec une récupération à un point précis (PITR). Les segments WAL générés après 20260817-044403F_20260817-044407D mais avant 20260817-044403F_20260817-044409D sont supprimés. Les segments WAL générés après la nouvelle sauvegarde 20260817-044403F_20260817-044409D sont conservés et peuvent être utilisés pour une récupération à un point précis (PITR).

Étant donné que les sauvegardes complètes sont considérées comme des sauvegardes différentielles afin de déterminer la rétention des archives différentielles, si une sauvegarde complète est désormais effectuée avec les mêmes paramètres, seule l’archive correspondante à cette sauvegarde complète est conservée pour la récupération à un instant donné.


restauration

La commande de restauration sélectionne automatiquement la dernière sauvegarde du premier dépôt où des sauvegardes existent (voir Démarrage rapide - Restaurer une sauvegarde ). L’ordre dans lequel les dépôts sont vérifiés est déterminé par le paramètre pgbackrest.conf (par exemple, repo1 sera vérifié avant repo2). Pour sélectionner un dépôt spécifique, l’option --repo peut être utilisée (par exemple, --repo=1). L’option --set peut être utilisée si une sauvegarde autre que la plus récente est souhaitée.

Lorsqu’une restauration à un instant donné de --type=time ou --type=lsn est spécifiée, le temps cible ou le numéro LSN cible doit être précisé à l’aide de l’option --target. Si aucune sauvegarde n’est spécifiée via l’option --set, les dépôts configurés seront examinés, dans l’ordre, à la recherche d’une sauvegarde contenant le temps ou le numéro LSN demandés. Si aucune sauvegarde correspondante n’est trouvée, la dernière sauvegarde du premier dépôt contenant des sauvegardes sera utilisée pour --type=time, tandis qu’aucune sauvegarde ne sera sélectionnée pour --type=lsn. Pour les autres types de restauration à un instant donné, par exemple xid, l’option --set doit être fournie si le temps cible est antérieur à la dernière sauvegarde. Voir Restauration à un instant donné pour plus de détails et d’exemples.

Les slots de réplication ne sont pas inclus, conformément à la recommandation de PostgreSQL. Consultez Sauvegarde du répertoire de données dans la documentation PostgreSQL pour plus d’informations.

Les sections suivantes présentent des fonctionnalités supplémentaires de la commande restore.

Propriétaire du fichier

Si un restore est exécuté en tant qu’utilisateur non privilégié (scénario typique), tous les fichiers restaurés appartiendront à l’utilisateur/groupe exécutant pgBackRest. Si des fichiers existants ne sont pas possédés par l’utilisateur/groupe exécutant, une erreur se produira si la propriété ne peut pas être mise à jour pour correspondre à l’utilisateur/groupe exécutant. Dans ce cas, la propriété des fichiers devra être mise à jour par un utilisateur ayant des privilèges avant de pouvoir réessayer la restauration.

Si un restore est exécuté en tant qu’utilisateur root, pgBackRest tentera de recréer la propriété enregistrée dans le manifeste au moment de la sauvegarde. Seuls les noms d’utilisateur/groupe sont stockés dans le manifeste, donc les mêmes noms doivent exister sur l’hôte de restauration pour que cela fonctionne. Si le nom d’utilisateur/groupe ne peut pas être trouvé localement, l’utilisateur/groupe du répertoire de données PostgreSQL sera utilisé, puis root si l’utilisateur/groupe du répertoire de données ne peut pas être mappé à un nom.

Option Delta

Restaurer une sauvegarde dans Mise en route rapide nécessite que le répertoire du cluster de base de données soit nettoyé avant la restore de restauration. L’option delta permet à pgBackRest de déterminer automatiquement quels fichiers du répertoire du cluster de base de données peuvent être conservés et quels fichiers doivent être restaurés à partir de la sauvegarde — elle supprime également les fichiers absents du manifeste de sauvegarde, ce qui permet d’éliminer les modifications divergentes. Cette opération est réalisée en calculant un hachage cryptographique SHA-1 pour chaque fichier du répertoire du cluster de base de données. Si le hachage SHA-1 ne correspond pas au hachage stocké dans la sauvegarde, ce fichier sera restauré. Cette opération est particulièrement efficace lorsqu’elle est combinée avec l’option process-max. Comme le serveur PostgreSQL est arrêté pendant la restauration, un plus grand nombre de processus peut être utilisé que lors d’une sauvegarde, où le serveur PostgreSQL est en cours d’exécution.

pg-primary ⇒ Arrêtez le cluster de démonstration, effectuez une restauration incrémentielle

sudo systemctl stop postgresql-14.service
sudo -u postgres pgbackrest --stanza=demo --delta \
       --log-level-console=detail restore
       [filtered 2 lines of output]
P00 DETAIL: check '/var/lib/pgsql/14/data' exists
P00 DETAIL: remove 'global/pg_control' so cluster will not start if restore does not complete
P00   INFO: remove invalid files/links/paths from '/var/lib/pgsql/14/data'
P00 DETAIL: remove invalid file '/var/lib/pgsql/14/data/backup_label.old'
P00 DETAIL: remove invalid file '/var/lib/pgsql/14/data/base/13755/pg_internal.init'
       [filtered 996 lines of output]

pg-primary ⇒ Redémarrer PostgreSQL

sudo systemctl start postgresql-14.service

Restauration des bases de données sélectionnées

Il peut arriver que l’on souhaite restaurer sélectivement des bases de données spécifiques à partir d’une sauvegarde de cluster. Cela peut être utile pour des raisons de performance ou pour déplacer des bases sélectionnées vers une machine qui ne dispose pas d’espace suffisant pour restaurer l’intégralité de la sauvegarde du cluster.

Pour démontrer cette fonctionnalité, deux bases de données sont créées : test1 et test2.

pg-primary ⇒ Créer deux bases de données de test

sudo -u postgres psql -c "create database test1;"
CREATE DATABASE
sudo -u postgres psql -c "create database test2;"
CREATE DATABASE

Chaque base de données de test sera initialisée avec des tables et des données afin de démontrer que la restauration sélective fonctionne.

pg-primary ⇒ Créer une table de test dans chaque base de données

sudo -u postgres psql -c "create table test1_table (id int); \
       insert into test1_table (id) values (1);" test1
CREATE TABLE
INSERT 0 1
sudo -u postgres psql -c "create table test2_table (id int); \
       insert into test2_table (id) values (2);" test2
CREATE TABLE
INSERT 0 1

Une nouvelle sauvegarde est exécutée afin que pgBackRest prenne connaissance des nouveaux bases de données.

pg-primary ⇒ Effectuer une sauvegarde

sudo -u postgres pgbackrest --stanza=demo --type=incr backup

L’une des principales raisons d’utiliser une restauration sélective est de conserver de l’espace. La taille de la base de données test1 est indiquée ici afin de pouvoir la comparer à l’utilisation du disque après une restauration sélective.

pg-primary ⇒ Afficher l’espace utilisé par la base test1

sudo -u postgres du -sh /var/lib/pgsql/14/data/base/32768
8.4M	/var/lib/pgsql/14/data/base/32768

Si la base de données à restaurer n’est pas connue, utilisez l’option info de la commande set pour découvrir les bases de données faisant partie de l’ensemble de sauvegarde.

pg-primary ⇒ Afficher la liste des bases de données pour la sauvegarde

sudo -u postgres pgbackrest --stanza=demo \
       --set=20260817-044403F_20260817-044418I info
       [filtered 12 lines of output]
            repo1: backup size: 2.1MB
            backup reference list: 20260817-044403F, 20260817-044403F_20260817-044409D
            database list: postgres (13755), test1 (32768), test2 (32769)

Arrêtez le cluster et effectuez une restauration uniquement de la base test2. Les bases de données intégrées (template0, template1 et postgres) sont toujours restaurées.

AVERTISSEMENT :

La récupération peut échouer sauf si --type=immediate est spécifié. Cela est dû au fait qu’une fois la cohérence atteinte, PostgreSQL signale les pages nulles comme des erreurs, même pour une écriture complète de page. Pour PostgreSQL ≥ 13, le paramètre ignore_invalid_pages peut être utilisé pour ignorer les pages non valides. Dans ce cas, il est important de vérifier les journaux après la récupération afin de s’assurer qu’aucune page non valide n’a été signalée dans les bases de données sélectionnées.

pg-primary ⇒ Restauration à partir de la dernière sauvegarde, incluant uniquement la base test2

sudo systemctl stop postgresql-14.service
sudo -u postgres pgbackrest --stanza=demo --delta \
       --db-include=test2 --type=immediate --target-action=promote restore
sudo systemctl start postgresql-14.service

Une fois la récupération terminée, la base de données test2 contiendra toutes les tables et les données précédemment créées.

pg-primary ⇒ Démontrer que la base de données test2 a été restaurée

sudo -u postgres psql -c "select * from test2_table;" test2
 id
----
  2
(1 row)

La base de données test1, malgré une récupération réussie, n’est pas accessible. Cela est dû au fait que la base entière a été restaurée sous forme de fichiers creux initialisés à zéro. PostgreSQL peut appliquer correctement le WAL sur ces fichiers initialisés à zéro, mais la base de données dans son ensemble ne sera pas valide, car certains fichiers clés ne contiennent aucune donnée. Cette situation est volontaire, afin d’éviter que la base de données ne soit utilisée accidentellement alors qu’elle pourrait contenir des données partielles appliquées pendant la relecture du WAL.

pg-primary ⇒ Tenter de se connecter à la base de données test1 produira une erreur

sudo -u postgres psql -c "select * from test1_table;" test1
psql: error: connection to server on socket "/run/postgresql/.s.PGSQL.5432" failed: FATAL:  relation mapping file "base/32768/pg_filenode.map" contains invalid data

Étant donné que la base de données test1 est restaurée avec des fichiers épars et initialisés à zéro, elle n’utilisera que l’espace nécessaire à la quantité de WAL écrite pendant la récupération. Bien que la quantité de WAL générée lors d’une sauvegarde et appliquée lors de la récupération puisse être importante, elle représente généralement une fraction réduite de la taille totale de la base de données, en particulier pour les grandes bases de données où cette fonctionnalité est le plus susceptible d’être utile.

Il est clair que la base de données test1 utilise bien moins d’espace disque lors d’une restauration sélective que si toute la base de données avait été restaurée.

pg-primary ⇒ Afficher l’espace utilisé par la base de données test1 après la récupération

sudo -u postgres du -sh /var/lib/pgsql/14/data/base/32768
8.0K	/var/lib/pgsql/14/data/base/32768

À ce stade, la seule action pouvant être entreprise sur la base test1 invalide est drop database. pgBackRest ne supprime pas automatiquement la base de données, car cela n’est pas possible tant que la récupération n’est pas terminée et que le cluster n’est pas accessible.

pg-primary ⇒ Supprimer la base de données test1

sudo -u postgres psql -c "drop database test1;"
DROP DATABASE

À présent que la base de données test1 invalide a été supprimée, seules les bases de données test2 et les bases intégrées restent.

pg-primary ⇒ Liste des bases de données restantes

sudo -u postgres psql -c "select oid, datname from pg_database order by oid;"
  oid  |  datname
-------+-----------
     1 | template1
 13754 | template0
 13755 | postgres
 32769 | test2
(4 rows)

restauration à un instant donné

Restaurer une sauvegarde dans Démarrage rapide a effectué une récupération par défaut, qui consiste à rejouer toutes les transactions jusqu’à la fin du flux WAL. En cas de panne matérielle, il s’agit généralement du choix optimal, mais en cas de corruption des données (qu’elle soit due à une panne matérielle ou humaine), la restauration à un instant donné (PITR) est souvent plus appropriée.

La restauration à un instant donné (PITR) permet de rejouer les journaux d’écriture (WAL) à partir d’une sauvegarde jusqu’à un LSN, une heure, un identifiant de transaction ou un point de récupération spécifié. Pour les scénarios de récupération courants, la récupération basée sur le temps est sans doute la plus utile. Un scénario de récupération typique consiste à restaurer une table supprimée par erreur ou des données supprimées par erreur. La récupération d’une table supprimée est plus spectaculaire, aussi est-elle prise comme exemple ici, mais les données supprimées seraient récupérées exactement de la même manière.

pg-primary ⇒ Créer une table avec des données très importantes

sudo -u postgres psql -c "begin; \
       create table important_table (message text); \
       insert into important_table values ('Important Data'); \
       commit; \
       select * from important_table;"
       [filtered 4 lines of output]
    message
----------------
 Important Data
(1 row)

Il est important de représenter l’heure selon le calcul de PostgreSQL et d’inclure les décalages de fuseau horaire. Cela réduit la possibilité de conversions de fuseau horaire non souhaitées et d’un résultat de récupération inattendu.

pg-primary ⇒ Obtenir l’heure depuis PostgreSQL

sudo -u postgres psql -Atc "select current_timestamp"
2026-08-17 04:44:30.009846+00

À présent que l’heure a été enregistrée, la table est supprimée. En pratique, déterminer l’heure exacte à laquelle la table a été supprimée est bien plus difficile qu’à l’exemple présenté. Il se peut qu’il ne soit pas possible de déterminer l’heure exacte, mais une analyse forensique devrait toutefois pouvoir s’en approcher.

pg-primary ⇒ Supprimer la table importante

sudo -u postgres psql -c "begin; \
       drop table important_table; \
       commit; \
       select * from important_table;"
BEGIN
DROP TABLE
COMMITERROR:  relation "important_table" does not exist
LINE 1: ...le important_table;     commit;     select * from important_...
                                                             ^

Si la mauvaise sauvegarde est sélectionnée pour la restauration, la récupération jusqu’à la cible de temps requise échouera. Pour illustrer ce cas, une nouvelle sauvegarde incrémentielle est effectuée alors que important_table n’existe pas.

pg-primary ⇒ Effectuer une sauvegarde incrémentielle

sudo -u postgres pgbackrest --stanza=demo --type=incr backup
sudo -u postgres pgbackrest info
       [filtered 38 lines of output]
            backup reference total: 1 full, 1 diff
        incr backup: 20260817-044403F_20260817-044431I
            timestamp start/stop: 2026-08-17 04:44:31+00 / 2026-08-17 04:44:32+00
            wal start/stop: 00000004000000000000001A / 00000004000000000000001A
       [filtered 2 lines of output]

Il ne sera pas possible de récupérer la table perdue à partir de cette sauvegarde, car PostgreSQL ne peut avancer que vers l’avant, pas vers l’arrière.

pg-primary ⇒ Tentative de récupération à partir d’une sauvegarde incorrecte

sudo systemctl stop postgresql-14.service
sudo -u postgres pgbackrest --stanza=demo --delta \
       --set=20260817-044403F_20260817-044431I --target-timeline=current \
       --type=time "--target=2026-08-17 04:44:30.009846+00" --target-action=promote restore
sudo systemctl start postgresql-14.service
sudo -u postgres cat /var/lib/pgsql/14/data/log/postgresql.log
       [filtered 11 lines of output]
LOG:  database system is ready to accept read-only connections
LOG:  redo done at 0/1A000100 system usage: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.01 s
FATAL:  recovery ended before configured recovery target was reached
LOG:  startup process (PID 4008) exited with exit code 1
LOG:  terminating any other active server processes
LOG:  database system is shut down

Une méthode fiable consiste à autoriser pgBackRest à sélectionner automatiquement une sauvegarde pouvant être restaurée jusqu’à l’instant cible, c’est-à-dire une sauvegarde terminée avant l’instant spécifié.

NOTE :

pgBackRest ne peut pas sélectionner automatiquement une sauvegarde lorsque le type de restauration est xid ou name.

pg-primary ⇒ Effectuer la restauration du cluster démo vers 2026-08-17 04:44:30.009846+00

sudo -u postgres pgbackrest --stanza=demo --delta \
       --type=time "--target=2026-08-17 04:44:30.009846+00" \
       --target-action=promote restore
sudo -u postgres cat /var/lib/pgsql/14/data/postgresql.auto.conf
       [filtered 9 lines of output]
# Recovery settings generated by pgBackRest restore on 2026-08-17 04:44:37
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'
recovery_target_time = '2026-08-17 04:44:30.009846+00'
recovery_target_action = 'promote'

pgBackRest a généré les paramètres de récupération dans postgresql.auto.conf afin que PostgreSQL puisse être démarré immédiatement. %f est le moyen par lequel PostgreSQL indique le segment WAL dont il a besoin, et %p est l’emplacement où il doit être copié. Une fois la récupération de PostgreSQL terminée, la table existera à nouveau et pourra être interrogée.

pg-primary ⇒ Démarrer PostgreSQL et vérifier que la table importante existe

sudo systemctl start postgresql-14.service
sudo -u postgres psql -c "select * from important_table"
    message
----------------
 Important Data
(1 row)

Le journal PostgreSQL contient également des informations précieuses. Il indique l’heure et la transaction où la récupération s’est arrêtée, ainsi que l’heure de la dernière transaction appliquée.

pg-primary ⇒ Examinez la sortie des journaux PostgreSQL

sudo -u postgres cat /var/lib/pgsql/14/data/log/postgresql.log
       [filtered 5 lines of output]
LOG:  database system was interrupted; last known up at 2026-08-17 04:44:18 UTC
LOG:  restored log file "00000004.history" from archive
LOG:  starting point-in-time recovery to 2026-08-17 04:44:30.009846+00
LOG:  restored log file "00000004.history" from archive
LOG:  restored log file "000000040000000000000019" from archive
       [filtered 2 lines of output]
LOG:  consistent recovery state reached at 0/19000100
LOG:  database system is ready to accept read-only connections
LOG:  recovery stopping before commit of transaction 743, time 2026-08-17 04:44:31.350414+00
LOG:  redo done at 0/1901E6C0 system usage: CPU: user: 0.00 s, system: 0.01 s, elapsed: 0.01 s
LOG:  last completed transaction was at log time 2026-08-17 04:44:28.631376+00
LOG:  selected new timeline ID: 5
LOG:  archive recovery complete
LOG:  database system is ready to accept connections

Supprimer une stanza

La commande stanza-delete supprime les données du dépôt associées à un stanza.

AVERTISSEMENT :

Utilisez cette commande avec précaution — elle supprimera définitivement toutes les sauvegardes et archives du dépôt pgBackRest pour le stanza spécifié.

Pour supprimer une stanza :

  • Arrêtez le cluster PostgreSQL associé à la stanza (ou utilisez –force pour l’ignorer).
  • Exécutez la commande stop sur l’hôte où la commande stanza-delete sera exécutée.
  • Exécutez la commande stanza-delete.

Une fois la commande exécutée avec succès, il incombe à l’utilisateur de supprimer la stanza de tous les fichiers de configuration pgBackRest et/ou des variables d’environnement.

Un stanza ne peut être supprimé que d’un dépôt à la fois. Pour supprimer le stanza de plusieurs dépôts, répétez la commande stanza-delete pour chaque dépôt tout en spécifiant l’option --repo.

pg-primary ⇒ Arrêtez le cluster PostgreSQL à supprimer

sudo systemctl stop postgresql-14.service

pg-primary ⇒ Arrêtez pgBackRest pour la stanza

sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stop
P00   INFO: stop command begin 2.59.1: --exec-id=4359-ed60b799 --log-level-console=info --no-log-timestamp --stanza=demo
P00   INFO: stop command end: completed successfully

pg-primary ⇒ Supprimer le stanza depuis un dépôt

sudo -u postgres pgbackrest --stanza=demo --repo=1 \
       --log-level-console=info stanza-delete
P00   INFO: stanza-delete command begin 2.59.1: --exec-id=4390-92592378 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/pgsql/14/data --repo=1 --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --stanza=demo
P00   INFO: stanza-delete command end: completed successfully

Dépôts multiples

Plusieurs dépôts peuvent être configurés, comme illustré dans Prise en charge S3 . Un avantage potentiel est la possibilité de disposer d’un dépôt local pour des restaurations rapides et d’un dépôt distant pour la redondance.

Certaines commandes, par exemple stanza-create /stanza-upgrade , fonctionnent automatiquement avec tous les dépôts configurés, tandis que d’autres, par exemple stanza-delete , nécessitent la spécification d’un dépôt à l’aide de l’option repo.

Notez que l’option repo n’est pas obligatoire lorsqu’uniquement repo1 est configuré, afin de préserver la compatibilité descendante. Toutefois, l’option repo est obligatoire lorsqu’un seul dépôt est configuré, par exemple repo2. Ceci vise à éviter la rupture de commande en cas d’ajout ultérieur d’un nouveau dépôt.

La commande archive-push poussera toujours les journaux WAL vers l’archive dans tous les dépôts configurés. Si un dépôt n’est pas accessible, les journaux WAL seront tout de même poussés vers les autres dépôts. Toutefois, pour que cela fonctionne efficacement, archive-async=y doit être activé ; sinon, les autres dépôts ne pourront avancer que d’un segment WAL par rapport au dépôt inatteignable. Notez également qu’en cas d’impossibilité de pousser les journaux WAL vers n’importe quel dépôt, PostgreSQL ne supprimera pas ces journaux du répertoire pg_wal, ce qui peut entraîner la saturation du volume.

Les sauvegardes doivent être planifiées individuellement pour chaque dépôt. Dans de nombreuses situations, cela est souhaitable car les types de sauvegarde et la rétention varient d’un dépôt à l’autre. De même, les restaurations doivent préciser un dépôt. Il est généralement préférable de spécifier un dépôt à faible latence/coût, même si cela implique un temps de récupération plus long. Seule une vérification par test de restauration permettra de déterminer quel dépôt sera le plus efficace.


Prise en charge du magasin d’objets compatible Azure

pgBackRest prend en charge la localisation des dépôts dans des magasins d’objets compatibles Azure. Le conteneur utilisé pour stocker le dépôt doit être créé à l’avance — pgBackRest ne le fera pas automatiquement. Le dépôt peut être situé à la racine du conteneur (/), mais il est généralement préférable de le placer dans un sous-chemin afin de pouvoir stocker également des journaux ou d’autres données dans le conteneur sans conflit.

AVERTISSEMENT :

N’activez pas l’« espace de noms hiérarchique » car cela provoquera des erreurs lors de l’expiration.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez Azure

[demo]

pg1-path=/var/lib/pgsql/14/data



[global]

repo1-block=y

repo1-bundle=y

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-diff=2

repo1-retention-full=2

repo2-azure-account=pgbackrest

repo2-azure-container=demo-container

repo2-azure-key=YXpLZXk=

repo2-path=/demo-repo

repo2-retention-full=4

repo2-type=azure

start-fast=y



[global:archive-push]

compress-level=3

Les signatures d’accès partagé peuvent être utilisées en définissant l’option repo2-azure-key-type sur sas et l’option repo2-azure-key sur le jeton de signature d’accès partagé.

Les commandes sont exécutées exactement comme si le dépôt était stocké sur un disque local.

pg-primary ⇒ Créer la stanza

sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create
P00   INFO: stanza-create command begin 2.59.1: --exec-id=4596-566ff3a8 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/pgsql/14/data --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo2-type=azure --stanza=demo
P00   INFO: stanza-create for stanza 'demo' on repo1
P00   INFO: stanza-create for stanza 'demo' on repo2
P00   INFO: stanza-create command end: completed successfully

Le temps de création de fichier dans Azure est relativement lent, aussi la performance de backup/restore est améliorée en activant le regroupement de fichiers file bundling .

pg-primary ⇒ Effectuer une sauvegarde du cluster de démonstration

sudo -u postgres pgbackrest --stanza=demo --repo=2 \
       --log-level-console=info backup
P00   INFO: backup command begin 2.59.1: --exec-id=4629-4d019785 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/pgsql/14/data --repo=2 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-block --repo1-bundle --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo2-type=azure --stanza=demo --start-fast
P00   WARN: no prior backup exists, incr backup has been changed to full
P00   INFO: execute backup start: backup begins after the requested immediate checkpoint completes
P00   INFO: backup start archive = 00000005000000000000001B, lsn = 0/1B000028
       [filtered 3 lines of output]
P00   INFO: check archive for segment(s) 00000005000000000000001B:00000005000000000000001B
P00   INFO: new backup label = 20260817-044452F
P00   INFO: full backup size = 33.5MB, file total = 1249
P00   INFO: backup command end: completed successfully
P00   INFO: expire command begin 2.59.1: --exec-id=4629-4d019785 --log-level-console=info --no-log-timestamp --repo=2 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo2-type=azure --stanza=demo

Prise en charge du stockage d’objets compatible S3

pgBackRest prend en charge le positionnement des dépôts dans des magasins d’objets compatibles S3. Le bac utilisé pour stocker le dépôt doit être créé à l’avance — pgBackRest ne le fera pas automatiquement. Le dépôt peut être placé à la racine du bac (/), mais il est généralement préférable de le situer dans un sous-répertoire afin de pouvoir stocker également des journaux ou d’autres données dans le bac sans conflit.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez S3

[demo]

pg1-path=/var/lib/pgsql/14/data



[global]

repo1-block=y

repo1-bundle=y

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-diff=2

repo1-retention-full=2

repo2-azure-account=pgbackrest

repo2-azure-container=demo-container

repo2-azure-key=YXpLZXk=

repo2-path=/demo-repo

repo2-retention-full=4

repo2-type=azure

repo3-path=/demo-repo

repo3-retention-full=4

repo3-s3-bucket=demo-bucket

repo3-s3-endpoint=s3.us-east-1.amazonaws.com

repo3-s3-key=accessKey1

repo3-s3-key-secret=verySecretKey1

repo3-s3-region=us-east-1

repo3-type=s3

start-fast=y



[global:archive-push]

compress-level=3

NOTE :

La région et le point de terminaison devront être configurés selon l’emplacement du bac. Les valeurs indiquées ici correspondent à la région us-east-1.

Un rôle doit être créé pour exécuter pgBackRest et les autorisations du bac doivent être définies aussi restrictivement que possible. Si le rôle est associé à une instance dans AWS, pgBackRest récupérera automatiquement des identifiants temporaires lorsque repo3-s3-key-type=auto, ce qui signifie que les clés n’ont pas besoin d’être explicitement définies dans /etc/pgbackrest/pgbackrest.conf.

Politique Amazon S3 d’exemple qui restreint toutes les lectures et écritures au bac et au chemin du dépôt.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::demo-bucket"
            ],
            "Condition": {
                "StringEquals": {
                    "s3:prefix": [
                        "",
                        "demo-repo"
                    ],
                    "s3:delimiter": [
                        "/"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::demo-bucket"
            ],
            "Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "demo-repo/*"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectTagging",
                "s3:GetObject",
                "s3:GetObjectVersion",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::demo-bucket/demo-repo/*"
            ]
        }
    ]
}

Les commandes sont exécutées exactement comme si le dépôt était stocké sur un disque local.

pg-primary ⇒ Créer la stanza

sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create
       [filtered 4 lines of output]
P00   INFO: stanza 'demo' already exists on repo2 and is valid
P00   INFO: stanza-create for stanza 'demo' on repo3
P00   INFO: stanza-create command end: completed successfully

Le temps de création de fichier dans S3 est relativement lent, aussi la performance de backup/restore est améliorée en activant le regroupement de fichiers file bundling .

pg-primary ⇒ Effectuer une sauvegarde du cluster de démonstration

sudo -u postgres pgbackrest --stanza=demo --repo=3 \
       --log-level-console=info backup
P00   INFO: backup command begin 2.59.1: --exec-id=5019-cc9e6a36 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/pgsql/14/data --repo=3 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-block --repo1-bundle --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo3-retention-full=4 --repo3-s3-bucket=demo-bucket --repo3-s3-endpoint=s3.us-east-1.amazonaws.com --repo3-s3-key=<redacted> --repo3-s3-key-secret=<redacted> --repo3-s3-region=us-east-1 --repo2-type=azure --repo3-type=s3 --stanza=demo --start-fast
P00   WARN: no prior backup exists, incr backup has been changed to full
P00   INFO: execute backup start: backup begins after the requested immediate checkpoint completes
P00   INFO: backup start archive = 00000005000000000000001D, lsn = 0/1D000028
       [filtered 3 lines of output]
P00   INFO: check archive for segment(s) 00000005000000000000001D:00000005000000000000001D
P00   INFO: new backup label = 20260817-044510F
P00   INFO: full backup size = 33.5MB, file total = 1249
P00   INFO: backup command end: completed successfully
P00   INFO: expire command begin 2.59.1: --exec-id=5019-cc9e6a36 --log-level-console=info --no-log-timestamp --repo=3 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo3-retention-full=4 --repo3-s3-bucket=demo-bucket --repo3-s3-endpoint=s3.us-east-1.amazonaws.com --repo3-s3-key=<redacted> --repo3-s3-key-secret=<redacted> --repo3-s3-region=us-east-1 --repo2-type=azure --repo3-type=s3 --stanza=demo

Prise en charge SFTP

pgBackRest prend en charge le localisation des dépôts sur des hôtes SFTP. Le transfert de fichiers SFTP est relativement lent, aussi les commandes bénéficient-elles d’une augmentation de process-max afin de paralléliser le transfert de fichiers.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez SFTP

[demo]

pg1-path=/var/lib/pgsql/14/data



[global]

process-max=4

repo1-block=y

repo1-bundle=y

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-diff=2

repo1-retention-full=2

repo2-azure-account=pgbackrest

repo2-azure-container=demo-container

repo2-azure-key=YXpLZXk=

repo2-path=/demo-repo

repo2-retention-full=4

repo2-type=azure

repo3-path=/demo-repo

repo3-retention-full=4

repo3-s3-bucket=demo-bucket

repo3-s3-endpoint=s3.us-east-1.amazonaws.com

repo3-s3-key=accessKey1

repo3-s3-key-secret=verySecretKey1

repo3-s3-region=us-east-1

repo3-type=s3

repo4-bundle=y

repo4-path=/demo-repo

repo4-sftp-host=sftp-server

repo4-sftp-host-key-hash-type=sha1

repo4-sftp-host-user=pgbackrest

repo4-sftp-private-key-file=/var/lib/pgsql/.ssh/id_rsa_sftp

repo4-sftp-public-key-file=/var/lib/pgsql/.ssh/id_rsa_sftp.pub

repo4-type=sftp

start-fast=y



[global:archive-push]

compress-level=3

Lors de l’utilisation de SFTP, si libssh2 est compilé contre OpenSSH, repo4-sftp-public-key-file est facultatif.

pg-primary ⇒ Générer une paire de clés SSH pour la sauvegarde SFTP

sudo -u postgres mkdir -m 750 -p /var/lib/pgsql/.ssh
sudo -u postgres ssh-keygen -f /var/lib/pgsql/.ssh/id_rsa_sftp \
       -t rsa -b 4096 -N "" -m PEM

sftp-server ⇒ Copier la clé publique de sauvegarde SFTP de pg-primary sur sftp-server

sudo -u pgbackrest mkdir -m 750 -p /home/pgbackrest/.ssh
(sudo ssh root@pg-primary cat /var/lib/pgsql/.ssh/id_rsa_sftp.pub) | \
       sudo -u pgbackrest tee -a /home/pgbackrest/.ssh/authorized_keys

Les commandes sont exécutées exactement comme si le dépôt était stocké sur un disque local.

pg-primary ⇒ Ajouter l’empreinte du serveur SFTP au fichier known_hosts, car repo4-sftp-host-key-check-type est par défaut défini sur « strict »

ssh-keyscan -H sftp-server >> /var/lib/pgsql/.ssh/known_hosts 2>/dev/null

pg-primary ⇒ Créer la stanza

sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create
       [filtered 6 lines of output]
P00   INFO: stanza 'demo' already exists on repo3 and is valid
P00   INFO: stanza-create for stanza 'demo' on repo4
P00   INFO: stanza-create command end: completed successfully

pg-primary ⇒ Effectuer une sauvegarde du cluster de démonstration

sudo -u postgres pgbackrest --stanza=demo --repo=4 \
       --log-level-console=info backup
P00   INFO: backup command begin 2.59.1: --exec-id=5320-594a571a --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/pgsql/14/data --process-max=4 --repo=4 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-block --repo1-bundle --repo4-bundle --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo4-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo3-retention-full=4 --repo3-s3-bucket=demo-bucket --repo3-s3-endpoint=s3.us-east-1.amazonaws.com --repo3-s3-key=<redacted> --repo3-s3-key-secret=<redacted> --repo3-s3-region=us-east-1 --repo4-sftp-host=sftp-server --repo4-sftp-host-key-hash-type=sha1 --repo4-sftp-host-user=pgbackrest --repo4-sftp-private-key-file=/var/lib/pgsql/.ssh/id_rsa_sftp --repo4-sftp-public-key-file=/var/lib/pgsql/.ssh/id_rsa_sftp.pub --repo2-type=azure --repo3-type=s3 --repo4-type=sftp --stanza=demo --start-fast
P00   WARN: option 'repo4-retention-full' is not set for 'repo4-retention-full-type=count', the repository may run out of space
            HINT: to retain full backups indefinitely (without warning), set option 'repo4-retention-full' to the maximum.
P00   WARN: no prior backup exists, incr backup has been changed to full
P00   INFO: execute backup start: backup begins after the requested immediate checkpoint completes
P00   INFO: backup start archive = 00000005000000000000001E, lsn = 0/1E000028
       [filtered 3 lines of output]
P00   INFO: check archive for segment(s) 00000005000000000000001E:00000005000000000000001F
P00   INFO: new backup label = 20260817-044529F
P00   INFO: full backup size = 33.5MB, file total = 1249
P00   INFO: backup command end: completed successfully
P00   INFO: expire command begin 2.59.1: --exec-id=5320-594a571a --log-level-console=info --no-log-timestamp --repo=4 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo4-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo3-retention-full=4 --repo3-s3-bucket=demo-bucket --repo3-s3-endpoint=s3.us-east-1.amazonaws.com --repo3-s3-key=<redacted> --repo3-s3-key-secret=<redacted> --repo3-s3-region=us-east-1 --repo4-sftp-host=sftp-server --repo4-sftp-host-key-hash-type=sha1 --repo4-sftp-host-user=pgbackrest --repo4-sftp-private-key-file=/var/lib/pgsql/.ssh/id_rsa_sftp --repo4-sftp-public-key-file=/var/lib/pgsql/.ssh/id_rsa_sftp.pub --repo2-type=azure --repo3-type=s3 --repo4-type=sftp --stanza=demo
P00   INFO: expire command end: completed successfully

Prise en charge du stockage d’objets compatible GCS

pgBackRest prend en charge la localisation des dépôts dans des magasins d’objets compatibles GCS. Le conteneur utilisé pour stocker le dépôt doit être créé à l’avance — pgBackRest ne le fera pas automatiquement. Le dépôt peut être situé à la racine du conteneur (/), mais il est généralement préférable de le placer dans un sous-répertoire afin de pouvoir stocker également des journaux ou d’autres données dans le conteneur sans conflit.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez le GCS

[demo]

pg1-path=/var/lib/pgsql/14/data



[global]

process-max=4

repo1-block=y

repo1-bundle=y

repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

repo1-cipher-type=aes-256-cbc

repo1-path=/var/lib/pgbackrest

repo1-retention-diff=2

repo1-retention-full=2

repo2-azure-account=pgbackrest

repo2-azure-container=demo-container

repo2-azure-key=YXpLZXk=

repo2-path=/demo-repo

repo2-retention-full=4

repo2-type=azure

repo3-path=/demo-repo

repo3-retention-full=4

repo3-s3-bucket=demo-bucket

repo3-s3-endpoint=s3.us-east-1.amazonaws.com

repo3-s3-key=accessKey1

repo3-s3-key-secret=verySecretKey1

repo3-s3-region=us-east-1

repo3-type=s3

repo4-bundle=y

repo4-path=/demo-repo

repo4-sftp-host=sftp-server

repo4-sftp-host-key-hash-type=sha1

repo4-sftp-host-user=pgbackrest

repo4-sftp-private-key-file=/var/lib/pgsql/.ssh/id_rsa_sftp

repo4-sftp-public-key-file=/var/lib/pgsql/.ssh/id_rsa_sftp.pub

repo4-type=sftp

repo5-gcs-bucket=demo-bucket

repo5-gcs-key=/etc/pgbackrest/gcs-key.json

repo5-path=/demo-repo

repo5-type=gcs

start-fast=y



[global:archive-push]

compress-level=3

Lors de l’exécution sur GCE, définissez repo5-gcs-key-type=auto pour authentifier automatiquement à l’aide du compte de service de l’instance.

Les commandes sont exécutées exactement comme si le dépôt était stocké sur un disque local.

Le temps de création de fichier dans GCS est relativement lent, aussi la performance de backup/restore est améliorée en activant le regroupement de fichiers file bundling .


Heure cible pour le dépôt

Le temps cible définit l’instant auquel les commandes lisent un dépôt sur un stockage versionné. Cela permet à la commande de lire le dépôt tel qu’il était à un instant donné, afin de récupérer des données supprimées ou corrompues par une erreur utilisateur ou un logiciel malveillant.

Le stockage versionné est pris en charge par S3, GCS et Azure, mais il est généralement désactivé par défaut. En plus d’activer la versioning, il peut être utile d’activer le verrouillage d’objets pour S3, ou la suppression progressive pour GCS ou Azure.

Lorsque l’option repo-target-time est spécifiée, l’option repo doit également être fournie. Il est probable que tous les types de dépôt ne prennent pas en charge la versionning, et il est généralement préférable de cibler un seul dépôt pour la récupération.

Notez que les comparaisons avec l’horodatage de stockage sont <= à l’horodatage fourni et que les millisecondes sont tronquées de l’horodatage lorsqu’elles sont fournies.

Pour démontrer cette fonctionnalité, la stanza demo dans le dépôt S3 est supprimée.

pg-primary ⇒ Supprimer le stanza dans le dépôt S3

sudo systemctl stop postgresql-14.service
sudo -u postgres pgbackrest --stanza=demo stop
sudo -u postgres pgbackrest --stanza=demo --repo=3 stanza-delete

Une fois le stanza supprimé, la commande info affichera le dépôt dans un état d’erreur.

pg-primary ⇒ Erreur lors de l’information

sudo -u postgres pgbackrest --stanza=demo --repo=3 info
stanza: demo
    status: error (missing stanza path)

Toutefois, comme le stockage est versionné, il est possible d’examiner le dépôt à une époque antérieure à la suppression du stanza. Trouver l’instant cible peut s’avérer délicat selon la situation, mais dans ce cas, l’instant de suppression du stanza peut être déterminé en vérifiant quand backup.info a été supprimé.

pg-primary ⇒ Répertorier les versions de backup.info dans le bac

key=demo-repo/backup/demo/backup.info; \
       aws s3api list-object-versions --bucket demo-bucket \
       --prefix $key --output table \
       --query "sort_by([Versions[?Key=='$key'].{Action:'PUT', \
       Modified:LastModified,Object:Key}, \
       DeleteMarkers[?Key=='$key'].{Action:'DELETE', \
       Modified:LastModified,Object:Key}][],&Modified)"
-------------------------------------------------------------------------------------
|                                ListObjectVersions                                 |
+--------+------------------------------------+-------------------------------------+
| Action |             Modified               |               Object                |
+--------+------------------------------------+-------------------------------------+
|  PUT   |  2026-08-17T04:45:10.531000+00:00  |  demo-repo/backup/demo/backup.info  |
|  PUT   |  2026-08-17T04:45:25.802000+00:00  |  demo-repo/backup/demo/backup.info  |
|  DELETE|  2026-08-17T04:45:36.676000+00:00  |  demo-repo/backup/demo/backup.info  |
+--------+------------------------------------+-------------------------------------+

À présent, la commande info peut être exécutée avec une heure cible afin d’afficher le dépôt avant sa suppression.

pg-primary ⇒ Information avec heure cible

sudo -u postgres pgbackrest --stanza=demo --repo=3 \
       --repo-target-time="2026-08-17 04:45:26+00" info
       [filtered 5 lines of output]
        wal archive min/max (14): 00000005000000000000001C/00000005000000000000001D
        full backup: 20260817-044510F
            timestamp start/stop: 2026-08-17 04:45:10+00 / 2026-08-17 04:45:25+00
            wal start/stop: 00000005000000000000001D / 00000005000000000000001D
            repo3: backup set size: 4.2MB, backup size: 4.2MB

Si la sauvegarde requise est indiquée par la commande info, elle peut être restaurée en utilisant le même instant cible.

pg-primary ⇒ Restauration avec heure cible

sudo -u postgres pgbackrest --stanza=demo --repo=3 --delta \
       --repo-target-time="2026-08-17 04:45:26+00" --log-level-console=info restore
P00   INFO: restore command begin 2.59.1: --delta --exec-id=5643-cba10b18 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/pgsql/14/data --process-max=4 --repo=3 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo5-gcs-bucket=demo-bucket --repo5-gcs-key=<redacted> --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo4-path=/demo-repo --repo5-path=/demo-repo --repo3-s3-bucket=demo-bucket --repo3-s3-endpoint=s3.us-east-1.amazonaws.com --repo3-s3-key=<redacted> --repo3-s3-key-secret=<redacted> --repo3-s3-region=us-east-1 --repo4-sftp-host=sftp-server --repo4-sftp-host-key-hash-type=sha1 --repo4-sftp-host-user=pgbackrest --repo4-sftp-private-key-file=/var/lib/pgsql/.ssh/id_rsa_sftp --repo4-sftp-public-key-file=/var/lib/pgsql/.ssh/id_rsa_sftp.pub --repo-target-time="2026-08-17 04:45:26+00" --repo2-type=azure --repo3-type=s3 --repo4-type=sftp --repo5-type=gcs --stanza=demo
P00   INFO: repo3: restore backup set 20260817-044510F, recovery will start at 2026-08-17 04:45:10
P00   INFO: remove invalid files/links/paths from '/var/lib/pgsql/14/data'
P00   INFO: write updated /var/lib/pgsql/14/data/postgresql.auto.conf
       [filtered 2 lines of output]
sudo systemctl start postgresql-14.service

Hôte dédié au dépôt

La configuration décrite dans Quickstart convient aux installations simples, mais pour les configurations d’entreprise, il est plus courant d’avoir un hôte dédié au dépôt, où sont stockées les sauvegardes et les fichiers d’archive WAL. Cette approche sépare les sauvegardes et l’archive WAL du serveur de base de données, de sorte que les défaillances de l’hôte de base de données aient un impact moindre. Il est toutefois recommandé d’utiliser un logiciel de sauvegarde traditionnel pour sauvegarder l’hôte du dépôt.

Sur les hôtes PostgreSQL, pg1-path doit être le chemin du cluster PostgreSQL local et aucune configuration pg1-host ne doit être définie. Lors de la configuration d’un hôte de dépôt, le fichier de configuration pgBackRest doit inclure l’option pg-host pour se connecter aux hôtes principaux et secondaires (le cas échéant). L’hôte de dépôt est le seul qui doit disposer d’une configuration pgBackRest connaissant plusieurs hôtes PostgreSQL. L’ordre n’a pas d’importance, par exemple pg1-path/pg1-host, pg2-path/pg2-host peut correspondre à un hôte principal ou secondaire.

Installation

Un nouvel hôte nommé repository est créé pour stocker les sauvegardes du cluster.

NOTE :

La version de pgBackRest installée sur l’hôte du dépôt doit correspondre exactement à la version installée sur l’hôte PostgreSQL.

L’utilisateur pgbackrest est créé pour posséder le dépôt pgBackRest. Tout utilisateur peut posséder le dépôt, mais il est préférable de ne pas utiliser postgres (le cas échéant) afin d’éviter toute confusion.

NOTE :

Lorsque pgBackRest est installé à partir d’un paquet, une configuration logrotate telle que /etc/logrotate.d/pgbackrest peut être fournie, qui effectue le rotation des journaux en tant qu’utilisateur spécifique via la directive su (par exemple su postgres postgres). Étant donné que les fichiers dans /var/log/pgbackrest sont possédés par l’utilisateur exécutant pgBackRest (ici pgbackrest), la directive su doit être mise à jour pour correspondre à cet utilisateur, sinon logrotate échouera avec une erreur de permission.

dépôt ⇒ Créer l’utilisateur pgbackrest

sudo groupadd pgbackrest
sudo adduser -gpgbackrest -n pgbackrest

Installer pgBackRest à partir d’un paquet est préférable à la compilation à partir des sources. Lors de l’installation à partir d’un paquet, les autres instructions de cette section sont généralement inutiles, mais il se peut qu’un paquet omette de créer un répertoire ou applique des permissions incorrectes. Dans ce cas, il peut être nécessaire de créer manuellement les répertoires ou de mettre à jour les permissions.

Les paquets RHEL pour pgBackRest sont disponibles sur yum.PostgreSQL.org .

Si des paquets ne sont pas fournis pour votre distribution/version, vous pouvez compiler à partir des sources puis procéder à l’installation manuelle comme indiqué ici.

dépôt ⇒ Installer les dépendances

sudo yum install postgresql-libs libssh2

dépôt ⇒ Copier le binaire pgBackRest depuis l’hôte de compilation

sudo scp build:/build/pgbackrest/src/pgbackrest /usr/bin
sudo chmod 755 /usr/bin/pgbackrest

pgBackRest nécessite des répertoires pour les journaux et la configuration, ainsi qu’un fichier de configuration.

dépôt ⇒ Créer le fichier de configuration pgBackRest et les répertoires

sudo mkdir -p -m 770 /var/log/pgbackrest
sudo chown pgbackrest:pgbackrest /var/log/pgbackrest
sudo mkdir -p /etc/pgbackrest
sudo mkdir -p /etc/pgbackrest/conf.d
sudo touch /etc/pgbackrest/pgbackrest.conf
sudo chmod 640 /etc/pgbackrest/pgbackrest.conf
sudo chown pgbackrest:pgbackrest /etc/pgbackrest/pgbackrest.conf

dépôt ⇒ Créer le dépôt pgBackRest

sudo mkdir -p /var/lib/pgbackrest
sudo chmod 750 /var/lib/pgbackrest
sudo chown pgbackrest:pgbackrest /var/lib/pgbackrest

Configuration

pgBackRest peut utiliser TLS avec des certificats client pour permettre la communication entre les hôtes. Il est également possible d’utiliser SSH, voir Configurer SSH .

pgBackRest s’attend à ce que les certificats client/serveur soient générés de la même manière que pour PostgreSQL. Consultez Connexions TCP/IP sécurisées avec TLS pour des instructions détaillées sur la génération des certificats.

L’hôte du dépôt doit être configuré avec l’hôte/utilisateur principal et le chemin de la base de données. Le principal sera configuré en tant que pg1 afin de permettre l’ajout ultérieur d’un serveur de secours.

dépôt : /etc/pgbackrest/pgbackrest.conf ⇒ Configurez pg1-host/pg1-host-user et pg1-path

[demo]

pg1-host=pg-primary

pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt

pg1-host-cert-file=/etc/pgbackrest/cert/client.crt

pg1-host-key-file=/etc/pgbackrest/cert/client.key

pg1-host-type=tls

pg1-path=/var/lib/pgsql/14/data



[global]

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y

tls-server-address=*

tls-server-auth=pgbackrest-client=*

tls-server-ca-file=/etc/pgbackrest/cert/ca.crt

tls-server-cert-file=/etc/pgbackrest/cert/server.crt

tls-server-key-file=/etc/pgbackrest/cert/server.key

L’hôte de base de données doit être configuré avec l’hôte/utilisateur du dépôt. La valeur par défaut de l’option repo1-host-user est pgbackrest. Si l’utilisateur postgres effectue des restaurations sur l’hôte du dépôt, il est préférable de ne pas autoriser également l’utilisateur postgres à effectuer des sauvegardes. Toutefois, l’utilisateur postgres peut lire directement le dépôt s’il appartient au même groupe que l’utilisateur pgbackrest.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configure repo1-host/repo1-host-user

[demo]

pg1-path=/var/lib/pgsql/14/data



[global]

log-level-file=detail

repo1-host=repository

repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt

repo1-host-cert-file=/etc/pgbackrest/cert/client.crt

repo1-host-key-file=/etc/pgbackrest/cert/client.key

repo1-host-type=tls

tls-server-address=*

tls-server-auth=pgbackrest-client=demo

tls-server-ca-file=/etc/pgbackrest/cert/ca.crt

tls-server-cert-file=/etc/pgbackrest/cert/server.crt

tls-server-key-file=/etc/pgbackrest/cert/server.key

La configuration de PostgreSQL peut être trouvée dans la section Configurer la sauvegarde archivée .

Les commandes sont exécutées de la même manière qu’avec une configuration à hôte unique, à ceci près que certaines commandes, telles que backup et expire, sont exécutées depuis l’hôte du dépôt plutôt que depuis l’hôte de la base de données.

Configuration du serveur TLS

Le serveur TLS de pgBackRest doit être configuré et démarré sur chaque hôte.

dépôt ⇒ Configuration du serveur pgBackRest

sudo cat /etc/systemd/system/pgbackrest.service
[Unit]
Description=pgBackRest Server
After=network.target
StartLimitIntervalSec=0

[Service]
Type=notify
Restart=always
RestartSec=1
User=pgbackrest
ExecStart=/usr/bin/pgbackrest server
ExecStartPost=/bin/sleep 3
ExecStartPost=/bin/bash -c "[ ! -z $MAINPID ]"
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
sudo systemctl enable pgbackrest
sudo systemctl start pgbackrest

pg-primary ⇒ Configuration du serveur pgBackRest

sudo cat /etc/systemd/system/pgbackrest.service
[Unit]
Description=pgBackRest Server
After=network.target
StartLimitIntervalSec=0

[Service]
Type=notify
Restart=always
RestartSec=1
User=postgres
ExecStart=/usr/bin/pgbackrest server
ExecStartPost=/bin/sleep 3
ExecStartPost=/bin/bash -c "[ ! -z $MAINPID ]"
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
sudo systemctl enable pgbackrest
sudo systemctl start pgbackrest

Créer et vérifier une stanza

Créez le stanza dans le nouveau dépôt.

dépôt ⇒ Créer le stanza

sudo -u pgbackrest pgbackrest --stanza=demo stanza-create

Vérifiez que la configuration est correcte sur les hôtes de base de données et de dépôt. Plus d’informations sur la commande check sont disponibles dans Vérifier la configuration .

pg-primary ⇒ Vérifier la configuration

sudo -u postgres pgbackrest --stanza=demo check

dépôt ⇒ Vérifiez la configuration

sudo -u pgbackrest pgbackrest --stanza=demo check

Effectuer une sauvegarde

Pour effectuer une sauvegarde du cluster PostgreSQL, exécutez pgBackRest avec la commande backup sur l’hôte du dépôt.

dépôt ⇒ Sauvegarder le cluster de démonstration

sudo -u pgbackrest pgbackrest --stanza=demo backup
P00   WARN: no prior backup exists, incr backup has been changed to full

Depuis la création d’un nouveau dépôt sur l’hôte du dépôt, l’avertissement indiquant que la sauvegarde incrémentielle passe à une sauvegarde complète a été émis.

Restaurer une sauvegarde

Pour effectuer une restauration du cluster PostgreSQL, exécutez pgBackRest avec la commande restore sur l’hôte de la base de données.

pg-primary ⇒ Arrêtez le cluster de démonstration, effectuez une restauration, puis redémarrez PostgreSQL

sudo systemctl stop postgresql-14.service
sudo -u postgres pgbackrest --stanza=demo --delta restore
sudo systemctl start postgresql-14.service

Sauvegarde / Restauration parallèle

pgBackRest propose un traitement parallèle afin d’améliorer les performances de compression et de transfert. Le nombre de processus à utiliser pour cette fonctionnalité est défini à l’aide de l’option --process-max.

Il est généralement préférable de ne pas utiliser plus de 25 % des processeurs disponibles pour la commande backup. Les sauvegardes n’ont pas besoin de s’exécuter aussi rapidement, à condition d’être effectuées régulièrement, et le processus de sauvegarde ne doit pas impacter les performances de la base de données, si possible.

La commande de restauration peut et doit utiliser tous les processeurs disponibles, car pendant une restauration le cluster PostgreSQL est arrêté et il n’y a généralement aucune autre tâche importante en cours sur l’hôte. Si l’hôte contient plusieurs clusters, cela doit être pris en compte lors de la configuration de la parallélisation de la restauration.

dépôt ⇒ Effectuer une sauvegarde avec un seul processus

sudo -u pgbackrest pgbackrest --stanza=demo --type=full backup

dépôt : /etc/pgbackrest/pgbackrest.conf ⇒ Configurez pgBackRest pour utiliser plusieurs processus backup

[demo]

pg1-host=pg-primary

pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt

pg1-host-cert-file=/etc/pgbackrest/cert/client.crt

pg1-host-key-file=/etc/pgbackrest/cert/client.key

pg1-host-type=tls

pg1-path=/var/lib/pgsql/14/data



[global]

process-max=3

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y

tls-server-address=*

tls-server-auth=pgbackrest-client=*

tls-server-ca-file=/etc/pgbackrest/cert/ca.crt

tls-server-cert-file=/etc/pgbackrest/cert/server.crt

tls-server-key-file=/etc/pgbackrest/cert/server.key

dépôt ⇒ Effectuer une sauvegarde avec plusieurs processus

sudo -u pgbackrest pgbackrest --stanza=demo --type=full backup

dépôt ⇒ Obtenir les informations de sauvegarde pour le cluster de démonstration

sudo -u pgbackrest pgbackrest info
stanza: demo
    status: ok
    cipher: none

    db (current)
        wal archive min/max (14): 000000070000000000000023/000000070000000000000025

        full backup: 20260817-044625F
            timestamp start/stop: 2026-08-17 04:46:25+00 / 2026-08-17 04:46:29+00
            wal start/stop: 000000070000000000000023 / 000000070000000000000023
            database size: 33.5MB, database backup size: 33.5MB
            repo1: backup set size: 4.2MB, backup size: 4.2MB

        full backup: 20260817-044630F
            timestamp start/stop: 2026-08-17 04:46:30+00 / 2026-08-17 04:46:32+00
            wal start/stop: 000000070000000000000024 / 000000070000000000000025
            database size: 33.5MB, database backup size: 33.5MB
            repo1: backup set size: 4.2MB, backup size: 4.2MB

La performance de la dernière sauvegarde devrait être améliorée en utilisant plusieurs processus. Pour des sauvegardes très petites, la différence peut ne pas être très marquée, mais à mesure que la taille de la base de données augmente, les gains de temps deviennent plus importants.


Démarrage et arrêt

Si un serveur de secours est promu à des fins de test, ou si un cluster de test est restauré à partir d’une sauvegarde de production, il est recommandé de bloquer l’écriture de ces clusters dans les dépôts pgBackRest. Cette mesure peut être mise en œuvre à l’aide de la commande stop.

Les commandes qui écrivent et sont bloquées par stop sont : archive-push, backup, expire, stanza-create et stanza-upgrade. Notez que stanza-delete est une exception à cette règle (voir Supprimer une stanza pour plus de détails).

pg-primary ⇒ Arrêt des commandes d’écriture pgBackRest

sudo -u postgres pgbackrest stop

Les nouvelles commandes d’écriture pgBackRest ne s’exécuteront plus.

dépôt ⇒ Tentative de sauvegarde

sudo -u pgbackrest pgbackrest --stanza=demo backup
P00   WARN: unable to check pg1: [StopError] raised from remote-0 tls protocol on 'pg-primary': stop file exists for all stanzas
P00  ERROR: [056]: unable to find primary cluster - cannot proceed
            HINT: are all available clusters in recovery?

Spécifiez l’option --force pour interrompre toute commande d’écriture pgBackRest en cours d’exécution. Cela inclut l’archive-get asynchrone (même si elle redémarre si PostgreSQL en a besoin). Si pgBackRest est déjà arrêté, un nouvel arrêt générera un avertissement.

pg-primary ⇒ Arrêtez à nouveau les services pgBackRest

sudo -u postgres pgbackrest stop
P00   WARN: stop file already exists for all stanzas

Redémarrez les commandes d’écriture pgBackRest à l’aide de la commande start. Les commandes d’écriture en cours avant l’arrêt ne reprendront pas automatiquement, mais elles sont désormais autorisées à redémarrer.

pg-primary ⇒ Démarrer les commandes d’écriture pgBackRest

sudo -u postgres pgbackrest start

Il est également possible d’arrêter pgBackRest pour une seule stanza.

pg-primary ⇒ Arrête les commandes d’écriture pgBackRest pour la stanza demo

sudo -u postgres pgbackrest --stanza=demo stop

Les nouvelles commandes d’écriture pgBackRest pour la stanza spécifiée ne s’exécuteront plus.

dépôt ⇒ Tentative de sauvegarde

sudo -u pgbackrest pgbackrest --stanza=demo backup
P00   WARN: unable to check pg1: [StopError] raised from remote-0 tls protocol on 'pg-primary': stop file exists for stanza demo
P00  ERROR: [056]: unable to find primary cluster - cannot proceed
            HINT: are all available clusters in recovery?

La stanza doit également être précisée lors du lancement des commandes d’écriture pgBackRest pour une seule stanza.

pg-primary ⇒ Démarrer les commandes d’écriture pgBackRest pour la stanza demo

sudo -u postgres pgbackrest --stanza=demo start

Réplication

La réplication permet de créer plusieurs copies d’un cluster PostgreSQL (appelées réplicas) à partir d’un seul hôte principal. Les réplicas sont utiles pour équilibrer les lectures et assurer une redondance en cas de défaillance de l’hôte principal.

Installation

Un nouvel hôte nommé pg-standby est créé pour exécuter le serveur de secours.

Installer pgBackRest à partir d’un paquet est préférable à la compilation à partir des sources. Lors de l’installation à partir d’un paquet, les autres instructions de cette section sont généralement inutiles, mais il se peut qu’un paquet omette de créer un répertoire ou applique des permissions incorrectes. Dans ce cas, il peut être nécessaire de créer manuellement les répertoires ou de mettre à jour les permissions.

Les paquets RHEL pour pgBackRest sont disponibles sur yum.PostgreSQL.org .

Si des paquets ne sont pas fournis pour votre distribution/version, vous pouvez compiler à partir des sources puis procéder à l’installation manuelle comme indiqué ici.

pg-standby ⇒ Installer les dépendances

sudo yum install postgresql-libs libssh2

pg-standby ⇒ Copier le binaire pgBackRest depuis l’hôte de compilation

sudo scp build:/build/pgbackrest/src/pgbackrest /usr/bin
sudo chmod 755 /usr/bin/pgbackrest

pgBackRest nécessite des répertoires pour les journaux et la configuration, ainsi qu’un fichier de configuration.

pg-standby ⇒ Créer le fichier de configuration et les répertoires pgBackRest

sudo mkdir -p -m 770 /var/log/pgbackrest
sudo chown postgres:postgres /var/log/pgbackrest
sudo mkdir -p /etc/pgbackrest
sudo mkdir -p /etc/pgbackrest/conf.d
sudo touch /etc/pgbackrest/pgbackrest.conf
sudo chmod 640 /etc/pgbackrest/pgbackrest.conf
sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf

Standby chaud

Une station de secours active effectue la réplication à l’aide de l’archive WAL et autorise les requêtes en lecture seule.

La configuration de pgBackRest est très similaire à celle de pg-primary, sauf que le type de récupération standby sera utilisé pour maintenir le cluster en mode récupération lorsque la fin du flux WAL aura été atteinte.

pg-standby:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez pgBackRest sur le serveur de secours

[demo]

pg1-path=/var/lib/pgsql/14/data



[global]

log-level-file=detail

repo1-host=repository

repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt

repo1-host-cert-file=/etc/pgbackrest/cert/client.crt

repo1-host-key-file=/etc/pgbackrest/cert/client.key

repo1-host-type=tls

tls-server-address=*

tls-server-auth=pgbackrest-client=demo

tls-server-ca-file=/etc/pgbackrest/cert/ca.crt

tls-server-cert-file=/etc/pgbackrest/cert/server.crt

tls-server-key-file=/etc/pgbackrest/cert/server.key

pg-standby ⇒ Configuration du serveur pgBackRest

sudo cat /etc/systemd/system/pgbackrest.service
[Unit]
Description=pgBackRest Server
After=network.target
StartLimitIntervalSec=0

[Service]
Type=notify
Restart=always
RestartSec=1
User=postgres
ExecStart=/usr/bin/pgbackrest server
ExecStartPost=/bin/sleep 3
ExecStartPost=/bin/bash -c "[ ! -z $MAINPID ]"
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
sudo systemctl enable pgbackrest
sudo systemctl start pgbackrest

Créez le chemin où PostgreSQL sera restauré.

pg-standby ⇒ Créer le chemin PostgreSQL

sudo -u postgres mkdir -p -m 700 /var/lib/pgsql/14/data

À présent, le serveur de secours peut être créé avec la commande restore.

IMPORTANT :

Si le cluster doit être promu sans devenir le nouveau principal (par exemple pour des rapports ou des tests), utilisez --archive-mode=off ou définissez archive_mode=off dans postgresql.conf afin de désactiver l’archivage. Si l’archivage n’est pas désactivé, le dépôt risque d’être pollué par des WAL qui peuvent compliquer les restaurations.

pg-standby ⇒ Effectuer la restauration du cluster de secours démo

sudo -u postgres pgbackrest --stanza=demo --type=standby restore
sudo -u postgres cat /var/lib/pgsql/14/data/postgresql.auto.conf
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:43:50
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:44:12
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:44:37
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'
# Removed by pgBackRest restore on 2026-08-17 04:45:41 # recovery_target_time = '2026-08-17 04:44:30.009846+00'
# Removed by pgBackRest restore on 2026-08-17 04:45:41 # recovery_target_action = 'promote'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:45:41
restore_command = 'pgbackrest --repo=3 --repo-target-time="2026-08-17 04:45:26+00" --stanza=demo archive-get %f "%p"'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:46:21
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:46:54
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'

La configuration est en cas de promotion du serveur de secours en serveur principal.

pg-standby:/var/lib/pgsql/14/data/postgresql.conf ⇒ Configurez PostgreSQL

archive_command = 'pgbackrest --stanza=demo archive-push %p'

archive_mode = on

log_filename = 'postgresql.log'

pg-standby ⇒ Démarrer PostgreSQL

sudo systemctl start postgresql-14.service

Le journal PostgreSQL fournit des informations précieuses sur la récupération. Notez notamment que le cluster est passé en mode standby et est prêt à accepter des connexions en lecture seule.

pg-standby ⇒ Examinez la sortie du journal PostgreSQL pour les messages indiquant une réussite

sudo -u postgres cat /var/lib/pgsql/14/data/log/postgresql.log
       [filtered 4 lines of output]
LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
LOG:  database system was interrupted; last known up at 2026-08-17 04:46:30 UTC
LOG:  entering standby mode
LOG:  restored log file "00000007.history" from archive
LOG:  restored log file "000000070000000000000024" from archive
       [filtered 3 lines of output]

Une façon simple de vérifier que la réplication est correctement configurée consiste à créer une table sur pg-primary.

pg-primary ⇒ Créer une nouvelle table sur le serveur primaire

sudo -u postgres psql -c " \
       begin; \
       create table replicated_table (message text); \
       insert into replicated_table values ('Important Data'); \
       commit; \
       select * from replicated_table";
       [filtered 4 lines of output]
    message
----------------
 Important Data
(1 row)

Ensuite, interrogez la même table sur pg-standby.

pg-standby ⇒ Interroger une nouvelle table sur le serveur de secours

sudo -u postgres psql -c "select * from replicated_table;"
ERROR:  relation "replicated_table" does not exist
LINE 1: select * from replicated_table;
                      ^

Qu’est-ce qui s’est mal passé ? Puisque PostgreSQL extrait les segments WAL de l’archive pour effectuer la réplication, les modifications ne seront pas visibles sur le serveur de secours tant que le segment WAL contenant ces modifications n’aura pas été transféré depuis pg-primary.

Cela peut être effectué manuellement en appelant pg_switch_wal(), ce qui transfère le segment WAL actuel vers l’archive (un nouveau segment WAL est créé pour contenir les modifications ultérieures).

pg-primary ⇒ Appel à pg_switch_wal()

sudo -u postgres psql -c "select *, current_timestamp from pg_switch_wal()";
 pg_switch_wal |       current_timestamp
---------------+-------------------------------
 0/2601E7C0    | 2026-08-17 04:47:00.421919+00
(1 row)

À présent, après un court délai, la table apparaîtra sur pg-standby.

pg-standby ⇒ La nouvelle table existe désormais sur le serveur de secours (peut nécessiter plusieurs tentatives)

sudo -u postgres psql -c " \
       select *, current_timestamp from replicated_table"
    message     |      current_timestamp
----------------+------------------------------
 Important Data | 2026-08-17 04:47:01.60213+00
(1 row)

Vérifiez la configuration du serveur de secours pour accéder au dépôt.

pg-standby ⇒ Vérifier la configuration

sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check
P00   INFO: check command begin 2.59.1: --exec-id=1243-de0d9475 --log-level-console=info --log-level-file=detail --no-log-timestamp --pg1-path=/var/lib/pgsql/14/data --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls --stanza=demo
P00   INFO: check repo1 (standby)
P00   INFO: switch wal not performed because this is a standby
P00   INFO: check command end: completed successfully

Réplication en streaming

Au lieu de se fier uniquement à l’archive WAL, la réplication en streaming établit une connexion directe avec le principal et applique les modifications dès qu’elles sont effectuées sur ce dernier. Cela réduit considérablement le délai de latence entre le principal et le secondaire.

La réplication en streaming nécessite un utilisateur disposant du privilège de réplication.

pg-primary ⇒ Créer un utilisateur de réplication

sudo -u postgres psql -c " \
       create user replicator password 'jw8s0F4' replication";
CREATE ROLE

Le fichier pg_hba.conf doit être mis à jour pour autoriser le serveur de secours à se connecter en tant qu’utilisateur de réplication. Veillez à remplacer l’adresse IP ci-dessous par l’adresse IP réelle de votre serveur pg-standby. Un rechargement sera nécessaire après la modification du fichier pg_hba.conf.

pg-primary ⇒ Créer une entrée pg_hba.conf pour l’utilisateur de réplication

sudo -u postgres sh -c 'echo \
       "host    replication     replicator      172.17.0.8/32           md5" \
       >> /var/lib/pgsql/14/data/pg_hba.conf'
sudo systemctl reload postgresql-14.service

Le serveur de secours doit savoir comment contacter le serveur principal, donc le paramètre primary_conninfo sera configuré dans pgBackRest.

pg-standby:/etc/pgbackrest/pgbackrest.conf ⇒ Définir primary_conninfo

[demo]

pg1-path=/var/lib/pgsql/14/data

recovery-option=primary_conninfo=host=172.17.0.6 port=5432 user=replicator



[global]

log-level-file=detail

repo1-host=repository

repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt

repo1-host-cert-file=/etc/pgbackrest/cert/client.crt

repo1-host-key-file=/etc/pgbackrest/cert/client.key

repo1-host-type=tls

tls-server-address=*

tls-server-auth=pgbackrest-client=demo

tls-server-ca-file=/etc/pgbackrest/cert/ca.crt

tls-server-cert-file=/etc/pgbackrest/cert/server.crt

tls-server-key-file=/etc/pgbackrest/cert/server.key

Il est possible de configurer un mot de passe dans le paramètre primary_conninfo, mais utiliser un fichier .pgpass est plus flexible et plus sécurisé.

pg-standby ⇒ Configurez le mot de passe de réplication dans le fichier .pgpass.

sudo -u postgres sh -c 'echo \
       "172.17.0.6:*:replication:replicator:jw8s0F4" \
       >> /var/lib/pgsql/.pgpass'
sudo -u postgres chmod 600 /var/lib/pgsql/.pgpass

À présent, le serveur de secours peut être créé avec la commande restore.

pg-standby ⇒ Arrêtez PostgreSQL et effectuez la restauration du cluster de secours démo

sudo systemctl stop postgresql-14.service
sudo -u postgres pgbackrest --stanza=demo --delta --type=standby restore
sudo -u postgres cat /var/lib/pgsql/14/data/postgresql.auto.conf
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:43:50
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:44:12
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:44:37
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'
# Removed by pgBackRest restore on 2026-08-17 04:45:41 # recovery_target_time = '2026-08-17 04:44:30.009846+00'
# Removed by pgBackRest restore on 2026-08-17 04:45:41 # recovery_target_action = 'promote'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:45:41
restore_command = 'pgbackrest --repo=3 --repo-target-time="2026-08-17 04:45:26+00" --stanza=demo archive-get %f "%p"'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:46:21
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'

# Recovery settings generated by pgBackRest restore on 2026-08-17 04:47:07
primary_conninfo = 'host=172.17.0.6 port=5432 user=replicator'
restore_command = 'pgbackrest --stanza=demo archive-get %f "%p"'

NOTE :

Le paramètre primary_conninfo a été écrit dans le fichier postgresql.auto.conf car il a été configuré en tant que recovery-option dans pgbackrest.conf. L’option --type=preserve peut être utilisée avec restore pour laisser le fichier postgresql.auto.conf existant inchangé si ce comportement est préféré.

Par défaut, RHEL stocke le fichier postgresql.conf dans le répertoire de données PostgreSQL. Cela signifie que le changement apporté à postgresql.conf a été écrasé par la dernière restauration et que le paramètre hot_standby doit être réactivé. D’autres solutions à ce problème consistent à stocker le fichier postgresql.conf ailleurs ou à activer le paramètre hot_standby sur l’hôte pg-primary, où il sera ignoré.

pg-standby:/var/lib/pgsql/14/data/postgresql.conf ⇒ Activer hot_standby

archive_command = 'pgbackrest --stanza=demo archive-push %p'

archive_mode = on

hot_standby = on

log_filename = 'postgresql.log'

pg-standby ⇒ Démarrer PostgreSQL

sudo systemctl start postgresql-14.service

Le journal PostgreSQL confirmera que la réplication en flux a commencé.

pg-standby ⇒ Examinez la sortie du journal PostgreSQL pour les messages indiquant une réussite

sudo -u postgres cat /var/lib/pgsql/14/data/log/postgresql.log
       [filtered 12 lines of output]
LOG:  database system is ready to accept read-only connections
LOG:  restored log file "000000070000000000000026" from archive
LOG:  started streaming WAL from primary at 0/27000000 on timeline 7

Désormais, lorsque vous créerez une table sur pg-primary, elle apparaîtra sur pg-standby rapidement et sans avoir à appeler pg_switch_wal().

pg-primary ⇒ Créer une nouvelle table sur le serveur primaire

sudo -u postgres psql -c " \
       begin; \
       create table stream_table (message text); \
       insert into stream_table values ('Important Data'); \
       commit; \
       select *, current_timestamp from stream_table";
       [filtered 4 lines of output]
    message     |       current_timestamp
----------------+-------------------------------
 Important Data | 2026-08-17 04:47:12.811608+00
(1 row)

pg-standby ⇒ Interroger une table sur le serveur de secours

sudo -u postgres psql -c " \
       select *, current_timestamp from stream_table"
    message     |       current_timestamp
----------------+-------------------------------
 Important Data | 2026-08-17 04:47:12.996136+00
(1 row)

Stanzas multiples

pgBackRest prend en charge plusieurs stanzas. L’utilisation la plus courante consiste à partager un hôte de dépôt entre plusieurs stanzas.

Installation

Un nouvel hôte nommé pg-alt est créé pour exécuter le nouveau primaire.

Installer pgBackRest à partir d’un paquet est préférable à la compilation à partir des sources. Lors de l’installation à partir d’un paquet, les autres instructions de cette section sont généralement inutiles, mais il se peut qu’un paquet omette de créer un répertoire ou applique des permissions incorrectes. Dans ce cas, il peut être nécessaire de créer manuellement les répertoires ou de mettre à jour les permissions.

Les paquets RHEL pour pgBackRest sont disponibles sur yum.PostgreSQL.org .

Si des paquets ne sont pas fournis pour votre distribution/version, vous pouvez compiler à partir des sources puis procéder à l’installation manuelle comme indiqué ici.

pg-alt ⇒ Installer les dépendances

sudo yum install postgresql-libs libssh2

pg-alt ⇒ Copier le binaire pgBackRest depuis l’hôte de compilation

sudo scp build:/build/pgbackrest/src/pgbackrest /usr/bin
sudo chmod 755 /usr/bin/pgbackrest

pgBackRest nécessite des répertoires pour les journaux et la configuration, ainsi qu’un fichier de configuration.

pg-alt ⇒ Créer le fichier de configuration et les répertoires pgBackRest

sudo mkdir -p -m 770 /var/log/pgbackrest
sudo chown postgres:postgres /var/log/pgbackrest
sudo mkdir -p /etc/pgbackrest
sudo mkdir -p /etc/pgbackrest/conf.d
sudo touch /etc/pgbackrest/pgbackrest.conf
sudo chmod 640 /etc/pgbackrest/pgbackrest.conf
sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf

Configuration

La configuration de pgBackRest est presque identique à celle de pg-primary, sauf que la stanza demo-alt sera utilisée, de sorte que les sauvegardes et l’archive seront stockées dans un emplacement séparé.

pg-alt:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez pgBackRest sur le nouveau serveur primaire

[demo-alt]

pg1-path=/var/lib/pgsql/14/data



[global]

log-level-file=detail

repo1-host=repository

repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt

repo1-host-cert-file=/etc/pgbackrest/cert/client.crt

repo1-host-key-file=/etc/pgbackrest/cert/client.key

repo1-host-type=tls

tls-server-address=*

tls-server-auth=pgbackrest-client=demo-alt

tls-server-ca-file=/etc/pgbackrest/cert/ca.crt

tls-server-cert-file=/etc/pgbackrest/cert/server.crt

tls-server-key-file=/etc/pgbackrest/cert/server.key

dépôt : /etc/pgbackrest/pgbackrest.conf ⇒ Configurez pg1-host/pg1-host-user et pg1-path

[demo]

pg1-host=pg-primary

pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt

pg1-host-cert-file=/etc/pgbackrest/cert/client.crt

pg1-host-key-file=/etc/pgbackrest/cert/client.key

pg1-host-type=tls

pg1-path=/var/lib/pgsql/14/data



[demo-alt]

pg1-host=pg-alt

pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt

pg1-host-cert-file=/etc/pgbackrest/cert/client.crt

pg1-host-key-file=/etc/pgbackrest/cert/client.key

pg1-host-type=tls

pg1-path=/var/lib/pgsql/14/data



[global]

process-max=3

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y

tls-server-address=*

tls-server-auth=pgbackrest-client=*

tls-server-ca-file=/etc/pgbackrest/cert/ca.crt

tls-server-cert-file=/etc/pgbackrest/cert/server.crt

tls-server-key-file=/etc/pgbackrest/cert/server.key

pg-alt ⇒ Configuration du serveur pgBackRest

sudo cat /etc/systemd/system/pgbackrest.service
[Unit]
Description=pgBackRest Server
After=network.target
StartLimitIntervalSec=0

[Service]
Type=notify
Restart=always
RestartSec=1
User=postgres
ExecStart=/usr/bin/pgbackrest server
ExecStartPost=/bin/sleep 3
ExecStartPost=/bin/bash -c "[ ! -z $MAINPID ]"
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
sudo systemctl enable pgbackrest
sudo systemctl start pgbackrest

Configurer un cluster de démonstration

pg-alt ⇒ Créer le cluster de démonstration

sudo -u postgres /usr/pgsql-14/bin/initdb \
       -D /var/lib/pgsql/14/data -k -A peer

pg-alt:/var/lib/pgsql/14/data/postgresql.conf ⇒ Configure les paramètres PostgreSQL

archive_command = 'pgbackrest --stanza=demo-alt archive-push %p'

archive_mode = on

log_filename = 'postgresql.log'

pg-alt ⇒ Démarrer le cluster de démonstration

sudo systemctl restart postgresql-14.service

Créer la stanza et vérifier la configuration

La commande stanza-create doit être exécutée pour initialiser la stanza. Il est recommandé d’exécuter la commande check après stanza-create afin de vérifier que l’archivage et les sauvegardes sont correctement configurés.

pg-alt ⇒ Créer la stanza et vérifier la configuration

sudo -u postgres pgbackrest --stanza=demo-alt --log-level-console=info stanza-create
P00   INFO: stanza-create command begin 2.59.1: --exec-id=924-4397c8dc --log-level-console=info --log-level-file=detail --no-log-timestamp --pg1-path=/var/lib/pgsql/14/data --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls --stanza=demo-alt
P00   INFO: stanza-create for stanza 'demo-alt' on repo1
P00   INFO: stanza-create command end: completed successfully
sudo -u postgres pgbackrest --log-level-console=info check
P00   INFO: check command begin 2.59.1: --exec-id=957-d8d57749 --log-level-console=info --log-level-file=detail --no-log-timestamp --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls
P00   INFO: check stanza 'demo-alt'
P00   INFO: check repo1 configuration (primary)
P00   INFO: check repo1 archive for WAL (primary)
P00   INFO: WAL segment 000000010000000000000001 successfully archived to '/var/lib/pgbackrest/archive/demo-alt/14-1/0000000100000000/000000010000000000000001-82b58c6884429d61a97ac3081576bd1e43544dbd.gz' on repo1
P00   INFO: check command end: completed successfully

Si la commande check est exécutée depuis l’hôte du dépôt, tous les stanzas seront vérifiés.

dépôt ⇒ Vérifiez la configuration de tous les stanzas

sudo -u pgbackrest pgbackrest --log-level-console=info check
P00   INFO: check command begin 2.59.1: --exec-id=1369-1c661e91 --log-level-console=info --no-log-timestamp --repo1-path=/var/lib/pgbackrest
P00   INFO: check stanza 'demo'
P00   INFO: check repo1 configuration (primary)
P00   INFO: check repo1 archive for WAL (primary)
P00   INFO: WAL segment 000000070000000000000027 successfully archived to '/var/lib/pgbackrest/archive/demo/14-1/0000000700000000/000000070000000000000027-515294df03c4d418e0810a57e2c67d47217329a8.gz' on repo1
P00   INFO: check stanza 'demo-alt'
P00   INFO: check repo1 configuration (primary)
P00   INFO: check repo1 archive for WAL (primary)
P00   INFO: WAL segment 000000010000000000000002 successfully archived to '/var/lib/pgbackrest/archive/demo-alt/14-1/0000000100000000/000000010000000000000002-a244148e1eb6d7bd0ac1adbd727f0ff0ad34ffe9.gz' on repo1
P00   INFO: check command end: completed successfully

Archivage asynchrone

La sauvegarde asynchrone est activée avec l’option archive-async. Cette option permet une opération asynchrone pour les commandes archive-push et archive-get.

Un chemin de tampon est requis. Les commandes stockeront les données temporaires ici, mais chaque commande fonctionne de manière assez différente ; l’utilisation du chemin de tampon est donc décrite en détail dans chaque section.

pg-primary ⇒ Créer le répertoire de file d’attente

sudo mkdir -p -m 750 /var/spool/pgbackrest
sudo chown postgres:postgres /var/spool/pgbackrest

pg-standby ⇒ Créer le répertoire de tampon

sudo mkdir -p -m 750 /var/spool/pgbackrest
sudo chown postgres:postgres /var/spool/pgbackrest

Le chemin d’attente doit être configuré et l’archivage asynchrone activé. L’archivage asynchrone apporte automatiquement certains avantages en réduisant le nombre de connexions établies vers le stockage distant, mais la configuration de process-max peut améliorer considérablement les performances en parallélisant les opérations. Veillez à ne pas définir process-max trop élevé afin de ne pas affecter les opérations normales de la base de données.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez le chemin d’épissage et l’archivage asynchrone

[demo]

pg1-path=/var/lib/pgsql/14/data



[global]

archive-async=y

log-level-file=detail

repo1-host=repository

repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt

repo1-host-cert-file=/etc/pgbackrest/cert/client.crt

repo1-host-key-file=/etc/pgbackrest/cert/client.key

repo1-host-type=tls

spool-path=/var/spool/pgbackrest

tls-server-address=*

tls-server-auth=pgbackrest-client=demo

tls-server-ca-file=/etc/pgbackrest/cert/ca.crt

tls-server-cert-file=/etc/pgbackrest/cert/server.crt

tls-server-key-file=/etc/pgbackrest/cert/server.key



[global:archive-get]

process-max=2



[global:archive-push]

process-max=2

pg-standby:/etc/pgbackrest/pgbackrest.conf ⇒ Configurez le chemin d’épissage et l’archivage asynchrone

[demo]

pg1-path=/var/lib/pgsql/14/data

recovery-option=primary_conninfo=host=172.17.0.6 port=5432 user=replicator



[global]

archive-async=y

log-level-file=detail

repo1-host=repository

repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt

repo1-host-cert-file=/etc/pgbackrest/cert/client.crt

repo1-host-key-file=/etc/pgbackrest/cert/client.key

repo1-host-type=tls

spool-path=/var/spool/pgbackrest

tls-server-address=*

tls-server-auth=pgbackrest-client=demo

tls-server-ca-file=/etc/pgbackrest/cert/ca.crt

tls-server-cert-file=/etc/pgbackrest/cert/server.crt

tls-server-key-file=/etc/pgbackrest/cert/server.key



[global:archive-get]

process-max=2



[global:archive-push]

process-max=2

NOTE :

process-max est configuré à l’aide de sections de commande afin que l’option ne soit pas utilisée lors de la sauvegarde ni de la restauration. Cela permet également d’attribuer des valeurs différentes à archive-push et archive-get.

À des fins de démonstration, la réplication en streaming sera interrompue afin de forcer PostgreSQL à récupérer les WAL à l’aide de la commande restore_command.

pg-primary ⇒ Interrompre la réplication en continu en modifiant le mot de passe de réplication

sudo -u postgres psql -c "alter user replicator password 'bogus'"
ALTER ROLE

pg-standby ⇒ Redémarrer le serveur de secours pour interrompre la connexion

sudo systemctl restart postgresql-14.service

Archivage push

La commande asynchrone archive-push déplace l’archivage des WAL vers un processus (ou plusieurs processus) distinct pour améliorer le débit. Elle fonctionne en « regardant à l’avance » pour déterminer quels segments WAL sont prêts à être archivés, au-delà de la demande actuelle de PostgreSQL via le archive_command. Les segments WAL sont transférés directement depuis le répertoire pg_xlog/pg_wal et la réussite n’est retournée par le archive_command que lorsque le segment WAL a été stocké en toute sécurité dans l’archive.

Le répertoire de stockage temporaire contient l’état actuel de l’archivage des WAL. Les fichiers d’état écrits dans le répertoire de stockage temporaire sont généralement de taille nulle et doivent consommer une quantité négligeable d’espace (au plus quelques mégaoctets) et très peu d’E/S. Toutes les informations contenues dans ce répertoire peuvent être régénérées, aussi n’est-il pas nécessaire de préserver le répertoire de stockage temporaire si le cluster est déplacé vers de nouveaux matériels.

IMPORTANT :

Dans l’implémentation originale de l’archivage asynchrone, les segments WAL étaient copiés dans le répertoire tampon avant compression et transfert. La nouvelle implémentation copie directement les segments WAL depuis le répertoire pg_xlog. Si l’archivage asynchrone était utilisé dans la version 1.12 ou antérieure, lisez attentivement les notes de publication de la version 1.13 avant de procéder à la mise à jour.

Le fichier [stanza]-archive-push-async.log peut être utilisé pour surveiller l’activité du processus asynchrone. Une bonne manière de tester cela consiste à envoyer rapidement un nombre important de segments WAL.

pg-primary ⇒ Test de l’archivage asynchrone parallèle

sudo -u postgres psql -c " \
       select pg_create_restore_point('test async push'); select pg_switch_wal(); \
       select pg_create_restore_point('test async push'); select pg_switch_wal(); \
       select pg_create_restore_point('test async push'); select pg_switch_wal(); \
       select pg_create_restore_point('test async push'); select pg_switch_wal(); \
       select pg_create_restore_point('test async push'); select pg_switch_wal();"
sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check
P00   INFO: check command begin 2.59.1: --exec-id=6816-7c4848e0 --log-level-console=info --log-level-file=detail --no-log-timestamp --pg1-path=/var/lib/pgsql/14/data --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls --stanza=demo
P00   INFO: check repo1 configuration (primary)
P00   INFO: check repo1 archive for WAL (primary)
P00   INFO: WAL segment 00000007000000000000002D successfully archived to '/var/lib/pgbackrest/archive/demo/14-1/0000000700000000/00000007000000000000002D-f4c380e59814e4475e8e11ae7037e0b182da04e1.gz' on repo1
P00   INFO: check command end: completed successfully

Le fichier journal contiendra désormais une activité parallèle et asynchrone.

pg-primary ⇒ Vérifier les résultats dans le journal

sudo -u postgres cat /var/log/pgbackrest/demo-archive-push-async.log
-------------------PROCESS START-------------------
P00   INFO: archive-push:async command begin 2.59.1: [/var/lib/pgsql/14/data/pg_wal] --archive-async --exec-id=6780-0c3492e4 --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/14/data --process-max=2 --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls --spool-path=/var/spool/pgbackrest --stanza=demo
P00   INFO: push 1 WAL file(s) to archive: 000000070000000000000028
P01 DETAIL: pushed WAL file '000000070000000000000028' to the archive
P00 DETAIL: statistics: {"socket.client":{"total":1},"socket.session":{"total":1},"tls.client":{"total":1},"tls.session":{"total":1}}
P00   INFO: archive-push:async command end: completed successfully

-------------------PROCESS START-------------------
P00   INFO: archive-push:async command begin 2.59.1: [/var/lib/pgsql/14/data/pg_wal] --archive-async --exec-id=6818-d6ceaa21 --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/14/data --process-max=2 --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls --spool-path=/var/spool/pgbackrest --stanza=demo
P00   INFO: push 5 WAL file(s) to archive: 000000070000000000000029...00000007000000000000002D
P01 DETAIL: pushed WAL file '000000070000000000000029' to the archive
P02 DETAIL: pushed WAL file '00000007000000000000002A' to the archive
P01 DETAIL: pushed WAL file '00000007000000000000002B' to the archive
P02 DETAIL: pushed WAL file '00000007000000000000002C' to the archive
P01 DETAIL: pushed WAL file '00000007000000000000002D' to the archive
P00 DETAIL: statistics: {"socket.client":{"total":1},"socket.session":{"total":1},"tls.client":{"total":1},"tls.session":{"total":1}}
P00   INFO: archive-push:async command end: completed successfully

Récupération d’archive

La commande asynchrone archive-get maintient une file locale de WAL afin d’améliorer le débit. Si un segment de WAL n’est pas présent dans la file, il est récupéré à partir du dépôt, accompagné de suffisamment de segments de WAL consécutifs pour remplir la file. La taille maximale de la file est définie par archive-get-queue-max. Chaque fois que la file est à moins de la moitié pleine, davantage de WAL est récupéré afin de la remplir.

L’opération asynchrone est particulièrement utile dans les environnements qui génèrent beaucoup de WAL ou qui disposent d’une connexion à haute latence avec le stockage du dépôt (par exemple, S3 ou d’autres magasins d’objets). Dans le cas d’une connexion à haute latence, il peut être pertinent d’augmenter process-max.

Le fichier [stanza]-archive-get-async.log peut être utilisé pour surveiller l’activité du processus asynchrone.

pg-standby ⇒ Vérifier les résultats dans le journal

sudo -u postgres cat /var/log/pgbackrest/demo-archive-get-async.log
-------------------PROCESS START-------------------
P00   INFO: archive-get:async command begin 2.59.1: [000000070000000000000024, 000000070000000000000025, 000000070000000000000026, 000000070000000000000027, 000000070000000000000028, 000000070000000000000029, 00000007000000000000002A, 00000007000000000000002B] --archive-async --exec-id=1904-921748ff --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/14/data --process-max=2 --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls --spool-path=/var/spool/pgbackrest --stanza=demo
P00   INFO: get 8 WAL file(s) from archive: 000000070000000000000024...00000007000000000000002B
P01 DETAIL: found 000000070000000000000024 in the repo1: 14-1 archive
P02 DETAIL: found 000000070000000000000025 in the repo1: 14-1 archive
P01 DETAIL: found 000000070000000000000026 in the repo1: 14-1 archive
P02 DETAIL: found 000000070000000000000027 in the repo1: 14-1 archive
P00 DETAIL: unable to find 000000070000000000000028 in the archive
P00 DETAIL: statistics: {"socket.client":{"total":1},"socket.session":{"total":1},"tls.client":{"total":1},"tls.session":{"total":1}}
       [filtered 24 lines of output]
P00   INFO: archive-get:async command begin 2.59.1: [000000070000000000000028, 000000070000000000000029, 00000007000000000000002A, 00000007000000000000002B, 00000007000000000000002C, 00000007000000000000002D, 00000007000000000000002E, 00000007000000000000002F] --archive-async --exec-id=1959-20c3ecfd --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/14/data --process-max=2 --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls --spool-path=/var/spool/pgbackrest --stanza=demo
P00   INFO: get 8 WAL file(s) from archive: 000000070000000000000028...00000007000000000000002F
P01 DETAIL: found 000000070000000000000028 in the repo1: 14-1 archive
P02 DETAIL: found 000000070000000000000029 in the repo1: 14-1 archive
P01 DETAIL: found 00000007000000000000002A in the repo1: 14-1 archive
P02 DETAIL: found 00000007000000000000002B in the repo1: 14-1 archive
P01 DETAIL: found 00000007000000000000002C in the repo1: 14-1 archive
P02 DETAIL: found 00000007000000000000002D in the repo1: 14-1 archive
P00 DETAIL: unable to find 00000007000000000000002E in the archive
P00 DETAIL: statistics: {"socket.client":{"total":1},"socket.session":{"total":1},"tls.client":{"total":1},"tls.session":{"total":1}}
       [filtered 7 lines of output]

pg-primary ⇒ Corriger la réplication en streaming en modifiant le mot de passe de réplication

sudo -u postgres psql -c "alter user replicator password 'jw8s0F4'"
ALTER ROLE

Sauvegarde à partir d’un serveur de secours

pgBackRest peut effectuer des sauvegardes sur une instance de secours au lieu du serveur principal. Les sauvegardes sur instance de secours nécessitent que l’hôte pg-standby soit configuré et que l’option backup-standby soit activée. Si plusieurs instances de secours sont configurées, la première instance de secours en cours d’exécution trouvée sera utilisée pour la sauvegarde.

dépôt : /etc/pgbackrest/pgbackrest.conf ⇒ Configurez pg2-host/pg2-host-user et pg2-path

[demo]

pg1-host=pg-primary

pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt

pg1-host-cert-file=/etc/pgbackrest/cert/client.crt

pg1-host-key-file=/etc/pgbackrest/cert/client.key

pg1-host-type=tls

pg1-path=/var/lib/pgsql/14/data

pg2-host=pg-standby

pg2-host-ca-file=/etc/pgbackrest/cert/ca.crt

pg2-host-cert-file=/etc/pgbackrest/cert/client.crt

pg2-host-key-file=/etc/pgbackrest/cert/client.key

pg2-host-type=tls

pg2-path=/var/lib/pgsql/14/data



[demo-alt]

pg1-host=pg-alt

pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt

pg1-host-cert-file=/etc/pgbackrest/cert/client.crt

pg1-host-key-file=/etc/pgbackrest/cert/client.key

pg1-host-type=tls

pg1-path=/var/lib/pgsql/14/data



[global]

backup-standby=y

process-max=3

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y

tls-server-address=*

tls-server-auth=pgbackrest-client=*

tls-server-ca-file=/etc/pgbackrest/cert/ca.crt

tls-server-cert-file=/etc/pgbackrest/cert/server.crt

tls-server-key-file=/etc/pgbackrest/cert/server.key

La base primaire comme la base standby sont nécessaires pour effectuer la sauvegarde, bien que l’immense majorité des fichiers soient copiés depuis le standby afin de réduire la charge du primaire. Les hôtes de base de données peuvent être configurés dans n’importe quel ordre ; pgBackRest détermine automatiquement lequel est primaire et lequel est standby.

dépôt ⇒ Effectuer une sauvegarde du cluster de démonstration depuis pg2

sudo -u pgbackrest pgbackrest --stanza=demo --log-level-console=detail backup
       [filtered 2 lines of output]
P00   INFO: execute backup start: backup begins after the requested immediate checkpoint completes
P00   INFO: backup start archive = 00000007000000000000002F, lsn = 0/2F000028
P00   INFO: wait for replay on the standby to reach 0/2F000028
P00   INFO: replay on the standby reached 0/2F000028
P00   INFO: check archive for prior segment 00000007000000000000002E
P01 DETAIL: backup file pg-primary:/var/lib/pgsql/14/data/log/postgresql.log (10.9KB, 0.42%) checksum 3a83f078a1f7693a0dc84220c38b2f1c38b469d3
P01 DETAIL: backup file pg-primary:/var/lib/pgsql/14/data/global/pg_control (8KB, 0.73%) checksum 06095c6cf078c5efadbb2fee3558f71138820b07
P01 DETAIL: backup file pg-primary:/var/lib/pgsql/14/data/pg_hba.conf (4.5KB, 0.90%) checksum cfa97af1dab1b130f0a921fa2d10d76fe0c5f630
P01 DETAIL: match file from prior backup pg-primary:/var/lib/pgsql/14/data/current_logfiles (26B, 0.91%) checksum 78a9f5c10960f0d91fcd313937469824861795a2
P01 DETAIL: match file from prior backup pg-primary:/var/lib/pgsql/14/data/pg_logical/replorigin_checkpoint (8B, 0.91%) checksum 347fc8f2df71bd4436e38bd1516ccd7ea0d46532
       [filtered 1263 lines of output]

Cette sauvegarde incrémentielle montre que la majeure partie des fichiers provient de l’hôte pg-standby et qu’un petit nombre provient de l’hôte pg-primary.

pgBackRest crée une sauvegarde en mode basculement identique à celle effectuée sur le serveur principal. Il procède en lançant/arrêtant la sauvegarde sur l’hôte pg-primary, en copiant uniquement les fichiers répliqués depuis l’hôte pg-standby, puis en copiant les quelques fichiers restants depuis l’hôte pg-primary. Cela signifie que les journaux et les statistiques de la base de données principale seront inclus dans la sauvegarde.


Mise à jour de PostgreSQL

Immédiatement après la mise à niveau de PostgreSQL vers une nouvelle version majeure, le pg-path de toutes les configurations pgBackRest doit être défini sur le nouveau emplacement de la base de données, puis la commande stanza-upgrade doit être exécutée. Si plusieurs dépôts sont configurés sur l’hôte, le stanza sera mis à niveau sur chacun. Si la base de données est hors ligne, utilisez l’option --no-online.

Les instructions suivantes ne constituent pas un guide complet de mise à jour de PostgreSQL, mais décrivent le processus général de mise à jour d’un nœud principal et d’un nœud secondaire, dans le but de démontrer les étapes nécessaires à la reconfiguration de pgBackRest. Il est recommandé de prendre une sauvegarde avant la mise à jour.

pg-primary ⇒ Arrêt de l’ancêtre cluster

sudo systemctl stop postgresql-14.service

Arrêtez l’ancien cluster sur le serveur de secours, car il sera restauré à partir du cluster nouvellement mis à jour.

pg-standby ⇒ Arrêter l’ancêtre cluster

sudo systemctl stop postgresql-14.service

Créez le nouveau cluster et effectuez la mise à jour.

pg-primary ⇒ Créer un nouveau cluster et effectuer la mise à jour

sudo -u postgres /usr/pgsql-15/bin/initdb \
       -D /var/lib/pgsql/15/data -k -A peer
sudo -u postgres sh -c 'cd /var/lib/pgsql && \
       /usr/pgsql-15/bin/pg_upgrade \
       --old-bindir=/usr/pgsql-14/bin \
       --new-bindir=/usr/pgsql-15/bin \
       --old-datadir=/var/lib/pgsql/14/data \
       --new-datadir=/var/lib/pgsql/15/data \
       --old-options=" -c config_file=/var/lib/pgsql/14/data/postgresql.conf" \
       --new-options=" -c config_file=/var/lib/pgsql/15/data/postgresql.conf"'
       [filtered 41 lines of output]
Checking for extension updates                              ok
Upgrade Complete
----------------
Optimizer statistics are not transferred by pg_upgrade.
       [filtered 4 lines of output]

Configurez les paramètres du nouveau cluster et le port.

pg-primary:/var/lib/pgsql/15/data/postgresql.conf ⇒ Configurez PostgreSQL

archive_command = 'pgbackrest --stanza=demo archive-push %p'

archive_mode = on

log_filename = 'postgresql.log'

Mettez à jour la configuration de pgBackRest sur tous les systèmes pour qu’elle pointe vers le nouveau cluster.

pg-primary:/etc/pgbackrest/pgbackrest.conf ⇒ Mettre à jour pg1-path

[demo]

pg1-path=/var/lib/pgsql/15/data



[global]

archive-async=y

log-level-file=detail

repo1-host=repository

repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt

repo1-host-cert-file=/etc/pgbackrest/cert/client.crt

repo1-host-key-file=/etc/pgbackrest/cert/client.key

repo1-host-type=tls

spool-path=/var/spool/pgbackrest

tls-server-address=*

tls-server-auth=pgbackrest-client=demo

tls-server-ca-file=/etc/pgbackrest/cert/ca.crt

tls-server-cert-file=/etc/pgbackrest/cert/server.crt

tls-server-key-file=/etc/pgbackrest/cert/server.key



[global:archive-get]

process-max=2



[global:archive-push]

process-max=2

pg-standby:/etc/pgbackrest/pgbackrest.conf ⇒ Mettre à jour pg-path

[demo]

pg1-path=/var/lib/pgsql/15/data

recovery-option=primary_conninfo=host=172.17.0.6 port=5432 user=replicator



[global]

archive-async=y

log-level-file=detail

repo1-host=repository

repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt

repo1-host-cert-file=/etc/pgbackrest/cert/client.crt

repo1-host-key-file=/etc/pgbackrest/cert/client.key

repo1-host-type=tls

spool-path=/var/spool/pgbackrest

tls-server-address=*

tls-server-auth=pgbackrest-client=demo

tls-server-ca-file=/etc/pgbackrest/cert/ca.crt

tls-server-cert-file=/etc/pgbackrest/cert/server.crt

tls-server-key-file=/etc/pgbackrest/cert/server.key



[global:archive-get]

process-max=2



[global:archive-push]

process-max=2

dépôt : /etc/pgbackrest/pgbackrest.conf ⇒ Mettre à jour pg1-path et pg2-path, désactiver la sauvegarde depuis le serveur de secours

[demo]

pg1-host=pg-primary

pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt

pg1-host-cert-file=/etc/pgbackrest/cert/client.crt

pg1-host-key-file=/etc/pgbackrest/cert/client.key

pg1-host-type=tls

pg1-path=/var/lib/pgsql/15/data

pg2-host=pg-standby

pg2-host-ca-file=/etc/pgbackrest/cert/ca.crt

pg2-host-cert-file=/etc/pgbackrest/cert/client.crt

pg2-host-key-file=/etc/pgbackrest/cert/client.key

pg2-host-type=tls

pg2-path=/var/lib/pgsql/15/data



[demo-alt]

pg1-host=pg-alt

pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt

pg1-host-cert-file=/etc/pgbackrest/cert/client.crt

pg1-host-key-file=/etc/pgbackrest/cert/client.key

pg1-host-type=tls

pg1-path=/var/lib/pgsql/14/data



[global]

backup-standby=n

process-max=3

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y

tls-server-address=*

tls-server-auth=pgbackrest-client=*

tls-server-ca-file=/etc/pgbackrest/cert/ca.crt

tls-server-cert-file=/etc/pgbackrest/cert/server.crt

tls-server-key-file=/etc/pgbackrest/cert/server.key

pg-primary ⇒ Copie de la configuration HBA

sudo cp /var/lib/pgsql/14/data/pg_hba.conf \
       /var/lib/pgsql/15/data/pg_hba.conf

Avant de démarrer le nouveau cluster, la commande stanza-upgrade doit être exécutée.

pg-primary ⇒ Mettre à jour la stanza

sudo -u postgres pgbackrest --stanza=demo --no-online \
       --log-level-console=info stanza-upgrade
P00   INFO: stanza-upgrade command begin 2.59.1: --exec-id=7404-f5b1280d --log-level-console=info --log-level-file=detail --no-log-timestamp --no-online --pg1-path=/var/lib/pgsql/15/data --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls --stanza=demo
P00   INFO: stanza-upgrade for stanza 'demo' on repo1
P00   INFO: stanza-upgrade command end: completed successfully

Démarrer le nouveau cluster et confirmer qu’il est correctement installé.

pg-primary ⇒ Démarrer un nouveau cluster

sudo systemctl start postgresql-15.service

Testez la configuration à l’aide de la commande check.

pg-primary ⇒ Vérifier la configuration

sudo systemctl status postgresql-15.service
sudo -u postgres pgbackrest --stanza=demo check

Supprimez le cluster ancien.

pg-primary ⇒ Supprimer le cluster ancien

sudo rm -rf /var/lib/pgsql/14/data

Installez les nouveaux binaires PostgreSQL sur le serveur de secours et créez le cluster.

pg-standby ⇒ Supprimer l’ancien cluster et créer le nouveau cluster

sudo rm -rf /var/lib/pgsql/14/data
sudo -u postgres mkdir -p -m 700 /usr/pgsql-15/bin

Exécutez check sur l’hôte du dépôt. L’avertissement concernant l’arrêt du serveur secondaire est attendu, car le cluster secondaire est arrêté. L’exécution de cette commande montre que le serveur de dépôt est conscient de la présence du serveur secondaire et est correctement configuré pour le serveur principal.

dépôt ⇒ Vérifier la configuration

sudo -u pgbackrest pgbackrest --stanza=demo check
P00   WARN: unable to check pg2: [DbConnectError] raised from remote-0 tls protocol on 'pg-standby': unable to connect to 'dbname='postgres' port=5432': connection to server on socket "/run/postgresql/.s.PGSQL.5432" failed: No such file or directory
                Is the server running locally and accepting connections on that socket?

Effectuez une sauvegarde complète sur le cluster nouvellement configuré, puis restaurez le serveur de secours à partir de cette sauvegarde. Le type de sauvegarde sera automatiquement modifié en full si incr ou diff est demandé.

dépôt ⇒ Exécuter une sauvegarde complète

sudo -u pgbackrest pgbackrest --stanza=demo --type=full backup

pg-standby ⇒ Effectuer la restauration du cluster de secours démo

sudo -u postgres pgbackrest --stanza=demo --type=standby restore

pg-standby ⇒ Démarrer PostgreSQL et vérifier la configuration de pgBackRest

sudo systemctl start postgresql-15.service
sudo -u postgres pgbackrest --stanza=demo check

La sauvegarde depuis un serveur de secours peut maintenant être activée, puisque le serveur de secours est restauré.

dépôt : /etc/pgbackrest/pgbackrest.conf ⇒ Réactiver la sauvegarde depuis le serveur secondaire

[demo]

pg1-host=pg-primary

pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt

pg1-host-cert-file=/etc/pgbackrest/cert/client.crt

pg1-host-key-file=/etc/pgbackrest/cert/client.key

pg1-host-type=tls

pg1-path=/var/lib/pgsql/15/data

pg2-host=pg-standby

pg2-host-ca-file=/etc/pgbackrest/cert/ca.crt

pg2-host-cert-file=/etc/pgbackrest/cert/client.crt

pg2-host-key-file=/etc/pgbackrest/cert/client.key

pg2-host-type=tls

pg2-path=/var/lib/pgsql/15/data



[demo-alt]

pg1-host=pg-alt

pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt

pg1-host-cert-file=/etc/pgbackrest/cert/client.crt

pg1-host-key-file=/etc/pgbackrest/cert/client.key

pg1-host-type=tls

pg1-path=/var/lib/pgsql/14/data



[global]

backup-standby=y

process-max=3

repo1-path=/var/lib/pgbackrest

repo1-retention-full=2

start-fast=y

tls-server-address=*

tls-server-auth=pgbackrest-client=*

tls-server-ca-file=/etc/pgbackrest/cert/ca.crt

tls-server-cert-file=/etc/pgbackrest/cert/server.crt

tls-server-key-file=/etc/pgbackrest/cert/server.key

4 - Référence des commandes

Référence de commande pgBackRest avec toutes les options pour les opérations de sauvegarde, de restauration, d’archive et de gestion.

Introduction

Les commandes sont utilisées pour exécuter les différentes fonctions de pgBackRest. Ici, les options de commande sont listées de manière exhaustive, c’est-à-dire que chaque option applicable à une commande est indiquée avec cette commande, même si elle s’applique à une ou plusieurs autres commandes. Cela inclut toutes les options qui peuvent également être configurées dans pgbackrest.conf.

Les options non booléennes configurées dans pgbackrest.conf peuvent être réinitialisées à leur valeur par défaut en ligne de commande en utilisant le préfixe reset-. Cette fonctionnalité peut être utilisée pour effectuer une restauration directement sur un hôte de dépôt. En règle générale, pgBackRest génère une erreur car il détecte que l’hôte de base de données est distant et qu’une restauration ne peut pas être effectuée à distance. En ajoutant --reset-pg1-host en ligne de commande, pgBackRest ignore l’hôte de base de données distant et effectue la restauration localement. Il peut être nécessaire de passer un nouvel --pg1-path pour forcer la restauration à se produire dans un chemin spécifique, c’est-à-dire non pas le chemin utilisé sur l’hôte de base de données.

Le préfixe no- peut être utilisé pour définir une option booléenne à false en ligne de commande.

Toute option peut être définie dans une variable d’environnement en utilisant le préfixe PGBACKREST_ et le nom de l’option en majuscules, en remplaçant - par _, par exemple pg1-path devient PGBACKREST_PG1_PATH et stanza devient PGBACKREST_STANZA. Les options booléennes sont représentées comme elles le seraient dans un fichier de configuration, par exemple PGBACKREST_COMPRESS="n", et les variantes reset-* ne sont pas autorisées. Les options pouvant être spécifiées plusieurs fois en ligne de commande ou dans un fichier de configuration peuvent être représentées en séparant les valeurs par des deux-points, par exemple PGBACKREST_DB_INCLUDE="db1:db2".

Les options en ligne de commande remplacent les options d’environnement, qui remplacent à leur tour les options du fichier de configuration.

Voir Introduction à la configuration pour obtenir des informations sur les types d’option

Commandes

CommandeRésumé
annotateAjouter, modifier ou supprimer des annotations de sauvegarde après la création de la sauvegarde.
archive-getRécupérer des segments WAL archivés pour une restauration, une restauration à un instant donné ou une récupération d’un réplica.
archive-pushAccepter les segments WAL provenant de PostgreSQL et les envoyer vers les dépôts configurés.
backupCréer des sauvegardes vers le dépôt cible (par défaut, le dépôt de priorité la plus élevée).
checkValider la configuration des sauvegardes/archives d’un stanza et l’état de santé de l’archivage du WAL.
expireExpire les sauvegardes et les WAL archivés selon les politiques de rétention configurées.
helpAfficher l’aide des commandes et options au niveau général, de la commande ou de l’option.
infoAfficher l’état/métadonnées d’un stanza et des sauvegardes au format texte ou JSON.
repo-getLire les fichiers du dépôt (comme cat) pour l’administration, l’investigation et les tests.
repo-lsLister les fichiers/chemins du dépôt (comme ls) pour l’administration, l’investigation et les tests.
restoreRestaurer à partir d’une sauvegarde (la plus récente par défaut) avec une restauration à un instant donné facultative.
serverExécuter le serveur TLS pgBackRest pour accéder à distance sans SSH.
server-pingVérifier qu’un serveur TLS pgBackRest accepte les connexions.
stanza-createCréer les métadonnées d’un stanza dans tous les dépôts configurés.
stanza-deleteSupprimer définitivement toutes les sauvegardes et archives d’un stanza.
stanza-upgradeMettre à jour les métadonnées d’un stanza après une mise à niveau majeure de PostgreSQL.
startRéactiver les processus pgBackRest après une précédente stop.
stopEmpêcher l’exécution de nouveaux processus pgBackRest et, éventuellement, forcer l’arrêt des processus en cours.
verifyVérifier que les données de sauvegarde et d’archive du dépôt sont valides.
versionAfficher la version installée de pgBackRest.

4.1 - Commande d'annotation (annotate)

Référence des options et du comportement de la commande pgBackRest annotate.

Les annotations incluses avec la commande backup peuvent être ajoutées, modifiées ou supprimées ultérieurement à l’aide de la commande annotate.

Options de commande

Option d’annotation de sauvegarde (--annotation)

Ajoutez des paires clé/valeur définies par l’utilisateur à la sauvegarde.

Les utilisateurs peuvent attacher des paires clé/valeur explicatives à la sauvegarde. Cette option peut être utilisée plusieurs fois pour attacher plusieurs annotations.

Les annotations sont produites par la sortie texte de la commande info lorsque une sauvegarde est spécifiée avec --set, et apparaissent toujours dans la sortie JSON.

example: --annotation=source="Sunday backup for website database"

Définir l’option (--set)

Sauvegarde définie pour annotation.

Je jeu de sauvegarde à annoter.

example: --set=20150131-153358F_20150131-153401I

Options générales

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: n
example: --allow-root

Option Taille tampon (--buffer-size)

Taille du tampon pour les opérations d’E/S.

Taille de tampon utilisée pour les opérations de copie, de compression, de chiffrement et autres. Le nombre de tampons utilisés dépend des options, et chaque opération peut utiliser une mémoire supplémentaire, par exemple, la compression gz peut utiliser jusqu’à 256KiB de mémoire supplémentaire.

Les valeurs autorisées sont 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB et 16MiB.

default: 1MiB
example: --buffer-size=2MiB

Option de commande client SSH (--cmd-ssh)

Commande cliente SSH.

Utilisez une commande cliente SSH spécifique lorsque vous souhaitez utiliser une alternative ou que la commande ssh n’est pas disponible dans $PATH.

default: ssh
example: --cmd-ssh=/usr/bin/ssh

Option niveau de compression réseau (--compress-level-network)

Niveau de compression du réseau.

Définit le niveau de compression réseau lorsque compress-type=none et la commande ne sont pas exécutées sur le même hôte que le dépôt. La compression est utilisée pour réduire le trafic réseau. Lorsque compress-type est différent de none, le paramètre compress-level-network est ignoré et compress-level est utilisé à la place, afin que le fichier ne soit compressé qu’une seule fois.

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

Option de configuration (--config)

Fichier de configuration pgBackRest.

Utilisez cette option pour spécifier un fichier de configuration différent du fichier par défaut.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

Option Chemin d’inclusion de configuration (--config-include-path)

Chemin vers les fichiers de configuration supplémentaires de pgBackRest.

Les fichiers de configuration se trouvant dans l’emplacement spécifié et ayant l’extension .conf seront concaténés au fichier de configuration de pgBackRest, ce qui donne un seul fichier de configuration.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration (--config-path)

Chemin de base des fichiers de configuration de pgBackRest.

Ce paramètre est utilisé pour remplacer le chemin de base par défaut pour les options --config et --config-include-path, sauf si ces dernières sont explicitement définies en ligne de commande.

Par exemple, passer uniquement --config-path=/conf/pgbackrest fait que la valeur par défaut de --config est définie à /conf/pgbackrest/pgbackrest.conf et que la valeur par défaut de --config-include-path est définie à /conf/pgbackrest/conf.d.

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

Option d’expiration I/O (--io-timeout)

Délai d’attente d’E/S dépassé.

Délai d’attente, en secondes, utilisé pour les connexions et les opérations de lecture/écriture.

Notez que l’opération de lecture/écriture entière n’a pas besoin de se terminer dans ce délai d’attente, mais une certaine progression doit être réalisée, même si elle ne concerne qu’un seul octet.

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

Option Chemin verrou (--lock-path)

Chemin où les fichiers verrou sont stockés.

Le chemin de verrouillage fournit un emplacement où pgBackRest peut créer des fichiers de verrouillage afin d’empêcher l’exécution simultanée d’opérations en conflit.

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

Option de masque neutre (--neutral-umask)

Utilisez un umask neutre.

Définit le umask à 0000 afin que les modes du dépôt soient créés de manière cohérente. Le mode par défaut du répertoire est 0750 et le mode par défaut du fichier est 0640.

Pour utiliser le umask de l’utilisateur en cours, spécifiez neutral-umask=n dans le fichier de configuration ou --no-neutral-umask en ligne de commande.

default: y
example: --no-neutral-umask

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: --priority=19

Option délai d’attente du protocole (--protocol-timeout)

Délai d’attente du protocole.

Définit le délai d’attente, en secondes, durant lequel le processus local ou distant attend qu’un nouveau message soit reçu au niveau du protocole. Cela empêche les processus de rester bloqués indéfiniment en attente d’un message.

NOTE : L’option protocol-timeout doit être supérieure à l’option db-timeout.

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

Option Keep Alive (--sck-keep-alive)

Activation du keep-alive.

Active les messages keep-alive sur les connexions socket.

default: y
example: --no-sck-keep-alive

Option stanza (--stanza)

Définit la stanza.

Une stanza est la configuration d’un cluster de base de données PostgreSQL qui définit son emplacement, la manière dont il sera sauvegardé, les options d’archivage, etc. La plupart des serveurs de base de données n’ont qu’un seul cluster PostgreSQL et donc une seule stanza, tandis que les serveurs de sauvegarde ont une stanza pour chaque cluster de base de données à sauvegarder.

Il est tentant de nommer la stanza en fonction du cluster principal, mais un nom plus pertinent décrit les bases de données contenues dans le cluster. Étant donné que le nom de la stanza sera utilisé pour le principal et toutes les répliques, il est préférable de choisir un nom qui décrit la fonction réelle du cluster, par exemple app ou dw, plutôt que le nom local du cluster, comme main ou prod.

example: --stanza=main

Option de nombre de connexions Keep Alive (--tcp-keep-alive-count)

Nombre de maintien de connexion.

Spécifie le nombre de messages TCP keep-alive pouvant être perdus avant que la connexion ne soit considérée comme inactive.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPCNT.

allowed: [1, 32]
example: --tcp-keep-alive-count=3

Option d’idle Keep Alive (--tcp-keep-alive-idle)

Délai d’inactivité pour la maintien de la connexion.

Spécifie la durée (en secondes) pendant laquelle aucune activité réseau ne se produit, après laquelle le système d’exploitation doit envoyer un message de maintien de connexion TCP.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPIDLE.

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

Option Intervalle Keep Alive (--tcp-keep-alive-interval)

Intervalle de temps pour la maintien de la connexion active.

Spécifie la durée (en secondes) après laquelle un message TCP keep-alive non reconnu doit être renvoyé.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPINTVL.

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

Suites de chiffrement TLSv1.2 Option (--tls-cipher-12)

Suites de chiffrement TLSv1.2 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. L’exemple proposé constitue un choix raisonnable sauf si des exigences de sécurité spécifiques s’appliquent. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

Suites de chiffrement TLSv1.3 Option (--tls-cipher-13)

Suites de chiffrement TLSv1.3 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Options de journalisation

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: --log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: --log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: --log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

Option de journalisation des sous-processus (--log-subprocess)

Activer la journalisation dans les sous-processus.

Activez la journalisation des fichiers pour tout sous-processus créé par ce processus, en utilisant le niveau de journalisation spécifié par log-level-file.

default: n
example: --log-subprocess

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: --no-log-timestamp

Options du dépôt

Définir l’option dépôt (--repo)

Définir le dépôt.

Spécifiez le dépôt sur lequel une commande doit s’opérer.

Par exemple, cette option peut être utilisée pour effectuer une restauration à partir d’un dépôt spécifique, plutôt que de laisser pgBackRest choisir.

allowed: [1, 256]
example: --repo=1

Option de conteneur de dépôt Azure (--repo-azure-container)

Conteneur de dépôt Azure.

Conteneur Azure utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés dans la racine du conteneur en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par Azure dans le conteneur.

example: --repo1-azure-container=pg-backup

Type de clé du dépôt Azure (--repo-azure-key-type)

Type de clé du dépôt Azure.

Les types suivants sont pris en charge pour l’autorisation :

  • shared - Clé partagée
  • sas - Signature d’accès partagé
  • auto - Autorisation automatique à l’aide d’identités managées Azure
default: shared
example: --repo1-azure-key-type=sas

Option de style d’URI de dépôt Azure (--repo-azure-uri-style)

Style URI Azure.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte account.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer le compte aux URI.
default: host
example: --repo1-azure-uri-style=path

Type de chiffrement du dépôt (--repo-cipher-type)

Chiffrement utilisé pour chiffrer le dépôt.

Les types de chiffrement suivants sont pris en charge :

  • none - Le dépôt n’est pas chiffré
  • aes-256-cbc - Advanced Encryption Standard avec une longueur de clé de 256 bits

Notez que le chiffrement est toujours effectué côté client, même si le type de dépôt (par exemple S3) prend en charge le chiffrement.

default: none
example: --repo1-cipher-type=aes-256-cbc

Option de bac de dépôt GCS (--repo-gcs-bucket)

Dépôt de bucket GCS.

Dépôt GCS utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par GCS dans le bucket.

example: --repo1-gcs-bucket=/pg-backup

Option de point de terminaison du dépôt GCS (--repo-gcs-endpoint)

Point de terminaison du dépôt GCS.

Point d’accès utilisé pour se connecter au service de stockage. Peut être mis à jour pour utiliser un serveur local GCS ou un point d’accès alternatif.

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

Type de clé du dépôt GCS (--repo-gcs-key-type)

Type de clé du dépôt GCS.

Les types suivants sont pris en charge pour l’autorisation :

  • auto - Autoriser à l’aide du compte de service de l’instance.
  • service - Compte de service à partir d’une clé stockée localement.
  • token - À utiliser pour les tests locaux, par exemple fakegcs.

Lorsque repo-gcs-key-type=service, les identifiants seront rechargés lorsque le jeton d’authentification sera renouvelé.

default: service
example: --repo1-gcs-key-type=auto

Option ID du projet du dépôt GCS (--repo-gcs-user-project)

Identifiant du projet GCS.

ID du projet GCS utilisé pour déterminer la facturation des requêtes.

example: --repo1-gcs-user-project=my-project

Option hôte du dépôt (--repo-host)

Hôte du dépôt lors de l’opération à distance.

Lors de la sauvegarde et de l’archivage vers un système de fichiers monté localement, ce paramètre n’est pas requis.

example: --repo1-host=repo1.domain.com

Nom obsolète : backup-host

Option du fichier de l’autorité de certification hôte du dépôt (--repo-host-ca-file)

Fichier de l’autorité de certification du serveur de dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte du dépôt.

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’autorité de certification du dépôt (--repo-host-ca-path)

Chemin de l’autorité de certification du serveur de dépôt.

Utilisez un chemin de certificat d’autorité (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte du dépôt.

example: --repo1-host-ca-path=/etc/pki/tls/certs

Option de fichier de certificat d’hôte du dépôt (--repo-host-cert-file)

Fichier de certificat d’hôte du dépôt.

Envoyé à l’hôte du dépôt pour prouver l’identité du client.

example: --repo1-host-cert-file=/path/to/client.crt

Option de commande hôte du dépôt (--repo-host-cmd)

Hôte du dépôt commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes local et de dépôt. Si non défini, la commande de dépôt sera définie de la même manière que celle de l’hôte local.

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : backup-cmd

Option de configuration de l’hôte du dépôt (--repo-host-config)

Fichier de configuration du serveur de dépôt pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le fichier de configuration de l’hôte du dépôt se trouve dans un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : sauvegarde-config

Option de chemin d’inclusion de configuration d’hôte de dépôt (--repo-host-config-include-path)

Configuration du serveur de dépôt pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration de l’hôte du dépôt est différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

Chemin de configuration de l’hôte du dépôt (--repo-host-config-path)

Chemin de configuration du serveur de dépôt pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin de configuration de l’hôte du dépôt est différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

Option de fichier de clé hôte du dépôt (--repo-host-key-file)

Fichier de clé hôte du dépôt.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --repo1-host-key-file=/path/to/client.key

Option de port hôte du dépôt (--repo-host-port)

Port de l’hôte du dépôt lorsque repo-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole du serveur du dépôt.

NOTE : Lorsque repo-host-type=ssh, il n’existe pas de valeur par défaut pour repo-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

Nom obsolète : backup-ssh-port

Type de protocole d’hôte de dépôt (--repo-host-type)

Type de protocole d’hôte de dépôt.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --repo1-host-type=tls

Option d’utilisateur hôte de dépôt (--repo-host-user)

Utilisateur hôte du dépôt lorsque repo-host est défini.

Définit l’utilisateur utilisé pour les opérations sur l’hôte du dépôt. Il est préférable que ce ne soit pas l’utilisateur postgres, mais plutôt un autre utilisateur tel que pgbackrest. Si PostgreSQL s’exécute sur l’hôte du dépôt, l’utilisateur postgres peut être ajouté au groupe pgbackrest afin d’avoir des permissions de lecture sur le dépôt sans pouvoir accidentellement le modifier.

default: pgbackrest
example: --repo1-host-user=repo-user

Nom obsolète : backup-user

Option Chemin du dépôt (--repo-path)

Chemin où les sauvegardes et l’archive sont stockées.

Le dépôt est l’emplacement où pgBackRest stocke les sauvegardes et les archives des segments WAL.

Il peut être difficile de prévoir à l’avance l’espace nécessaire. La meilleure approche consiste à effectuer quelques sauvegardes, puis à noter la taille des différents types de sauvegardes (pleines, incrémentielles, différentielles) et à mesurer la quantité de WAL générée par jour. Cela vous donnera une idée générale de l’espace requis, bien que les besoins évoluent probablement au fil du temps avec l’évolution de votre base de données.

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

Option de bac de dépôt S3 (--repo-s3-bucket)

Dépôt S3.

Dépôt S3 utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par AWS dans le bucket.

example: --repo1-s3-bucket=pg-backup

Option de point de terminaison du dépôt S3 (--repo-s3-endpoint)

Point de terminaison du dépôt S3.

Le point de terminaison AWS doit être valide pour la région sélectionnée.

Pour les configurations personnalisées ou les tests, les options repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port, et repo-storage-verify-tls peuvent être utiles.

example: --repo1-s3-endpoint=s3.amazonaws.com

Type de clé du dépôt S3 (--repo-s3-key-type)

Type de clé pour le dépôt S3.

Les types suivants sont pris en charge :

  • shared - Clés partagées
  • auto - Récupérer automatiquement les identifiants temporaires
  • web-id - Récupérer automatiquement les identifiants d’identité web
  • pod-id - Récupérer automatiquement les identifiants d’identité de pod EKS
  • process - Récupérer les identifiants en exécutant un processus
default: shared
example: --repo1-s3-key-type=auto

Option ID de clé KMS pour dépôt S3 (--repo-s3-kms-key-id)

Clé KMS du dépôt S3.

Active le chiffrement côté serveur S3 en utilisant la clé du service de gestion des clés AWS spécifiée.

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

Option de commande du processus d’authentification S3 (--repo-s3-process-cmd)

Commande du processus d’authentification S3.

Commande (et arguments facultatifs) à exécuter pour récupérer les identifiants temporaires S3. Le premier élément de la liste est la commande, les éléments suivants sont passés en tant que paramètres.

Le processus doit produire un JSON contenant les champs AccessKeyId, SecretAccessKey, SessionToken et Expiration. Les identifiants seront automatiquement actualisés avant l’expiration. Voir Process Credential Provider pour les détails du format.

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

Option de région du dépôt S3 (--repo-s3-region)

Région du dépôt S3.

La région AWS où le bucket a été créé.

example: --repo1-s3-region=us-east-1

Option Requesteur Payant pour le dépôt S3 (--repo-s3-requester-pays)

Dépôt S3 payeur de la demande.

Active le paiement par le demandeur S3.

default: n
example: --no-repo1-s3-requester-pays

Option de rôle du dépôt S3 (--repo-s3-role)

Rôle du dépôt S3.

Le nom du rôle AWS (pas le nom ARN complet) utilisé pour récupérer les identifiants temporaires lorsque repo-s3-key-type=auto.

example: --repo1-s3-role=authrole

Option de service de dépôt S3 (--repo-s3-service)

Service de signature S3.

Le service de signature S3 utilisé dans l’authentification SigV4. La valeur par défaut est s3 pour les points d’accès S3 standards. À définir sur s3-outposts lors de l’utilisation d’un point d’accès S3 Outposts.

default: s3
example: --repo1-s3-service=s3-outposts

Option de point de terminaison STS du dépôt S3 (--repo-s3-sts-host)

Point de terminaison STS du dépôt S3.

Point de terminaison STS utilisé pour récupérer des identifiants temporaires lorsque repo-s3-key-type=web-id est configuré. Définissez-le sur un point de terminaison régional (par exemple sts.us-east-1.amazonaws.com) pour utiliser STS régional, ce qui peut être nécessaire pour les régions GovCloud, Chine, ou pour réduire la latence.

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

Option de style d’URI de dépôt S3 (--repo-s3-uri-style)

Style d’URI S3.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte bucket.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer les URI par le répertoire.
default: host
example: --repo1-s3-uri-style=path

Option hôte du dépôt SFTP (--repo-sftp-host)

Hôte du dépôt SFTP.

Hôte SFTP contenant le dépôt.

example: --repo1-sftp-host=sftprepo.domain

Fingerprint de l’hôte du dépôt SFTP (--repo-sftp-host-fingerprint)

Empreinte du serveur hôte du dépôt SFTP.

La génération de l’empreinte d’hôte du dépôt SFTP doit correspondre à repo-sftp-host-key-hash-type. Générez l’empreinte via awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Les clés d’hôte SSH se trouvent normalement dans le répertoire /etc/ssh.

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

Type d’option de vérification de la clé hôte SFTP (--repo-sftp-host-key-check-type)

Type de vérification de la clé hôte SFTP.

Les types de vérification de clé d’hôte SFTP suivants sont pris en charge :

  • strict - pgBackRest n’ajoutera jamais automatiquement les clés d’hôte au fichier ~/.ssh/known_hosts, et refusera de se connecter aux hôtes dont la clé d’hôte a changé ou n’est pas trouvée dans les fichiers known hosts. Cette option oblige l’utilisateur à ajouter manuellement tous les nouveaux hôtes.
  • accept-new - pgBackRest ajoutera automatiquement les nouvelles clés d’hôte au fichier known hosts de l’utilisateur, mais n’autorisera pas les connexions aux hôtes dont la clé d’hôte a changé.
  • fingerprint - pgBackRest vérifiera la clé d’hôte contre l’empreinte spécifiée par l’option repo-sftp-host-fingerprint.
  • none - aucune vérification de clé d’hôte ne sera effectuée.
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

Type de hachage de la clé hôte du dépôt SFTP (--repo-sftp-host-key-hash-type)

Type de hachage de la clé d’hôte du dépôt SFTP.

Type de hachage de la clé hôte du dépôt SFTP. Déclare le type de hachage à utiliser pour calculer le hachage de la clé hôte du système distant au démarrage SSH. Les versions plus récentes de libssh2 prennent en charge sha256 en plus de md5 et sha1.

example: --repo1-sftp-host-key-hash-type=sha256

Option de port hôte du dépôt SFTP (--repo-sftp-host-port)

Port hôte du dépôt SFTP.

Port hôte du dépôt SFTP.

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

Option utilisateur hôte dépôt SFTP (--repo-sftp-host-user)

Utilisateur hôte du dépôt SFTP.

Utilisateur sur l’hôte utilisé pour stocker le dépôt.

example: --repo1-sftp-host-user=pg-backup

Option fichier Hôtes SFTP connus (--repo-sftp-known-host)

Fichier d’hôtes SFTP connus.

Fichier known hosts à consulter pour rechercher une correspondance avec un hôte SFTP lors de l’authentification. Si non spécifié, pgBackRest recherchera par défaut dans ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts et /etc/ssh/ssh_known_hosts2. Si configuré avec un ou plusieurs chemins de fichier, pgBackRest recherchera dans ces fichiers une correspondance. Les chemins de fichier doivent être complets ou commencer par un tilde. L’option repo-sftp-known-host peut être spécifiée plusieurs fois pour indiquer plusieurs fichiers known hosts à consulter. Pour utiliser la vérification du fichier known hosts, l’option repo-sftp-host-fingerprint ne doit pas être définie. Voir également l’option repo-sftp-host-check-type.

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

Option fichier de clé privée du dépôt SFTP (--repo-sftp-private-key-file)

Fichier de clé privée SFTP.

Fichier de clé privée SFTP utilisé pour l’authentification.

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

Option de fichier de clé publique du dépôt SFTP (--repo-sftp-public-key-file)

Fichier de clé publique SFTP.

Fichier de clé publique SFTP utilisé pour l’authentification. Facultatif si compilé contre OpenSSL, obligatoire si compilé contre une autre bibliothèque.

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

Option du fichier CA du dépôt de stockage (--repo-storage-ca-file)

Fichier de certificat d’autorité de certification pour le dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Noms obsolètes : repo-azure-ca-file, repo-s3-ca-file

Option de chemin du certificat CA TLS pour le dépôt (--repo-storage-ca-path)

Chemin du certificat d’autorité de certification du dépôt.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-path=/etc/pki/tls/certs

Noms obsolètes : repo-azure-ca-path, repo-s3-ca-path

Option hôte de stockage du dépôt (--repo-storage-host)

Hôte de stockage du dépôt.

Se connecter à un hôte autre que le point de terminaison de stockage (par exemple S3, Azure). Cela est généralement utilisé pour les tests.

example: --repo1-storage-host=127.0.0.1

Noms obsolètes : repo-azure-host, repo-s3-host

Option de port du stockage du dépôt (--repo-storage-port)

Port du stockage du dépôt.

Port à utiliser lors de la connexion au point de terminaison du stockage (par exemple S3, Azure) ou à l’hôte (le cas échéant).

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

Noms obsolètes : repo-azure-port, repo-s3-port

Option d’étiquette de stockage du dépôt (--repo-storage-tag)

Étiquette(s) de stockage du dépôt.

Spécifiez les balises à ajouter aux objets lorsque le dépôt est un magasin d’objets (par exemple, S3). L’option peut être répétée pour ajouter plusieurs balises.

Il n’existe aucune fonctionnalité dans pgBackRest permettant de modifier ces balises ; veillez donc à les définir correctement avant d’exécuter stanza-create afin d’assurer une cohérence des balises dans l’ensemble du dépôt.

example: --repo1-storage-tag=key1=value1

Option de taille de morceau de chargement du dépôt (--repo-storage-upload-chunk-size)

Taille du morceau de chargement du dépôt.

Les magasins d’objets tels que S3 permettent de télécharger des fichiers par morceaux lorsque le fichier est trop volumineux pour être stocké en mémoire. Même si le fichier peut être stocké en mémoire, il est plus efficace en mémoire de limiter la quantité de mémoire utilisée pour les téléchargements.

Une taille de morceau plus élevée entraîne généralement de meilleures performances, car elle réduit le nombre de requêtes de téléchargement et permet de télécharger plus de fichiers en une seule requête plutôt qu’en morceaux. Le désavantage est que la consommation mémoire sera plus élevée, et comme la mémoire tampon de morceau doit être allouée par processus, des valeurs plus élevées de process-max entraînent une consommation mémoire globale plus importante.

Notez que les tailles de morceau valides varient selon le type de stockage et la plateforme. Par exemple, AWS S3 impose une taille minimale de morceau de 5MiB. La terminologie relative à la taille du morceau varie selon le type de stockage ; utilisez donc « part size » pour AWS S3, « chunk size » pour GCS et « block size » pour Azure lorsque vous recherchez les valeurs minimales ou maximales.

Si un fichier est plus grand que 1GiB (la taille maximale que PostgreSQL crée par défaut), la taille de tranche sera augmentée progressivement jusqu’à la valeur maximale autorisée afin de terminer le téléchargement du fichier.

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

Option de vérification du certificat de stockage du dépôt (--repo-storage-verify-tls)

Vérification du certificat du dépôt de stockage.

Cette option permet d’activer/désactiver la vérification du certificat TLS du serveur de stockage (par exemple, S3, Azure). La désactivation ne doit être utilisée que pour des tests ou d’autres scénarios où un certificat a été auto-signé.

default: y
example: --no-repo1-storage-verify-tls

Noms obsolètes : repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

Option de type de dépôt (--repo-type)

Type de stockage utilisé pour le dépôt.

Les types de dépôt suivants sont pris en charge :

  • azure - Service de stockage Blob Azure
  • cifs - Comme posix, mais désactive les liens et les fsyncs de répertoire
  • gcs - Google Cloud Storage
  • posix - Systèmes de fichiers conformes à Posix
  • s3 - AWS Simple Storage Service
  • sftp - Protocole de transfert de fichiers sécurisé

Lorsqu’un montage NFS est utilisé comme dépôt posix, les mêmes règles s’appliquent à pgBackRest qu’indiquées dans la documentation PostgreSQL : Création d’un cluster de base de données - Systèmes de fichiers .

default: posix
example: --repo1-type=cifs

4.2 - Commande d’archive (archive-get)

Référence des options et du comportement de la commande pgBackRest archive-get.

Cette commande est utilisée par PostgreSQL pour effectuer une restauration, une récupération jusqu’à un instant précis (PITR), ou en tant qu’alternative au streaming afin de maintenir une réplique à jour. Les segments WAL sont requis pour la récupération de PostgreSQL ou pour maintenir une réplique.

Lorsque plusieurs dépôts sont configurés, les fichiers WAL seront récupérés dans l’ordre de priorité des dépôts (par exemple repo1, repo2, etc.). En général, il est préférable que les dépôts plus rapides ou moins coûteux aient une priorité plus élevée. Si un dépôt est spécifié avec l’option --repo, seul ce dépôt sera recherché.

La commande archive-get est configurée et générée par pgBackRest lors d’une restauration afin d’être utilisée par PostgreSQL. Voir Restauration à un instant donné pour un exemple.

Options de commande

Option d’archivage asynchrone (--archive-async)

Envoyer/récupérer les segments WAL de manière asynchrone.

Active l’exécution asynchrone pour les commandes archive-push et archive-get.

L’opération asynchrone est plus efficace car elle permet de réutiliser les connexions et de tirer parti de la parallélisation. Consultez les options spool-path, archive-get-queue-max et archive-push-queue-max pour plus d’informations.

default: n
example: --archive-async

Taille maximale de la file d’attente de récupération d’archive (--archive-get-queue-max)

Taille maximale de la file d’attente archive-get de pgBackRest.

Spécifie la taille maximale de la file d’attente archive-get lorsque archive-async est activé. La file est stockée dans spool-path et sert à accélérer la fourniture des WAL à PostgreSQL.

default: 128MiB
allowed: [0B, 4PiB]
example: --archive-get-queue-max=1GiB

Option de réessai du segment WAL manquant (--archive-missing-retry)

Réessayer le segment WAL manquant

Réessayer un segment WAL précédemment signalé comme manquant par la commande archive-get en mode asynchrone. Cela empêche l’utilisation de notifications provenant d’une restauration antérieure dans le répertoire de stockage temporaire, qui pourrait entraîner une défaillance de récupération si la cohérence n’a pas été atteinte.

Désactiver cette option permet à PostgreSQL de reconnaître plus fiablement l’arrivée à la fin du WAL dans l’archive, ce qui permet de passer au streaming depuis le principal. Avec les réessais activés, un flux continu de WAL archivé fait que PostgreSQL continue de récupérer le WAL depuis l’archive au lieu de basculer vers le streaming.

Lorsque cette option est désactivée, il est important de s’assurer que le chemin d’épissage de la stanza est vide. La commande restore effectue automatiquement cette opération si le chemin d’épissage est configuré au moment de la restauration. Sinon, il incombe à l’utilisateur de s’assurer que le chemin d’épissage est vide.

default: y
example: --no-archive-missing-retry

Option délai d’archivage (--archive-timeout)

Délai d’attente de l’archive.

Définir le délai maximal, en secondes, d’attente pour chaque segment WAL afin qu’il atteigne le dépôt d’archive pgBackRest. Ce délai s’applique aux commandes check et backup lors de l’attente des segments WAL nécessaires à la cohérence de la sauvegarde.

default: 1m
allowed: [100ms, 1d]
example: --archive-timeout=30

Options générales

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: n
example: --allow-root

Option Taille tampon (--buffer-size)

Taille du tampon pour les opérations d’E/S.

Taille de tampon utilisée pour les opérations de copie, de compression, de chiffrement et autres. Le nombre de tampons utilisés dépend des options, et chaque opération peut utiliser une mémoire supplémentaire, par exemple, la compression gz peut utiliser jusqu’à 256KiB de mémoire supplémentaire.

Les valeurs autorisées sont 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB et 16MiB.

default: 1MiB
example: --buffer-size=2MiB

Option de commande pgBackRest (--cmd)

Commande pgBackRest.

pgBackRest peut générer une chaîne de commande, par exemple lorsque la commande restore génère le paramètre restore_command. Dans ce cas, la commande utilisée pour exécuter le processus pgBackRest sera employée, sauf si l’option cmd est fournie.

AVERTISSEMENT :

Envelopper la commande pgBackRest peut entraîner un comportement imprévisible et n’est pas recommandé.

default: [path of executed pgbackrest binary]
example: --cmd=/var/lib/pgsql/bin/pgbackrest_wrapper.sh

Option de commande client SSH (--cmd-ssh)

Commande cliente SSH.

Utilisez une commande cliente SSH spécifique lorsque vous souhaitez utiliser une alternative ou que la commande ssh n’est pas disponible dans $PATH.

default: ssh
example: --cmd-ssh=/usr/bin/ssh

Option niveau de compression réseau (--compress-level-network)

Niveau de compression du réseau.

Définit le niveau de compression réseau lorsque compress-type=none et la commande ne sont pas exécutées sur le même hôte que le dépôt. La compression est utilisée pour réduire le trafic réseau. Lorsque compress-type est différent de none, le paramètre compress-level-network est ignoré et compress-level est utilisé à la place, afin que le fichier ne soit compressé qu’une seule fois.

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

Option de configuration (--config)

Fichier de configuration pgBackRest.

Utilisez cette option pour spécifier un fichier de configuration différent du fichier par défaut.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

Option Chemin d’inclusion de configuration (--config-include-path)

Chemin vers les fichiers de configuration supplémentaires de pgBackRest.

Les fichiers de configuration se trouvant dans l’emplacement spécifié et ayant l’extension .conf seront concaténés au fichier de configuration de pgBackRest, ce qui donne un seul fichier de configuration.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration (--config-path)

Chemin de base des fichiers de configuration de pgBackRest.

Ce paramètre est utilisé pour remplacer le chemin de base par défaut pour les options --config et --config-include-path, sauf si ces dernières sont explicitement définies en ligne de commande.

Par exemple, passer uniquement --config-path=/conf/pgbackrest fait que la valeur par défaut de --config est définie à /conf/pgbackrest/pgbackrest.conf et que la valeur par défaut de --config-include-path est définie à /conf/pgbackrest/conf.d.

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

Option d’expiration I/O (--io-timeout)

Délai d’attente d’E/S dépassé.

Délai d’attente, en secondes, utilisé pour les connexions et les opérations de lecture/écriture.

Notez que l’opération de lecture/écriture entière n’a pas besoin de se terminer dans ce délai d’attente, mais une certaine progression doit être réalisée, même si elle ne concerne qu’un seul octet.

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

Option Chemin verrou (--lock-path)

Chemin où les fichiers verrou sont stockés.

Le chemin de verrouillage fournit un emplacement où pgBackRest peut créer des fichiers de verrouillage afin d’empêcher l’exécution simultanée d’opérations en conflit.

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

Option de masque neutre (--neutral-umask)

Utilisez un umask neutre.

Définit le umask à 0000 afin que les modes du dépôt soient créés de manière cohérente. Le mode par défaut du répertoire est 0750 et le mode par défaut du fichier est 0640.

Pour utiliser le umask de l’utilisateur en cours, spécifiez neutral-umask=n dans le fichier de configuration ou --no-neutral-umask en ligne de commande.

default: y
example: --no-neutral-umask

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: --priority=19

Option de processus maximum (--process-max)

Nombre maximal de processus à utiliser pour la compression ou le transfert.

Chaque processus effectuera une compression et un transfert afin d’accélérer l’exécution de la commande, mais ne définissez pas process-max trop élevé afin de ne pas affecter les performances de la base de données.

default: 1
allowed: [1, 999]
example: --process-max=4

Option délai d’attente du protocole (--protocol-timeout)

Délai d’attente du protocole.

Définit le délai d’attente, en secondes, durant lequel le processus local ou distant attend qu’un nouveau message soit reçu au niveau du protocole. Cela empêche les processus de rester bloqués indéfiniment en attente d’un message.

NOTE : L’option protocol-timeout doit être supérieure à l’option db-timeout.

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

Option Keep Alive (--sck-keep-alive)

Activation du keep-alive.

Active les messages keep-alive sur les connexions socket.

default: y
example: --no-sck-keep-alive

Option Chemin de répertoire d’attente (--spool-path)

Chemin où les données transitoires sont stockées.

Ce chemin est utilisé pour stocker les données de la commande asynchrone archive-push et archive-get.

La commande asynchrone archive-push écrit des accusés de réception dans le répertoire de spool après avoir correctement stocké le WAL dans l’archive, ou une erreur en cas d’échec, afin que le processus au premier plan puisse informer rapidement PostgreSQL. Ces fichiers sont très petits : vides en cas de succès et de quelques centaines d’octets en cas d’erreur.

La commande asynchrone archive-get met en file d’attente les fichiers WAL dans le répertoire de stockage provisoire afin de pouvoir les fournir très rapidement lorsque PostgreSQL les demande. Le déplacement des fichiers vers PostgreSQL est le plus efficace lorsque le répertoire de stockage provisoire se trouve sur le même système de fichiers que pg_xlog/pg_wal. Toutefois, il n’est pas recommandé de placer le répertoire de stockage provisoire à l’intérieur du répertoire pg_xlog/pg_wal, car cela pourrait entraîner des problèmes pour les utilitaires PostgreSQL tels que pg_rewind.

Les données stockées dans le chemin d’attente ne sont pas strictement temporaires, car elles peuvent et doivent survivre à un redémarrage. Toutefois, leur perte n’est pas problématique. pgBackRest vérifiera simplement chaque segment WAL afin de s’assurer qu’il est correctement archivé pour archive-push et reconstruira la file d’attente pour archive-get.

Le chemin d’attente doit être situé sur un système de fichiers local compatible Posix, et non sur un système de fichiers distant tel que NFS ou CIFS.

default: /var/spool/pgbackrest
example: --spool-path=/backup/db/spool

Option stanza (--stanza)

Définit la stanza.

Une stanza est la configuration d’un cluster de base de données PostgreSQL qui définit son emplacement, la manière dont il sera sauvegardé, les options d’archivage, etc. La plupart des serveurs de base de données n’ont qu’un seul cluster PostgreSQL et donc une seule stanza, tandis que les serveurs de sauvegarde ont une stanza pour chaque cluster de base de données à sauvegarder.

Il est tentant de nommer la stanza en fonction du cluster principal, mais un nom plus pertinent décrit les bases de données contenues dans le cluster. Étant donné que le nom de la stanza sera utilisé pour le principal et toutes les répliques, il est préférable de choisir un nom qui décrit la fonction réelle du cluster, par exemple app ou dw, plutôt que le nom local du cluster, comme main ou prod.

example: --stanza=main

Option de nombre de connexions Keep Alive (--tcp-keep-alive-count)

Nombre de maintien de connexion.

Spécifie le nombre de messages TCP keep-alive pouvant être perdus avant que la connexion ne soit considérée comme inactive.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPCNT.

allowed: [1, 32]
example: --tcp-keep-alive-count=3

Option d’idle Keep Alive (--tcp-keep-alive-idle)

Délai d’inactivité pour la maintien de la connexion.

Spécifie la durée (en secondes) pendant laquelle aucune activité réseau ne se produit, après laquelle le système d’exploitation doit envoyer un message de maintien de connexion TCP.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPIDLE.

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

Option Intervalle Keep Alive (--tcp-keep-alive-interval)

Intervalle de temps pour la maintien de la connexion active.

Spécifie la durée (en secondes) après laquelle un message TCP keep-alive non reconnu doit être renvoyé.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPINTVL.

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

Suites de chiffrement TLSv1.2 Option (--tls-cipher-12)

Suites de chiffrement TLSv1.2 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. L’exemple proposé constitue un choix raisonnable sauf si des exigences de sécurité spécifiques s’appliquent. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

Suites de chiffrement TLSv1.3 Option (--tls-cipher-13)

Suites de chiffrement TLSv1.3 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Options de journalisation

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: --log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: --log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: --log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

Option de journalisation des sous-processus (--log-subprocess)

Activer la journalisation dans les sous-processus.

Activez la journalisation des fichiers pour tout sous-processus créé par ce processus, en utilisant le niveau de journalisation spécifié par log-level-file.

default: n
example: --log-subprocess

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: --no-log-timestamp

Options du mainteneur

Option de version PostgreSQL obligatoire (--pg-version-force)

Forcer la version de PostgreSQL.

La version de PostgreSQL spécifiée sera utilisée à la place de la version détectée automatiquement en lisant pg_control ou les en-têtes WAL. Cela est principalement utile pour les forks de PostgreSQL ou les versions de développement où ces valeurs diffèrent de la version de publication. La version rapportée par PostgreSQL via server_version_num doit correspondre à la version forcée.

AVERTISSEMENT :

Faites preuve de prudence en utilisant cette option, car pg_control et les en-têtes WAL seront toujours lus selon le format attendu pour la version spécifiée, c’est-à-dire le format issu de la version open-source officielle de PostgreSQL. Si la version fork ou développée modifie le format des champs sur lesquels pgBackRest dépend, cela entraînera un comportement imprévu. En général, cette option ne fonctionnera correctement que si le fork ajoute tous les membres de structure personnalisés après les membres standard de PostgreSQL.

example: --pg-version-force=15

Options du dépôt

Définir l’option dépôt (--repo)

Définir le dépôt.

Spécifiez le dépôt sur lequel une commande doit s’opérer.

Par exemple, cette option peut être utilisée pour effectuer une restauration à partir d’un dépôt spécifique, plutôt que de laisser pgBackRest choisir.

allowed: [1, 256]
example: --repo=1

Option de conteneur de dépôt Azure (--repo-azure-container)

Conteneur de dépôt Azure.

Conteneur Azure utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés dans la racine du conteneur en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par Azure dans le conteneur.

example: --repo1-azure-container=pg-backup

Type de clé du dépôt Azure (--repo-azure-key-type)

Type de clé du dépôt Azure.

Les types suivants sont pris en charge pour l’autorisation :

  • shared - Clé partagée
  • sas - Signature d’accès partagé
  • auto - Autorisation automatique à l’aide d’identités managées Azure
default: shared
example: --repo1-azure-key-type=sas

Option de style d’URI de dépôt Azure (--repo-azure-uri-style)

Style URI Azure.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte account.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer le compte aux URI.
default: host
example: --repo1-azure-uri-style=path

Type de chiffrement du dépôt (--repo-cipher-type)

Chiffrement utilisé pour chiffrer le dépôt.

Les types de chiffrement suivants sont pris en charge :

  • none - Le dépôt n’est pas chiffré
  • aes-256-cbc - Advanced Encryption Standard avec une longueur de clé de 256 bits

Notez que le chiffrement est toujours effectué côté client, même si le type de dépôt (par exemple S3) prend en charge le chiffrement.

default: none
example: --repo1-cipher-type=aes-256-cbc

Option de bac de dépôt GCS (--repo-gcs-bucket)

Dépôt de bucket GCS.

Dépôt GCS utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par GCS dans le bucket.

example: --repo1-gcs-bucket=/pg-backup

Option de point de terminaison du dépôt GCS (--repo-gcs-endpoint)

Point de terminaison du dépôt GCS.

Point d’accès utilisé pour se connecter au service de stockage. Peut être mis à jour pour utiliser un serveur local GCS ou un point d’accès alternatif.

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

Type de clé du dépôt GCS (--repo-gcs-key-type)

Type de clé du dépôt GCS.

Les types suivants sont pris en charge pour l’autorisation :

  • auto - Autoriser à l’aide du compte de service de l’instance.
  • service - Compte de service à partir d’une clé stockée localement.
  • token - À utiliser pour les tests locaux, par exemple fakegcs.

Lorsque repo-gcs-key-type=service, les identifiants seront rechargés lorsque le jeton d’authentification sera renouvelé.

default: service
example: --repo1-gcs-key-type=auto

Option ID du projet du dépôt GCS (--repo-gcs-user-project)

Identifiant du projet GCS.

ID du projet GCS utilisé pour déterminer la facturation des requêtes.

example: --repo1-gcs-user-project=my-project

Option hôte du dépôt (--repo-host)

Hôte du dépôt lors de l’opération à distance.

Lors de la sauvegarde et de l’archivage vers un système de fichiers monté localement, ce paramètre n’est pas requis.

example: --repo1-host=repo1.domain.com

Nom obsolète : backup-host

Option du fichier de l’autorité de certification hôte du dépôt (--repo-host-ca-file)

Fichier de l’autorité de certification du serveur de dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte du dépôt.

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’autorité de certification du dépôt (--repo-host-ca-path)

Chemin de l’autorité de certification du serveur de dépôt.

Utilisez un chemin de certificat d’autorité (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte du dépôt.

example: --repo1-host-ca-path=/etc/pki/tls/certs

Option de fichier de certificat d’hôte du dépôt (--repo-host-cert-file)

Fichier de certificat d’hôte du dépôt.

Envoyé à l’hôte du dépôt pour prouver l’identité du client.

example: --repo1-host-cert-file=/path/to/client.crt

Option de commande hôte du dépôt (--repo-host-cmd)

Hôte du dépôt commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes local et de dépôt. Si non défini, la commande de dépôt sera définie de la même manière que celle de l’hôte local.

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : backup-cmd

Option de configuration de l’hôte du dépôt (--repo-host-config)

Fichier de configuration du serveur de dépôt pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le fichier de configuration de l’hôte du dépôt se trouve dans un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : sauvegarde-config

Option de chemin d’inclusion de configuration d’hôte de dépôt (--repo-host-config-include-path)

Configuration du serveur de dépôt pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration de l’hôte du dépôt est différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

Chemin de configuration de l’hôte du dépôt (--repo-host-config-path)

Chemin de configuration du serveur de dépôt pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin de configuration de l’hôte du dépôt est différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

Option de fichier de clé hôte du dépôt (--repo-host-key-file)

Fichier de clé hôte du dépôt.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --repo1-host-key-file=/path/to/client.key

Option de port hôte du dépôt (--repo-host-port)

Port de l’hôte du dépôt lorsque repo-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole du serveur du dépôt.

NOTE : Lorsque repo-host-type=ssh, il n’existe pas de valeur par défaut pour repo-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

Nom obsolète : backup-ssh-port

Type de protocole d’hôte de dépôt (--repo-host-type)

Type de protocole d’hôte de dépôt.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --repo1-host-type=tls

Option d’utilisateur hôte de dépôt (--repo-host-user)

Utilisateur hôte du dépôt lorsque repo-host est défini.

Définit l’utilisateur utilisé pour les opérations sur l’hôte du dépôt. Il est préférable que ce ne soit pas l’utilisateur postgres, mais plutôt un autre utilisateur tel que pgbackrest. Si PostgreSQL s’exécute sur l’hôte du dépôt, l’utilisateur postgres peut être ajouté au groupe pgbackrest afin d’avoir des permissions de lecture sur le dépôt sans pouvoir accidentellement le modifier.

default: pgbackrest
example: --repo1-host-user=repo-user

Nom obsolète : backup-user

Option Chemin du dépôt (--repo-path)

Chemin où les sauvegardes et l’archive sont stockées.

Le dépôt est l’emplacement où pgBackRest stocke les sauvegardes et les archives des segments WAL.

Il peut être difficile de prévoir à l’avance l’espace nécessaire. La meilleure approche consiste à effectuer quelques sauvegardes, puis à noter la taille des différents types de sauvegardes (pleines, incrémentielles, différentielles) et à mesurer la quantité de WAL générée par jour. Cela vous donnera une idée générale de l’espace requis, bien que les besoins évoluent probablement au fil du temps avec l’évolution de votre base de données.

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

Option de bac de dépôt S3 (--repo-s3-bucket)

Dépôt S3.

Dépôt S3 utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par AWS dans le bucket.

example: --repo1-s3-bucket=pg-backup

Option de point de terminaison du dépôt S3 (--repo-s3-endpoint)

Point de terminaison du dépôt S3.

Le point de terminaison AWS doit être valide pour la région sélectionnée.

Pour les configurations personnalisées ou les tests, les options repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port, et repo-storage-verify-tls peuvent être utiles.

example: --repo1-s3-endpoint=s3.amazonaws.com

Type de clé du dépôt S3 (--repo-s3-key-type)

Type de clé pour le dépôt S3.

Les types suivants sont pris en charge :

  • shared - Clés partagées
  • auto - Récupérer automatiquement les identifiants temporaires
  • web-id - Récupérer automatiquement les identifiants d’identité web
  • pod-id - Récupérer automatiquement les identifiants d’identité de pod EKS
  • process - Récupérer les identifiants en exécutant un processus
default: shared
example: --repo1-s3-key-type=auto

Option ID de clé KMS pour dépôt S3 (--repo-s3-kms-key-id)

Clé KMS du dépôt S3.

Active le chiffrement côté serveur S3 en utilisant la clé du service de gestion des clés AWS spécifiée.

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

Option de commande du processus d’authentification S3 (--repo-s3-process-cmd)

Commande du processus d’authentification S3.

Commande (et arguments facultatifs) à exécuter pour récupérer les identifiants temporaires S3. Le premier élément de la liste est la commande, les éléments suivants sont passés en tant que paramètres.

Le processus doit produire un JSON contenant les champs AccessKeyId, SecretAccessKey, SessionToken et Expiration. Les identifiants seront automatiquement actualisés avant l’expiration. Voir Process Credential Provider pour les détails du format.

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

Option de région du dépôt S3 (--repo-s3-region)

Région du dépôt S3.

La région AWS où le bucket a été créé.

example: --repo1-s3-region=us-east-1

Option Requesteur Payant pour le dépôt S3 (--repo-s3-requester-pays)

Dépôt S3 payeur de la demande.

Active le paiement par le demandeur S3.

default: n
example: --no-repo1-s3-requester-pays

Option de rôle du dépôt S3 (--repo-s3-role)

Rôle du dépôt S3.

Le nom du rôle AWS (pas le nom ARN complet) utilisé pour récupérer les identifiants temporaires lorsque repo-s3-key-type=auto.

example: --repo1-s3-role=authrole

Option de service de dépôt S3 (--repo-s3-service)

Service de signature S3.

Le service de signature S3 utilisé dans l’authentification SigV4. La valeur par défaut est s3 pour les points d’accès S3 standards. À définir sur s3-outposts lors de l’utilisation d’un point d’accès S3 Outposts.

default: s3
example: --repo1-s3-service=s3-outposts

Option de point de terminaison STS du dépôt S3 (--repo-s3-sts-host)

Point de terminaison STS du dépôt S3.

Point de terminaison STS utilisé pour récupérer des identifiants temporaires lorsque repo-s3-key-type=web-id est configuré. Définissez-le sur un point de terminaison régional (par exemple sts.us-east-1.amazonaws.com) pour utiliser STS régional, ce qui peut être nécessaire pour les régions GovCloud, Chine, ou pour réduire la latence.

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

Option de style d’URI de dépôt S3 (--repo-s3-uri-style)

Style d’URI S3.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte bucket.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer les URI par le répertoire.
default: host
example: --repo1-s3-uri-style=path

Option hôte du dépôt SFTP (--repo-sftp-host)

Hôte du dépôt SFTP.

Hôte SFTP contenant le dépôt.

example: --repo1-sftp-host=sftprepo.domain

Fingerprint de l’hôte du dépôt SFTP (--repo-sftp-host-fingerprint)

Empreinte du serveur hôte du dépôt SFTP.

La génération de l’empreinte d’hôte du dépôt SFTP doit correspondre à repo-sftp-host-key-hash-type. Générez l’empreinte via awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Les clés d’hôte SSH se trouvent normalement dans le répertoire /etc/ssh.

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

Type d’option de vérification de la clé hôte SFTP (--repo-sftp-host-key-check-type)

Type de vérification de la clé hôte SFTP.

Les types de vérification de clé d’hôte SFTP suivants sont pris en charge :

  • strict - pgBackRest n’ajoutera jamais automatiquement les clés d’hôte au fichier ~/.ssh/known_hosts, et refusera de se connecter aux hôtes dont la clé d’hôte a changé ou n’est pas trouvée dans les fichiers known hosts. Cette option oblige l’utilisateur à ajouter manuellement tous les nouveaux hôtes.
  • accept-new - pgBackRest ajoutera automatiquement les nouvelles clés d’hôte au fichier known hosts de l’utilisateur, mais n’autorisera pas les connexions aux hôtes dont la clé d’hôte a changé.
  • fingerprint - pgBackRest vérifiera la clé d’hôte contre l’empreinte spécifiée par l’option repo-sftp-host-fingerprint.
  • none - aucune vérification de clé d’hôte ne sera effectuée.
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

Type de hachage de la clé hôte du dépôt SFTP (--repo-sftp-host-key-hash-type)

Type de hachage de la clé d’hôte du dépôt SFTP.

Type de hachage de la clé hôte du dépôt SFTP. Déclare le type de hachage à utiliser pour calculer le hachage de la clé hôte du système distant au démarrage SSH. Les versions plus récentes de libssh2 prennent en charge sha256 en plus de md5 et sha1.

example: --repo1-sftp-host-key-hash-type=sha256

Option de port hôte du dépôt SFTP (--repo-sftp-host-port)

Port hôte du dépôt SFTP.

Port hôte du dépôt SFTP.

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

Option utilisateur hôte dépôt SFTP (--repo-sftp-host-user)

Utilisateur hôte du dépôt SFTP.

Utilisateur sur l’hôte utilisé pour stocker le dépôt.

example: --repo1-sftp-host-user=pg-backup

Option fichier Hôtes SFTP connus (--repo-sftp-known-host)

Fichier d’hôtes SFTP connus.

Fichier known hosts à consulter pour rechercher une correspondance avec un hôte SFTP lors de l’authentification. Si non spécifié, pgBackRest recherchera par défaut dans ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts et /etc/ssh/ssh_known_hosts2. Si configuré avec un ou plusieurs chemins de fichier, pgBackRest recherchera dans ces fichiers une correspondance. Les chemins de fichier doivent être complets ou commencer par un tilde. L’option repo-sftp-known-host peut être spécifiée plusieurs fois pour indiquer plusieurs fichiers known hosts à consulter. Pour utiliser la vérification du fichier known hosts, l’option repo-sftp-host-fingerprint ne doit pas être définie. Voir également l’option repo-sftp-host-check-type.

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

Option fichier de clé privée du dépôt SFTP (--repo-sftp-private-key-file)

Fichier de clé privée SFTP.

Fichier de clé privée SFTP utilisé pour l’authentification.

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

Option de fichier de clé publique du dépôt SFTP (--repo-sftp-public-key-file)

Fichier de clé publique SFTP.

Fichier de clé publique SFTP utilisé pour l’authentification. Facultatif si compilé contre OpenSSL, obligatoire si compilé contre une autre bibliothèque.

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

Option du fichier CA du dépôt de stockage (--repo-storage-ca-file)

Fichier de certificat d’autorité de certification pour le dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Noms obsolètes : repo-azure-ca-file, repo-s3-ca-file

Option de chemin du certificat CA TLS pour le dépôt (--repo-storage-ca-path)

Chemin du certificat d’autorité de certification du dépôt.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-path=/etc/pki/tls/certs

Noms obsolètes : repo-azure-ca-path, repo-s3-ca-path

Option hôte de stockage du dépôt (--repo-storage-host)

Hôte de stockage du dépôt.

Se connecter à un hôte autre que le point de terminaison de stockage (par exemple S3, Azure). Cela est généralement utilisé pour les tests.

example: --repo1-storage-host=127.0.0.1

Noms obsolètes : repo-azure-host, repo-s3-host

Option de port du stockage du dépôt (--repo-storage-port)

Port du stockage du dépôt.

Port à utiliser lors de la connexion au point de terminaison du stockage (par exemple S3, Azure) ou à l’hôte (le cas échéant).

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

Noms obsolètes : repo-azure-port, repo-s3-port

Option d’étiquette de stockage du dépôt (--repo-storage-tag)

Étiquette(s) de stockage du dépôt.

Spécifiez les balises à ajouter aux objets lorsque le dépôt est un magasin d’objets (par exemple, S3). L’option peut être répétée pour ajouter plusieurs balises.

Il n’existe aucune fonctionnalité dans pgBackRest permettant de modifier ces balises ; veillez donc à les définir correctement avant d’exécuter stanza-create afin d’assurer une cohérence des balises dans l’ensemble du dépôt.

example: --repo1-storage-tag=key1=value1

Option de taille de morceau de chargement du dépôt (--repo-storage-upload-chunk-size)

Taille du morceau de chargement du dépôt.

Les magasins d’objets tels que S3 permettent de télécharger des fichiers par morceaux lorsque le fichier est trop volumineux pour être stocké en mémoire. Même si le fichier peut être stocké en mémoire, il est plus efficace en mémoire de limiter la quantité de mémoire utilisée pour les téléchargements.

Une taille de morceau plus élevée entraîne généralement de meilleures performances, car elle réduit le nombre de requêtes de téléchargement et permet de télécharger plus de fichiers en une seule requête plutôt qu’en morceaux. Le désavantage est que la consommation mémoire sera plus élevée, et comme la mémoire tampon de morceau doit être allouée par processus, des valeurs plus élevées de process-max entraînent une consommation mémoire globale plus importante.

Notez que les tailles de morceau valides varient selon le type de stockage et la plateforme. Par exemple, AWS S3 impose une taille minimale de morceau de 5MiB. La terminologie relative à la taille du morceau varie selon le type de stockage ; utilisez donc « part size » pour AWS S3, « chunk size » pour GCS et « block size » pour Azure lorsque vous recherchez les valeurs minimales ou maximales.

Si un fichier est plus grand que 1GiB (la taille maximale que PostgreSQL crée par défaut), la taille de tranche sera augmentée progressivement jusqu’à la valeur maximale autorisée afin de terminer le téléchargement du fichier.

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

Option de vérification du certificat de stockage du dépôt (--repo-storage-verify-tls)

Vérification du certificat du dépôt de stockage.

Cette option permet d’activer/désactiver la vérification du certificat TLS du serveur de stockage (par exemple, S3, Azure). La désactivation ne doit être utilisée que pour des tests ou d’autres scénarios où un certificat a été auto-signé.

default: y
example: --no-repo1-storage-verify-tls

Noms obsolètes : repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

Heure cible pour l’option dépôt (--repo-target-time)

Heure cible pour le dépôt.

Le temps cible définit l’instant auquel les commandes lisent un dépôt sur un stockage versionné. Cela permet à la commande de lire le dépôt tel qu’il était à un instant donné, afin de récupérer des données supprimées ou corrompues par une erreur utilisateur ou un logiciel malveillant.

Le stockage versionné est pris en charge par S3, GCS et Azure, mais il est généralement désactivé par défaut. En plus d’activer la versioning, il peut être utile d’activer le verrouillage d’objets pour S3, ou la suppression progressive pour GCS ou Azure.

Lorsque l’option repo-target-time est spécifiée, l’option repo doit également être fournie. Il est probable que tous les types de dépôt ne prennent pas en charge la versionning, et il est généralement préférable de cibler un seul dépôt pour la récupération.

Notez que les comparaisons avec l’horodatage de stockage sont <= à l’horodatage fourni et que les millisecondes sont tronquées de l’horodatage lorsqu’elles sont fournies.

example: --repo-target-time=2024-08-08 12:12:12+00

Option de type de dépôt (--repo-type)

Type de stockage utilisé pour le dépôt.

Les types de dépôt suivants sont pris en charge :

  • azure - Service de stockage Blob Azure
  • cifs - Comme posix, mais désactive les liens et les fsyncs de répertoire
  • gcs - Google Cloud Storage
  • posix - Systèmes de fichiers conformes à Posix
  • s3 - AWS Simple Storage Service
  • sftp - Protocole de transfert de fichiers sécurisé

Lorsqu’un montage NFS est utilisé comme dépôt posix, les mêmes règles s’appliquent à pgBackRest qu’indiquées dans la documentation PostgreSQL : Création d’un cluster de base de données - Systèmes de fichiers .

default: posix
example: --repo1-type=cifs

Options de stanza

Option Chemin PostgreSQL (--pg-path)

Répertoire de données PostgreSQL.

Il doit être identique à la valeur data_directory rapportée par PostgreSQL. Même si cette valeur peut être lue à divers endroits, il est prudent de la définir afin de garantir sa disponibilité en cas de restauration ou de sauvegarde hors ligne.

L’option pg-path est vérifiée par rapport à la valeur rapportée par PostgreSQL à chaque sauvegarde en ligne, elle doit donc toujours être à jour.

example: --pg1-path=/data/db

Nom obsolète : db-path

4.3 - Commande de poussée d'archive (archive-push)

Référence des options et du comportement de la commande pgBackRest archive-push.

Accepte un segment WAL de PostgreSQL et l’archive dans chaque dépôt défini par l’option indexée repo-path (voir la section Repository pour obtenir des informations sur la configuration des dépôts). Le segment WAL peut être envoyé immédiatement à l’archive ou stocké localement, selon la valeur de archive-async. En cas de configuration de plusieurs dépôts, archive-push tentera d’envoyer à autant de dépôts que possible.

Le archive-push est destiné à être configuré et appelé par PostgreSQL. Voir Configurer la sauvegarde d’archive pour un exemple.

Options de commande

Option d’archivage asynchrone (--archive-async)

Envoyer/récupérer les segments WAL de manière asynchrone.

Active l’exécution asynchrone pour les commandes archive-push et archive-get.

L’opération asynchrone est plus efficace car elle permet de réutiliser les connexions et de tirer parti de la parallélisation. Consultez les options spool-path, archive-get-queue-max et archive-push-queue-max pour plus d’informations.

default: n
example: --archive-async

Option de vérification de l’archive (--archive-check)

Vérifiez que les segments WAL sont présents dans l’archive avant la fin de la sauvegarde.

Vérifie que tous les segments WAL nécessaires pour rendre la sauvegarde cohérente sont présents dans l’archive WAL. Il est recommandé de laisser cette option par défaut, sauf si vous utilisez une autre méthode d’archivage.

Cette option doit être activée si archive-copy est activé.

default: y
example: --no-archive-check

Vérifier l’option Mode archive (--archive-mode-check)

Vérifiez le paramètre PostgreSQL archive_mode.

Activé par défaut, cette option interdit PostgreSQL archive_mode=always.

Les segments WAL poussés depuis un serveur de secours peuvent être logiquement identiques aux segments WAL poussés depuis le principal, mais présenter des sommes de contrôle différentes. Il est recommandé de désactiver l’archivage depuis plusieurs sources afin d’éviter les conflits.

AVERTISSEMENT :

Si cette option est désactivée, il est essentiel de s’assurer qu’un seul archivage écrit dans le dépôt via la commande archive-push.

default: y
example: --no-archive-mode-check

Option taille lot de poussée d’archive (--archive-push-batch-size)

Quantité maximale de WAL à transférer par exécution asynchrone.

En mode asynchrone, le processus archive-push transmet tous les segments WAL prêts en une seule exécution. Comme archive-push-queue-max n’est vérifié qu’au début de chaque exécution, une exécution traitant un très grand nombre de segments peut faire croître la file d’attente bien au-delà de la limite avant qu’elle ne soit à nouveau vérifiée.

Cette option limite la quantité de WAL traitée par exécution, afin que le processus se termine et soit relancé par le prochain archive-push, qui vérifie à nouveau la file d’attente. Des valeurs plus faibles entraînent une vérification plus fréquente de la file d’attente, au prix d’un démarrage plus fréquent du processus asynchrone. La valeur est arrondie vers le bas à un nombre entier de segments WAL, mais au moins un segment est toujours traité.

default: 16GiB
allowed: [1MiB, 4PiB]
example: --archive-push-batch-size=1GiB

Taille maximale de la file d’attente d’archivage en écriture (--archive-push-queue-max)

Taille maximale de la file d’attente d’archive PostgreSQL.

Une fois la limite atteinte, les actions suivantes se produiront :

  • pgBackRest notifiera PostgreSQL que le WAL a été correctement archivé, puis LE SUPPRIMERA.
  • Un avertissement sera affiché dans le journal de PostgreSQL.

Si cela se produit, le flux des journaux d’archive sera interrompu et la restauration à un point précis (PITR) ne sera plus possible au-delà de ce point. Une nouvelle sauvegarde sera nécessaire pour rétablir la capacité de restauration complète.

En mode asynchrone, toute la file d’attente sera supprimée afin d’éviter que des segments de WAL ne passent avant que la limite de file ne soit à nouveau dépassée.

En mode asynchrone, cette limite n’est vérifiée qu’au démarrage de chaque exécution de archive-push, de sorte que la file d’attente puisse dépasser cette limite au cours d’une même exécution. Réduisez archive-push-batch-size afin de vérifier la file d’attente plus fréquemment.

Ce mécanisme a pour but d’éviter que le volume de journalisation ne soit saturé, ce qui fermerait complètement PostgreSQL. Il est préférable de perdre une sauvegarde que de faire tomber PostgreSQL.

allowed: [0B, 4PiB]
example: --archive-push-queue-max=1TiB

Nom obsolète : archive-queue-max

Option délai d’archivage (--archive-timeout)

Délai d’attente de l’archive.

Définir le délai maximal, en secondes, d’attente pour chaque segment WAL afin qu’il atteigne le dépôt d’archive pgBackRest. Ce délai s’applique aux commandes check et backup lors de l’attente des segments WAL nécessaires à la cohérence de la sauvegarde.

default: 1m
allowed: [100ms, 1d]
example: --archive-timeout=30

Options générales

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: n
example: --allow-root

Option Taille tampon (--buffer-size)

Taille du tampon pour les opérations d’E/S.

Taille de tampon utilisée pour les opérations de copie, de compression, de chiffrement et autres. Le nombre de tampons utilisés dépend des options, et chaque opération peut utiliser une mémoire supplémentaire, par exemple, la compression gz peut utiliser jusqu’à 256KiB de mémoire supplémentaire.

Les valeurs autorisées sont 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB et 16MiB.

default: 1MiB
example: --buffer-size=2MiB

Option de commande pgBackRest (--cmd)

Commande pgBackRest.

pgBackRest peut générer une chaîne de commande, par exemple lorsque la commande restore génère le paramètre restore_command. Dans ce cas, la commande utilisée pour exécuter le processus pgBackRest sera employée, sauf si l’option cmd est fournie.

AVERTISSEMENT :

Envelopper la commande pgBackRest peut entraîner un comportement imprévisible et n’est pas recommandé.

default: [path of executed pgbackrest binary]
example: --cmd=/var/lib/pgsql/bin/pgbackrest_wrapper.sh

Option de commande client SSH (--cmd-ssh)

Commande cliente SSH.

Utilisez une commande cliente SSH spécifique lorsque vous souhaitez utiliser une alternative ou que la commande ssh n’est pas disponible dans $PATH.

default: ssh
example: --cmd-ssh=/usr/bin/ssh

Option de compression (--compress)

Utilisez la compression des fichiers.

Les fichiers de sauvegarde sont compatibles avec les outils de compression en ligne de commande.

Cette option est désormais obsolète. L’option compress-type doit être utilisée à la place.

default: y
example: --no-compress

Option niveau de compression (--compress-level)

Niveau de compression du fichier.

Définit le niveau à utiliser pour la compression des fichiers lorsque compress-type est différent de none ou compress=y (obsolète).

default (depending on compress-type):
    bz2 - 9
    gz - 6
    lz4 - 1
    zst - 3

allow range (depending on compress-type):
    bz2 - [1, 9]
    gz - [-1, 9]
    lz4 - [-5, 12]
    zst - [-7, 22]

example: --compress-level=9

Option niveau de compression réseau (--compress-level-network)

Niveau de compression du réseau.

Définit le niveau de compression réseau lorsque compress-type=none et la commande ne sont pas exécutées sur le même hôte que le dépôt. La compression est utilisée pour réduire le trafic réseau. Lorsque compress-type est différent de none, le paramètre compress-level-network est ignoré et compress-level est utilisé à la place, afin que le fichier ne soit compressé qu’une seule fois.

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

Option de type de compression (--compress-type)

Type de compression des fichiers.

Les types de compression suivants sont pris en charge :

  • none - pas de compression
  • bz2 - format de compression bzip2
  • gz - format de compression gzip
  • lz4 - format de compression lz4 (non disponible sur toutes les plates-formes)
  • zst - format de compression Zstandard (non disponible sur toutes les plates-formes)
default: gz
example: --compress-type=none

Option de configuration (--config)

Fichier de configuration pgBackRest.

Utilisez cette option pour spécifier un fichier de configuration différent du fichier par défaut.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

Option Chemin d’inclusion de configuration (--config-include-path)

Chemin vers les fichiers de configuration supplémentaires de pgBackRest.

Les fichiers de configuration se trouvant dans l’emplacement spécifié et ayant l’extension .conf seront concaténés au fichier de configuration de pgBackRest, ce qui donne un seul fichier de configuration.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration (--config-path)

Chemin de base des fichiers de configuration de pgBackRest.

Ce paramètre est utilisé pour remplacer le chemin de base par défaut pour les options --config et --config-include-path, sauf si ces dernières sont explicitement définies en ligne de commande.

Par exemple, passer uniquement --config-path=/conf/pgbackrest fait que la valeur par défaut de --config est définie à /conf/pgbackrest/pgbackrest.conf et que la valeur par défaut de --config-include-path est définie à /conf/pgbackrest/conf.d.

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

Option d’expiration I/O (--io-timeout)

Délai d’attente d’E/S dépassé.

Délai d’attente, en secondes, utilisé pour les connexions et les opérations de lecture/écriture.

Notez que l’opération de lecture/écriture entière n’a pas besoin de se terminer dans ce délai d’attente, mais une certaine progression doit être réalisée, même si elle ne concerne qu’un seul octet.

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

Option Chemin verrou (--lock-path)

Chemin où les fichiers verrou sont stockés.

Le chemin de verrouillage fournit un emplacement où pgBackRest peut créer des fichiers de verrouillage afin d’empêcher l’exécution simultanée d’opérations en conflit.

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

Option de masque neutre (--neutral-umask)

Utilisez un umask neutre.

Définit le umask à 0000 afin que les modes du dépôt soient créés de manière cohérente. Le mode par défaut du répertoire est 0750 et le mode par défaut du fichier est 0640.

Pour utiliser le umask de l’utilisateur en cours, spécifiez neutral-umask=n dans le fichier de configuration ou --no-neutral-umask en ligne de commande.

default: y
example: --no-neutral-umask

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: --priority=19

Option de processus maximum (--process-max)

Nombre maximal de processus à utiliser pour la compression ou le transfert.

Chaque processus effectuera une compression et un transfert afin d’accélérer l’exécution de la commande, mais ne définissez pas process-max trop élevé afin de ne pas affecter les performances de la base de données.

default: 1
allowed: [1, 999]
example: --process-max=4

Option délai d’attente du protocole (--protocol-timeout)

Délai d’attente du protocole.

Définit le délai d’attente, en secondes, durant lequel le processus local ou distant attend qu’un nouveau message soit reçu au niveau du protocole. Cela empêche les processus de rester bloqués indéfiniment en attente d’un message.

NOTE : L’option protocol-timeout doit être supérieure à l’option db-timeout.

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

Option Keep Alive (--sck-keep-alive)

Activation du keep-alive.

Active les messages keep-alive sur les connexions socket.

default: y
example: --no-sck-keep-alive

Option Chemin de répertoire d’attente (--spool-path)

Chemin où les données transitoires sont stockées.

Ce chemin est utilisé pour stocker les données de la commande asynchrone archive-push et archive-get.

La commande asynchrone archive-push écrit des accusés de réception dans le répertoire de spool après avoir correctement stocké le WAL dans l’archive, ou une erreur en cas d’échec, afin que le processus au premier plan puisse informer rapidement PostgreSQL. Ces fichiers sont très petits : vides en cas de succès et de quelques centaines d’octets en cas d’erreur.

La commande asynchrone archive-get met en file d’attente les fichiers WAL dans le répertoire de stockage provisoire afin de pouvoir les fournir très rapidement lorsque PostgreSQL les demande. Le déplacement des fichiers vers PostgreSQL est le plus efficace lorsque le répertoire de stockage provisoire se trouve sur le même système de fichiers que pg_xlog/pg_wal. Toutefois, il n’est pas recommandé de placer le répertoire de stockage provisoire à l’intérieur du répertoire pg_xlog/pg_wal, car cela pourrait entraîner des problèmes pour les utilitaires PostgreSQL tels que pg_rewind.

Les données stockées dans le chemin d’attente ne sont pas strictement temporaires, car elles peuvent et doivent survivre à un redémarrage. Toutefois, leur perte n’est pas problématique. pgBackRest vérifiera simplement chaque segment WAL afin de s’assurer qu’il est correctement archivé pour archive-push et reconstruira la file d’attente pour archive-get.

Le chemin d’attente doit être situé sur un système de fichiers local compatible Posix, et non sur un système de fichiers distant tel que NFS ou CIFS.

default: /var/spool/pgbackrest
example: --spool-path=/backup/db/spool

Option stanza (--stanza)

Définit la stanza.

Une stanza est la configuration d’un cluster de base de données PostgreSQL qui définit son emplacement, la manière dont il sera sauvegardé, les options d’archivage, etc. La plupart des serveurs de base de données n’ont qu’un seul cluster PostgreSQL et donc une seule stanza, tandis que les serveurs de sauvegarde ont une stanza pour chaque cluster de base de données à sauvegarder.

Il est tentant de nommer la stanza en fonction du cluster principal, mais un nom plus pertinent décrit les bases de données contenues dans le cluster. Étant donné que le nom de la stanza sera utilisé pour le principal et toutes les répliques, il est préférable de choisir un nom qui décrit la fonction réelle du cluster, par exemple app ou dw, plutôt que le nom local du cluster, comme main ou prod.

example: --stanza=main

Option de nombre de connexions Keep Alive (--tcp-keep-alive-count)

Nombre de maintien de connexion.

Spécifie le nombre de messages TCP keep-alive pouvant être perdus avant que la connexion ne soit considérée comme inactive.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPCNT.

allowed: [1, 32]
example: --tcp-keep-alive-count=3

Option d’idle Keep Alive (--tcp-keep-alive-idle)

Délai d’inactivité pour la maintien de la connexion.

Spécifie la durée (en secondes) pendant laquelle aucune activité réseau ne se produit, après laquelle le système d’exploitation doit envoyer un message de maintien de connexion TCP.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPIDLE.

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

Option Intervalle Keep Alive (--tcp-keep-alive-interval)

Intervalle de temps pour la maintien de la connexion active.

Spécifie la durée (en secondes) après laquelle un message TCP keep-alive non reconnu doit être renvoyé.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPINTVL.

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

Suites de chiffrement TLSv1.2 Option (--tls-cipher-12)

Suites de chiffrement TLSv1.2 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. L’exemple proposé constitue un choix raisonnable sauf si des exigences de sécurité spécifiques s’appliquent. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

Suites de chiffrement TLSv1.3 Option (--tls-cipher-13)

Suites de chiffrement TLSv1.3 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Options de journalisation

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: --log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: --log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: --log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

Option de journalisation des sous-processus (--log-subprocess)

Activer la journalisation dans les sous-processus.

Activez la journalisation des fichiers pour tout sous-processus créé par ce processus, en utilisant le niveau de journalisation spécifié par log-level-file.

default: n
example: --log-subprocess

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: --no-log-timestamp

Options du mainteneur

Option de vérification des en-têtes WAL (--archive-header-check)

Vérifier la version/id de PostgreSQL dans les en-têtes WAL.

Activé par défaut, cette option vérifie l’en-tête WAL contre la version de PostgreSQL et l’identifiant système afin de s’assurer que le WAL est copié dans la bonne stanza. Cela s’ajoute à la vérification de pg_control par rapport à la stanza et à la vérification que le WAL est copié à partir du même répertoire de données PostgreSQL où se trouve pg_control.

Par conséquent, désactiver cette vérification est relativement sûr, mais ne doit être effectué que lorsqu’il est nécessaire, par exemple si le WAL est chiffré.

default: y
example: --no-archive-header-check

Option de version PostgreSQL obligatoire (--pg-version-force)

Forcer la version de PostgreSQL.

La version de PostgreSQL spécifiée sera utilisée à la place de la version détectée automatiquement en lisant pg_control ou les en-têtes WAL. Cela est principalement utile pour les forks de PostgreSQL ou les versions de développement où ces valeurs diffèrent de la version de publication. La version rapportée par PostgreSQL via server_version_num doit correspondre à la version forcée.

AVERTISSEMENT :

Faites preuve de prudence en utilisant cette option, car pg_control et les en-têtes WAL seront toujours lus selon le format attendu pour la version spécifiée, c’est-à-dire le format issu de la version open-source officielle de PostgreSQL. Si la version fork ou développée modifie le format des champs sur lesquels pgBackRest dépend, cela entraînera un comportement imprévu. En général, cette option ne fonctionnera correctement que si le fork ajoute tous les membres de structure personnalisés après les membres standard de PostgreSQL.

example: --pg-version-force=15

Options du dépôt

Option de conteneur de dépôt Azure (--repo-azure-container)

Conteneur de dépôt Azure.

Conteneur Azure utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés dans la racine du conteneur en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par Azure dans le conteneur.

example: --repo1-azure-container=pg-backup

Type de clé du dépôt Azure (--repo-azure-key-type)

Type de clé du dépôt Azure.

Les types suivants sont pris en charge pour l’autorisation :

  • shared - Clé partagée
  • sas - Signature d’accès partagé
  • auto - Autorisation automatique à l’aide d’identités managées Azure
default: shared
example: --repo1-azure-key-type=sas

Option de style d’URI de dépôt Azure (--repo-azure-uri-style)

Style URI Azure.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte account.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer le compte aux URI.
default: host
example: --repo1-azure-uri-style=path

Type de chiffrement du dépôt (--repo-cipher-type)

Chiffrement utilisé pour chiffrer le dépôt.

Les types de chiffrement suivants sont pris en charge :

  • none - Le dépôt n’est pas chiffré
  • aes-256-cbc - Advanced Encryption Standard avec une longueur de clé de 256 bits

Notez que le chiffrement est toujours effectué côté client, même si le type de dépôt (par exemple S3) prend en charge le chiffrement.

default: none
example: --repo1-cipher-type=aes-256-cbc

Option de bac de dépôt GCS (--repo-gcs-bucket)

Dépôt de bucket GCS.

Dépôt GCS utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par GCS dans le bucket.

example: --repo1-gcs-bucket=/pg-backup

Option de point de terminaison du dépôt GCS (--repo-gcs-endpoint)

Point de terminaison du dépôt GCS.

Point d’accès utilisé pour se connecter au service de stockage. Peut être mis à jour pour utiliser un serveur local GCS ou un point d’accès alternatif.

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

Type de clé du dépôt GCS (--repo-gcs-key-type)

Type de clé du dépôt GCS.

Les types suivants sont pris en charge pour l’autorisation :

  • auto - Autoriser à l’aide du compte de service de l’instance.
  • service - Compte de service à partir d’une clé stockée localement.
  • token - À utiliser pour les tests locaux, par exemple fakegcs.

Lorsque repo-gcs-key-type=service, les identifiants seront rechargés lorsque le jeton d’authentification sera renouvelé.

default: service
example: --repo1-gcs-key-type=auto

Option ID du projet du dépôt GCS (--repo-gcs-user-project)

Identifiant du projet GCS.

ID du projet GCS utilisé pour déterminer la facturation des requêtes.

example: --repo1-gcs-user-project=my-project

Option hôte du dépôt (--repo-host)

Hôte du dépôt lors de l’opération à distance.

Lors de la sauvegarde et de l’archivage vers un système de fichiers monté localement, ce paramètre n’est pas requis.

example: --repo1-host=repo1.domain.com

Nom obsolète : backup-host

Option du fichier de l’autorité de certification hôte du dépôt (--repo-host-ca-file)

Fichier de l’autorité de certification du serveur de dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte du dépôt.

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’autorité de certification du dépôt (--repo-host-ca-path)

Chemin de l’autorité de certification du serveur de dépôt.

Utilisez un chemin de certificat d’autorité (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte du dépôt.

example: --repo1-host-ca-path=/etc/pki/tls/certs

Option de fichier de certificat d’hôte du dépôt (--repo-host-cert-file)

Fichier de certificat d’hôte du dépôt.

Envoyé à l’hôte du dépôt pour prouver l’identité du client.

example: --repo1-host-cert-file=/path/to/client.crt

Option de commande hôte du dépôt (--repo-host-cmd)

Hôte du dépôt commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes local et de dépôt. Si non défini, la commande de dépôt sera définie de la même manière que celle de l’hôte local.

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : backup-cmd

Option de configuration de l’hôte du dépôt (--repo-host-config)

Fichier de configuration du serveur de dépôt pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le fichier de configuration de l’hôte du dépôt se trouve dans un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : sauvegarde-config

Option de chemin d’inclusion de configuration d’hôte de dépôt (--repo-host-config-include-path)

Configuration du serveur de dépôt pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration de l’hôte du dépôt est différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

Chemin de configuration de l’hôte du dépôt (--repo-host-config-path)

Chemin de configuration du serveur de dépôt pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin de configuration de l’hôte du dépôt est différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

Option de fichier de clé hôte du dépôt (--repo-host-key-file)

Fichier de clé hôte du dépôt.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --repo1-host-key-file=/path/to/client.key

Option de port hôte du dépôt (--repo-host-port)

Port de l’hôte du dépôt lorsque repo-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole du serveur du dépôt.

NOTE : Lorsque repo-host-type=ssh, il n’existe pas de valeur par défaut pour repo-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

Nom obsolète : backup-ssh-port

Type de protocole d’hôte de dépôt (--repo-host-type)

Type de protocole d’hôte de dépôt.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --repo1-host-type=tls

Option d’utilisateur hôte de dépôt (--repo-host-user)

Utilisateur hôte du dépôt lorsque repo-host est défini.

Définit l’utilisateur utilisé pour les opérations sur l’hôte du dépôt. Il est préférable que ce ne soit pas l’utilisateur postgres, mais plutôt un autre utilisateur tel que pgbackrest. Si PostgreSQL s’exécute sur l’hôte du dépôt, l’utilisateur postgres peut être ajouté au groupe pgbackrest afin d’avoir des permissions de lecture sur le dépôt sans pouvoir accidentellement le modifier.

default: pgbackrest
example: --repo1-host-user=repo-user

Nom obsolète : backup-user

Option Chemin du dépôt (--repo-path)

Chemin où les sauvegardes et l’archive sont stockées.

Le dépôt est l’emplacement où pgBackRest stocke les sauvegardes et les archives des segments WAL.

Il peut être difficile de prévoir à l’avance l’espace nécessaire. La meilleure approche consiste à effectuer quelques sauvegardes, puis à noter la taille des différents types de sauvegardes (pleines, incrémentielles, différentielles) et à mesurer la quantité de WAL générée par jour. Cela vous donnera une idée générale de l’espace requis, bien que les besoins évoluent probablement au fil du temps avec l’évolution de votre base de données.

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

Option de bac de dépôt S3 (--repo-s3-bucket)

Dépôt S3.

Dépôt S3 utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par AWS dans le bucket.

example: --repo1-s3-bucket=pg-backup

Option de point de terminaison du dépôt S3 (--repo-s3-endpoint)

Point de terminaison du dépôt S3.

Le point de terminaison AWS doit être valide pour la région sélectionnée.

Pour les configurations personnalisées ou les tests, les options repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port, et repo-storage-verify-tls peuvent être utiles.

example: --repo1-s3-endpoint=s3.amazonaws.com

Type de clé du dépôt S3 (--repo-s3-key-type)

Type de clé pour le dépôt S3.

Les types suivants sont pris en charge :

  • shared - Clés partagées
  • auto - Récupérer automatiquement les identifiants temporaires
  • web-id - Récupérer automatiquement les identifiants d’identité web
  • pod-id - Récupérer automatiquement les identifiants d’identité de pod EKS
  • process - Récupérer les identifiants en exécutant un processus
default: shared
example: --repo1-s3-key-type=auto

Option ID de clé KMS pour dépôt S3 (--repo-s3-kms-key-id)

Clé KMS du dépôt S3.

Active le chiffrement côté serveur S3 en utilisant la clé du service de gestion des clés AWS spécifiée.

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

Option de commande du processus d’authentification S3 (--repo-s3-process-cmd)

Commande du processus d’authentification S3.

Commande (et arguments facultatifs) à exécuter pour récupérer les identifiants temporaires S3. Le premier élément de la liste est la commande, les éléments suivants sont passés en tant que paramètres.

Le processus doit produire un JSON contenant les champs AccessKeyId, SecretAccessKey, SessionToken et Expiration. Les identifiants seront automatiquement actualisés avant l’expiration. Voir Process Credential Provider pour les détails du format.

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

Option de région du dépôt S3 (--repo-s3-region)

Région du dépôt S3.

La région AWS où le bucket a été créé.

example: --repo1-s3-region=us-east-1

Option Requesteur Payant pour le dépôt S3 (--repo-s3-requester-pays)

Dépôt S3 payeur de la demande.

Active le paiement par le demandeur S3.

default: n
example: --no-repo1-s3-requester-pays

Option de rôle du dépôt S3 (--repo-s3-role)

Rôle du dépôt S3.

Le nom du rôle AWS (pas le nom ARN complet) utilisé pour récupérer les identifiants temporaires lorsque repo-s3-key-type=auto.

example: --repo1-s3-role=authrole

Option de service de dépôt S3 (--repo-s3-service)

Service de signature S3.

Le service de signature S3 utilisé dans l’authentification SigV4. La valeur par défaut est s3 pour les points d’accès S3 standards. À définir sur s3-outposts lors de l’utilisation d’un point d’accès S3 Outposts.

default: s3
example: --repo1-s3-service=s3-outposts

Option de point de terminaison STS du dépôt S3 (--repo-s3-sts-host)

Point de terminaison STS du dépôt S3.

Point de terminaison STS utilisé pour récupérer des identifiants temporaires lorsque repo-s3-key-type=web-id est configuré. Définissez-le sur un point de terminaison régional (par exemple sts.us-east-1.amazonaws.com) pour utiliser STS régional, ce qui peut être nécessaire pour les régions GovCloud, Chine, ou pour réduire la latence.

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

Option de style d’URI de dépôt S3 (--repo-s3-uri-style)

Style d’URI S3.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte bucket.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer les URI par le répertoire.
default: host
example: --repo1-s3-uri-style=path

Option hôte du dépôt SFTP (--repo-sftp-host)

Hôte du dépôt SFTP.

Hôte SFTP contenant le dépôt.

example: --repo1-sftp-host=sftprepo.domain

Fingerprint de l’hôte du dépôt SFTP (--repo-sftp-host-fingerprint)

Empreinte du serveur hôte du dépôt SFTP.

La génération de l’empreinte d’hôte du dépôt SFTP doit correspondre à repo-sftp-host-key-hash-type. Générez l’empreinte via awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Les clés d’hôte SSH se trouvent normalement dans le répertoire /etc/ssh.

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

Type d’option de vérification de la clé hôte SFTP (--repo-sftp-host-key-check-type)

Type de vérification de la clé hôte SFTP.

Les types de vérification de clé d’hôte SFTP suivants sont pris en charge :

  • strict - pgBackRest n’ajoutera jamais automatiquement les clés d’hôte au fichier ~/.ssh/known_hosts, et refusera de se connecter aux hôtes dont la clé d’hôte a changé ou n’est pas trouvée dans les fichiers known hosts. Cette option oblige l’utilisateur à ajouter manuellement tous les nouveaux hôtes.
  • accept-new - pgBackRest ajoutera automatiquement les nouvelles clés d’hôte au fichier known hosts de l’utilisateur, mais n’autorisera pas les connexions aux hôtes dont la clé d’hôte a changé.
  • fingerprint - pgBackRest vérifiera la clé d’hôte contre l’empreinte spécifiée par l’option repo-sftp-host-fingerprint.
  • none - aucune vérification de clé d’hôte ne sera effectuée.
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

Type de hachage de la clé hôte du dépôt SFTP (--repo-sftp-host-key-hash-type)

Type de hachage de la clé d’hôte du dépôt SFTP.

Type de hachage de la clé hôte du dépôt SFTP. Déclare le type de hachage à utiliser pour calculer le hachage de la clé hôte du système distant au démarrage SSH. Les versions plus récentes de libssh2 prennent en charge sha256 en plus de md5 et sha1.

example: --repo1-sftp-host-key-hash-type=sha256

Option de port hôte du dépôt SFTP (--repo-sftp-host-port)

Port hôte du dépôt SFTP.

Port hôte du dépôt SFTP.

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

Option utilisateur hôte dépôt SFTP (--repo-sftp-host-user)

Utilisateur hôte du dépôt SFTP.

Utilisateur sur l’hôte utilisé pour stocker le dépôt.

example: --repo1-sftp-host-user=pg-backup

Option fichier Hôtes SFTP connus (--repo-sftp-known-host)

Fichier d’hôtes SFTP connus.

Fichier known hosts à consulter pour rechercher une correspondance avec un hôte SFTP lors de l’authentification. Si non spécifié, pgBackRest recherchera par défaut dans ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts et /etc/ssh/ssh_known_hosts2. Si configuré avec un ou plusieurs chemins de fichier, pgBackRest recherchera dans ces fichiers une correspondance. Les chemins de fichier doivent être complets ou commencer par un tilde. L’option repo-sftp-known-host peut être spécifiée plusieurs fois pour indiquer plusieurs fichiers known hosts à consulter. Pour utiliser la vérification du fichier known hosts, l’option repo-sftp-host-fingerprint ne doit pas être définie. Voir également l’option repo-sftp-host-check-type.

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

Option fichier de clé privée du dépôt SFTP (--repo-sftp-private-key-file)

Fichier de clé privée SFTP.

Fichier de clé privée SFTP utilisé pour l’authentification.

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

Option de fichier de clé publique du dépôt SFTP (--repo-sftp-public-key-file)

Fichier de clé publique SFTP.

Fichier de clé publique SFTP utilisé pour l’authentification. Facultatif si compilé contre OpenSSL, obligatoire si compilé contre une autre bibliothèque.

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

Option du fichier CA du dépôt de stockage (--repo-storage-ca-file)

Fichier de certificat d’autorité de certification pour le dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Noms obsolètes : repo-azure-ca-file, repo-s3-ca-file

Option de chemin du certificat CA TLS pour le dépôt (--repo-storage-ca-path)

Chemin du certificat d’autorité de certification du dépôt.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-path=/etc/pki/tls/certs

Noms obsolètes : repo-azure-ca-path, repo-s3-ca-path

Option hôte de stockage du dépôt (--repo-storage-host)

Hôte de stockage du dépôt.

Se connecter à un hôte autre que le point de terminaison de stockage (par exemple S3, Azure). Cela est généralement utilisé pour les tests.

example: --repo1-storage-host=127.0.0.1

Noms obsolètes : repo-azure-host, repo-s3-host

Option de port du stockage du dépôt (--repo-storage-port)

Port du stockage du dépôt.

Port à utiliser lors de la connexion au point de terminaison du stockage (par exemple S3, Azure) ou à l’hôte (le cas échéant).

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

Noms obsolètes : repo-azure-port, repo-s3-port

Option d’étiquette de stockage du dépôt (--repo-storage-tag)

Étiquette(s) de stockage du dépôt.

Spécifiez les balises à ajouter aux objets lorsque le dépôt est un magasin d’objets (par exemple, S3). L’option peut être répétée pour ajouter plusieurs balises.

Il n’existe aucune fonctionnalité dans pgBackRest permettant de modifier ces balises ; veillez donc à les définir correctement avant d’exécuter stanza-create afin d’assurer une cohérence des balises dans l’ensemble du dépôt.

example: --repo1-storage-tag=key1=value1

Option de taille de morceau de chargement du dépôt (--repo-storage-upload-chunk-size)

Taille du morceau de chargement du dépôt.

Les magasins d’objets tels que S3 permettent de télécharger des fichiers par morceaux lorsque le fichier est trop volumineux pour être stocké en mémoire. Même si le fichier peut être stocké en mémoire, il est plus efficace en mémoire de limiter la quantité de mémoire utilisée pour les téléchargements.

Une taille de morceau plus élevée entraîne généralement de meilleures performances, car elle réduit le nombre de requêtes de téléchargement et permet de télécharger plus de fichiers en une seule requête plutôt qu’en morceaux. Le désavantage est que la consommation mémoire sera plus élevée, et comme la mémoire tampon de morceau doit être allouée par processus, des valeurs plus élevées de process-max entraînent une consommation mémoire globale plus importante.

Notez que les tailles de morceau valides varient selon le type de stockage et la plateforme. Par exemple, AWS S3 impose une taille minimale de morceau de 5MiB. La terminologie relative à la taille du morceau varie selon le type de stockage ; utilisez donc « part size » pour AWS S3, « chunk size » pour GCS et « block size » pour Azure lorsque vous recherchez les valeurs minimales ou maximales.

Si un fichier est plus grand que 1GiB (la taille maximale que PostgreSQL crée par défaut), la taille de tranche sera augmentée progressivement jusqu’à la valeur maximale autorisée afin de terminer le téléchargement du fichier.

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

Option de vérification du certificat de stockage du dépôt (--repo-storage-verify-tls)

Vérification du certificat du dépôt de stockage.

Cette option permet d’activer/désactiver la vérification du certificat TLS du serveur de stockage (par exemple, S3, Azure). La désactivation ne doit être utilisée que pour des tests ou d’autres scénarios où un certificat a été auto-signé.

default: y
example: --no-repo1-storage-verify-tls

Noms obsolètes : repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

Option de type de dépôt (--repo-type)

Type de stockage utilisé pour le dépôt.

Les types de dépôt suivants sont pris en charge :

  • azure - Service de stockage Blob Azure
  • cifs - Comme posix, mais désactive les liens et les fsyncs de répertoire
  • gcs - Google Cloud Storage
  • posix - Systèmes de fichiers conformes à Posix
  • s3 - AWS Simple Storage Service
  • sftp - Protocole de transfert de fichiers sécurisé

Lorsqu’un montage NFS est utilisé comme dépôt posix, les mêmes règles s’appliquent à pgBackRest qu’indiquées dans la documentation PostgreSQL : Création d’un cluster de base de données - Systèmes de fichiers .

default: posix
example: --repo1-type=cifs

Options de stanza

Option Chemin PostgreSQL (--pg-path)

Répertoire de données PostgreSQL.

Il doit être identique à la valeur data_directory rapportée par PostgreSQL. Même si cette valeur peut être lue à divers endroits, il est prudent de la définir afin de garantir sa disponibilité en cas de restauration ou de sauvegarde hors ligne.

L’option pg-path est vérifiée par rapport à la valeur rapportée par PostgreSQL à chaque sauvegarde en ligne, elle doit donc toujours être à jour.

example: --pg1-path=/data/db

Nom obsolète : db-path

4.4 - Commande de sauvegarde (backup)

Référence des options et du comportement de la commande pgBackRest backup.

Lorsque plusieurs dépôts sont configurés, pgBackRest effectuera la sauvegarde vers le dépôt de priorité la plus élevée (par exemple repo1) sauf si l’option --repo est spécifiée.

pgBackRest ne dispose pas de planificateur intégré, il est donc préférable de l’exécuter depuis cron ou un autre mécanisme de planification.

Consultez Effectuer une sauvegarde pour plus de détails et d’exemples.

Options de commande

Option d’annotation de sauvegarde (--annotation)

Ajoutez des paires clé/valeur définies par l’utilisateur à la sauvegarde.

Les utilisateurs peuvent attacher des paires clé/valeur explicatives à la sauvegarde. Cette option peut être utilisée plusieurs fois pour attacher plusieurs annotations.

Les annotations sont produites par la sortie texte de la commande info lorsque une sauvegarde est spécifiée avec --set, et apparaissent toujours dans la sortie JSON.

example: --annotation=source="Sunday backup for website database"

Option de vérification de l’archive (--archive-check)

Vérifiez que les segments WAL sont présents dans l’archive avant la fin de la sauvegarde.

Vérifie que tous les segments WAL nécessaires pour rendre la sauvegarde cohérente sont présents dans l’archive WAL. Il est recommandé de laisser cette option par défaut, sauf si vous utilisez une autre méthode d’archivage.

Cette option doit être activée si archive-copy est activé.

default: y
example: --no-archive-check

Option de copie d’archive (--archive-copy)

Copiez les segments WAL nécessaires à la cohérence vers la sauvegarde.

Cette option, légèrement paranoïaque, protège contre les corruption dans l’archive des segments WAL en stockant directement dans la sauvegarde les segments WAL nécessaires à la cohérence. Les segments WAL sont toujours stockés dans l’archive, donc cette option utilise un espace supplémentaire.

Il est préférable que les commandes archive-push et backup utilisent le même compress-type (par exemple lz4) lors de l’utilisation de cette option. Sinon, les segments WAL devront être récompressés avec le compress-type utilisé par la sauvegarde, ce qui peut s’avérer assez coûteux selon la quantité de WAL générée pendant la sauvegarde.

Lors d’une restauration, les segments WAL seront présents dans pg_xlog/pg_wal et PostgreSQL les utilisera en priorité plutôt que d’appeler restore_command.

L’option archive-check doit être activée si archive-copy est activé.

default: n
example: --archive-copy

Vérifier l’option Mode archive (--archive-mode-check)

Vérifiez le paramètre PostgreSQL archive_mode.

Activé par défaut, cette option interdit PostgreSQL archive_mode=always.

Les segments WAL poussés depuis un serveur de secours peuvent être logiquement identiques aux segments WAL poussés depuis le principal, mais présenter des sommes de contrôle différentes. Il est recommandé de désactiver l’archivage depuis plusieurs sources afin d’éviter les conflits.

AVERTISSEMENT :

Si cette option est désactivée, il est essentiel de s’assurer qu’un seul archivage écrit dans le dépôt via la commande archive-push.

default: y
example: --no-archive-mode-check

Option délai d’archivage (--archive-timeout)

Délai d’attente de l’archive.

Définir le délai maximal, en secondes, d’attente pour chaque segment WAL afin qu’il atteigne le dépôt d’archive pgBackRest. Ce délai s’applique aux commandes check et backup lors de l’attente des segments WAL nécessaires à la cohérence de la sauvegarde.

default: 1m
allowed: [100ms, 1d]
example: --archive-timeout=30

Option de sauvegarde depuis une instance de secours (--backup-standby)

Sauvegarde à partir du cluster de secours.

Activez la sauvegarde depuis le serveur de secours afin de réduire la charge sur le cluster principal. Cette option nécessite que les hôtes principal et de secours soient configurés.

Les modes suivants sont pris en charge :

  • y - un serveur standby est obligatoire pour la sauvegarde.
  • prefer - effectuer la sauvegarde depuis le serveur standby s’il est disponible, sinon depuis le primaire.
  • n - effectuer la sauvegarde uniquement depuis le primaire.
default: n
example: --backup-standby=y

Option sommes de contrôle (--checksum-page)

Valider les sommes de contrôle des pages de données.

Active la validation de toutes les sommes de contrôle des pages de données lors de la sauvegarde d’un cluster. Cette option est activée automatiquement lorsque les sommes de contrôle des pages de données sont activées sur le cluster.

Les échecs de validation de la somme de contrôle n’interrompent pas une sauvegarde. En revanche, des avertissements sont émis dans le journal (et sur la console avec les paramètres par défaut) et la liste des pages invalides est stockée dans le manifeste de sauvegarde.

example: --no-checksum-page

Option d’exclusion de chemins/fichiers (--exclude)

Exclure les chemins ou fichiers de la sauvegarde.

Toutes les exclusions sont relatives à $PGDATA. Si l’exclusion se termine par /, seuls les fichiers du répertoire spécifié seront exclus, par exemple --exclude=junk/ exclura tous les fichiers du répertoire $PGDATA/junk tout en conservant le répertoire lui-même. Si l’exclusion ne se termine pas par /, le fichier peut correspondre exactement à l’exclusion ou correspondre à l’exclusion suivie de /, par exemple --exclude=junk exclura le répertoire $PGDATA/junk ainsi que tous les fichiers qu’il contient.

Faites attention à utiliser cette fonctionnalité — il est très facile d’exclure quelque chose de crucial qui rendra la sauvegarde inconsistante. Assurez-vous de tester vos restaurations !

Tous les fichiers exclus seront journalisés au niveau info ainsi que la règle d’exclusion. Vérifiez soigneusement la liste des fichiers exclus afin de vous assurer qu’aucun fichier inattendu n’est exclu.

NOTE : Les exclusions ne sont pas prises en compte lors d’une restauration incrémentielle. Tous les fichiers ou répertoires exclus lors de la sauvegarde seront supprimés lors d’une restauration incrémentielle.

Cette option ne doit pas être utilisée pour exclure les journaux PostgreSQL d’une sauvegarde. Les journaux peuvent être déplacés hors du répertoire PGDATA à l’aide de la configuration PostgreSQL log_directory, ce qui permet de conserver les journaux après une restauration.

Plusieurs exclusions peuvent être spécifiées en ligne de commande ou dans un fichier de configuration.

example: --exclude=junk/

Option d’expiration automatique (--expire-auto)

Exécuter automatiquement la commande expire après une sauvegarde réussie.

L’option est activée par défaut. Faites preuve de prudence en la désactivant, car cela entraînera le maintien indéfini de toutes les sauvegardes et archives, ce qui pourrait faire épuiser l’espace disponible dans le dépôt. La commande expire devra être exécutée régulièrement afin d’éviter ce problème.

Lorsque expire est exécuté automatiquement après une sauvegarde réussie, il utilise la configuration de la commande backup, de sorte que les options définies uniquement dans une section de commande expire (par exemple [global:expire]) ne sont pas prises en compte. Pour appliquer une configuration spécifique à expire, désactivez cette option et exécutez la commande expire séparément.

default: y
example: --expire-auto

Option obligatoire (--force)

Forcer une sauvegarde hors ligne.

Lorsqu’il est utilisé avec --no-start-stop, une sauvegarde sera exécutée même si pgBackRest estime que PostgreSQL est en cours d’exécution. Cette option doit être utilisée avec une extrême prudence, car elle risque fortement de produire une sauvegarde corrompue.

Il existe certains scénarios où une sauvegarde peut toutefois être souhaitable dans ces conditions. Par exemple, si un serveur tombe en panne et que le volume du cluster de base de données ne peut être monté qu’en lecture seule, il serait judicieux de réaliser une sauvegarde même si postmaster.pid est présent. Dans ce cas, il serait préférable de revenir à la sauvegarde précédente et de rejouer les WAL, mais il se peut qu’une transaction très importante se trouve dans un segment WAL qui n’a pas été archivé.

default: n
example: --force

Option seuil d’enregistrement du manifeste (--manifest-save-threshold)

Seuil de sauvegarde manifeste pendant la sauvegarde.

Définit la fréquence à laquelle le manifeste sera enregistré pendant une sauvegarde. Enregistrer le manifeste est important car il stocke les sommes de contrôle et permet au fonctionnement de la reprise d’être efficace. La seuil réel utilisé est le plus élevé entre 1 % de la taille de la sauvegarde et manifest-save-threshold.

default: 1GiB
allowed: [1B, 1TiB]
example: --manifest-save-threshold=8GiB

Option en ligne (--online)

Effectuez une sauvegarde en ligne.

Spécifier –no-online empêche pgBackRest d’exécuter les fonctions de démarrage/arrêt de la sauvegarde sur le cluster de base de données. Pour que cela fonctionne, PostgreSQL doit être arrêté, et pgBackRest générera une erreur si ce n’est pas le cas.

Cette option a pour but de permettre les sauvegardes hors ligne. Le répertoire pg_xlog/pg_wal est copié tel quel et archive-check est automatiquement désactivé pour la sauvegarde.

default: y
example: --no-online

Option Résumé (--resume)

Permet la reprise d’une sauvegarde interrompue.

Définit si la fonction de reprise est activée. La reprise peut réduire considérablement le temps nécessaire pour exécuter une sauvegarde après un échec précédent de la même nature. Toutefois, elle ajoute de la complexité, aussi peut-il être souhaitable de la désactiver dans les environnements qui n’en ont pas besoin.

default: y
example: --no-resume

Option Démarrage rapide (--start-fast)

Forcer un checkpoint pour démarrer la sauvegarde plus rapidement.

Force un checkpoint (en passant y au paramètre fast de la fonction de démarrage de la sauvegarde) afin que la sauvegarde commence immédiatement. Sinon, la sauvegarde commencera après le prochain checkpoint régulier.

default: n
example: --start-fast

Type Option (--type)

Type de sauvegarde.

Les types de sauvegarde suivants sont pris en charge :

  • full - tous les fichiers du cluster de base de données seront copiés et aucune dépendance avec les sauvegardes précédentes ne sera requise.
  • incr - sauvegarde incrémentielle à partir de la dernière sauvegarde réussie.
  • diff - semblable à une sauvegarde incrémentielle, mais toujours basée sur la dernière sauvegarde complète.
default: incr
example: --type=full

Options générales

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: n
example: --allow-root

Option Taille tampon (--buffer-size)

Taille du tampon pour les opérations d’E/S.

Taille de tampon utilisée pour les opérations de copie, de compression, de chiffrement et autres. Le nombre de tampons utilisés dépend des options, et chaque opération peut utiliser une mémoire supplémentaire, par exemple, la compression gz peut utiliser jusqu’à 256KiB de mémoire supplémentaire.

Les valeurs autorisées sont 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB et 16MiB.

default: 1MiB
example: --buffer-size=2MiB

Option de commande pgBackRest (--cmd)

Commande pgBackRest.

pgBackRest peut générer une chaîne de commande, par exemple lorsque la commande restore génère le paramètre restore_command. Dans ce cas, la commande utilisée pour exécuter le processus pgBackRest sera employée, sauf si l’option cmd est fournie.

AVERTISSEMENT :

Envelopper la commande pgBackRest peut entraîner un comportement imprévisible et n’est pas recommandé.

default: [path of executed pgbackrest binary]
example: --cmd=/var/lib/pgsql/bin/pgbackrest_wrapper.sh

Option de commande client SSH (--cmd-ssh)

Commande cliente SSH.

Utilisez une commande cliente SSH spécifique lorsque vous souhaitez utiliser une alternative ou que la commande ssh n’est pas disponible dans $PATH.

default: ssh
example: --cmd-ssh=/usr/bin/ssh

Option de compression (--compress)

Utilisez la compression des fichiers.

Les fichiers de sauvegarde sont compatibles avec les outils de compression en ligne de commande.

Cette option est désormais obsolète. L’option compress-type doit être utilisée à la place.

default: y
example: --no-compress

Option niveau de compression (--compress-level)

Niveau de compression du fichier.

Définit le niveau à utiliser pour la compression des fichiers lorsque compress-type est différent de none ou compress=y (obsolète).

default (depending on compress-type):
    bz2 - 9
    gz - 6
    lz4 - 1
    zst - 3

allow range (depending on compress-type):
    bz2 - [1, 9]
    gz - [-1, 9]
    lz4 - [-5, 12]
    zst - [-7, 22]

example: --compress-level=9

Option niveau de compression réseau (--compress-level-network)

Niveau de compression du réseau.

Définit le niveau de compression réseau lorsque compress-type=none et la commande ne sont pas exécutées sur le même hôte que le dépôt. La compression est utilisée pour réduire le trafic réseau. Lorsque compress-type est différent de none, le paramètre compress-level-network est ignoré et compress-level est utilisé à la place, afin que le fichier ne soit compressé qu’une seule fois.

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

Option de type de compression (--compress-type)

Type de compression des fichiers.

Les types de compression suivants sont pris en charge :

  • none - pas de compression
  • bz2 - format de compression bzip2
  • gz - format de compression gzip
  • lz4 - format de compression lz4 (non disponible sur toutes les plates-formes)
  • zst - format de compression Zstandard (non disponible sur toutes les plates-formes)
default: gz
example: --compress-type=none

Option de configuration (--config)

Fichier de configuration pgBackRest.

Utilisez cette option pour spécifier un fichier de configuration différent du fichier par défaut.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

Option Chemin d’inclusion de configuration (--config-include-path)

Chemin vers les fichiers de configuration supplémentaires de pgBackRest.

Les fichiers de configuration se trouvant dans l’emplacement spécifié et ayant l’extension .conf seront concaténés au fichier de configuration de pgBackRest, ce qui donne un seul fichier de configuration.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration (--config-path)

Chemin de base des fichiers de configuration de pgBackRest.

Ce paramètre est utilisé pour remplacer le chemin de base par défaut pour les options --config et --config-include-path, sauf si ces dernières sont explicitement définies en ligne de commande.

Par exemple, passer uniquement --config-path=/conf/pgbackrest fait que la valeur par défaut de --config est définie à /conf/pgbackrest/pgbackrest.conf et que la valeur par défaut de --config-include-path est définie à /conf/pgbackrest/conf.d.

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

Option de délai d’attente de la base de données (--db-timeout)

Délai d’attente dépassé pour la requête de base de données.

Définit le délai d’attente, en secondes, des requêtes effectuées contre la base de données. Cela inclut les fonctions de démarrage et d’arrêt de la sauvegarde, qui peuvent chacune prendre beaucoup de temps. En raison de cela, le délai d’attente doit être maintenu élevé, sauf si vous savez que ces fonctions retourneront rapidement (par exemple, si vous avez défini start-fast=y et que vous savez que le cluster de base de données ne générera pas beaucoup de segments WAL pendant la sauvegarde).

NOTE : L’option db-timeout doit être inférieure à l’option protocol-timeout.

default: 30m
allowed: [100ms, 7d]
example: --db-timeout=600

Option Delta (--delta)

Restauration ou sauvegarde à l’aide de sommes de contrôle.

Lors d’une restauration, par défaut, les répertoires de données PostgreSQL et les répertoires de tablespace sont supposés exister mais être vides. Cette option effectue une restauration incrémentielle à l’aide des sommes de contrôle.

Pendant une sauvegarde, cette option utilisera les sommes de contrôle au lieu des horodatages pour déterminer si les fichiers seront copiés.

default: n
example: --delta

Option d’expiration I/O (--io-timeout)

Délai d’attente d’E/S dépassé.

Délai d’attente, en secondes, utilisé pour les connexions et les opérations de lecture/écriture.

Notez que l’opération de lecture/écriture entière n’a pas besoin de se terminer dans ce délai d’attente, mais une certaine progression doit être réalisée, même si elle ne concerne qu’un seul octet.

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

Option Chemin verrou (--lock-path)

Chemin où les fichiers verrou sont stockés.

Le chemin de verrouillage fournit un emplacement où pgBackRest peut créer des fichiers de verrouillage afin d’empêcher l’exécution simultanée d’opérations en conflit.

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

Option de masque neutre (--neutral-umask)

Utilisez un umask neutre.

Définit le umask à 0000 afin que les modes du dépôt soient créés de manière cohérente. Le mode par défaut du répertoire est 0750 et le mode par défaut du fichier est 0640.

Pour utiliser le umask de l’utilisateur en cours, spécifiez neutral-umask=n dans le fichier de configuration ou --no-neutral-umask en ligne de commande.

default: y
example: --no-neutral-umask

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: --priority=19

Option de processus maximum (--process-max)

Nombre maximal de processus à utiliser pour la compression ou le transfert.

Chaque processus effectuera une compression et un transfert afin d’accélérer l’exécution de la commande, mais ne définissez pas process-max trop élevé afin de ne pas affecter les performances de la base de données.

default: 1
allowed: [1, 999]
example: --process-max=4

Option délai d’attente du protocole (--protocol-timeout)

Délai d’attente du protocole.

Définit le délai d’attente, en secondes, durant lequel le processus local ou distant attend qu’un nouveau message soit reçu au niveau du protocole. Cela empêche les processus de rester bloqués indéfiniment en attente d’un message.

NOTE : L’option protocol-timeout doit être supérieure à l’option db-timeout.

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

Option Keep Alive (--sck-keep-alive)

Activation du keep-alive.

Active les messages keep-alive sur les connexions socket.

default: y
example: --no-sck-keep-alive

Option stanza (--stanza)

Définit la stanza.

Une stanza est la configuration d’un cluster de base de données PostgreSQL qui définit son emplacement, la manière dont il sera sauvegardé, les options d’archivage, etc. La plupart des serveurs de base de données n’ont qu’un seul cluster PostgreSQL et donc une seule stanza, tandis que les serveurs de sauvegarde ont une stanza pour chaque cluster de base de données à sauvegarder.

Il est tentant de nommer la stanza en fonction du cluster principal, mais un nom plus pertinent décrit les bases de données contenues dans le cluster. Étant donné que le nom de la stanza sera utilisé pour le principal et toutes les répliques, il est préférable de choisir un nom qui décrit la fonction réelle du cluster, par exemple app ou dw, plutôt que le nom local du cluster, comme main ou prod.

example: --stanza=main

Option de nombre de connexions Keep Alive (--tcp-keep-alive-count)

Nombre de maintien de connexion.

Spécifie le nombre de messages TCP keep-alive pouvant être perdus avant que la connexion ne soit considérée comme inactive.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPCNT.

allowed: [1, 32]
example: --tcp-keep-alive-count=3

Option d’idle Keep Alive (--tcp-keep-alive-idle)

Délai d’inactivité pour la maintien de la connexion.

Spécifie la durée (en secondes) pendant laquelle aucune activité réseau ne se produit, après laquelle le système d’exploitation doit envoyer un message de maintien de connexion TCP.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPIDLE.

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

Option Intervalle Keep Alive (--tcp-keep-alive-interval)

Intervalle de temps pour la maintien de la connexion active.

Spécifie la durée (en secondes) après laquelle un message TCP keep-alive non reconnu doit être renvoyé.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPINTVL.

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

Suites de chiffrement TLSv1.2 Option (--tls-cipher-12)

Suites de chiffrement TLSv1.2 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. L’exemple proposé constitue un choix raisonnable sauf si des exigences de sécurité spécifiques s’appliquent. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

Suites de chiffrement TLSv1.3 Option (--tls-cipher-13)

Suites de chiffrement TLSv1.3 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Options de journalisation

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: --log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: --log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: --log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

Option de journalisation des sous-processus (--log-subprocess)

Activer la journalisation dans les sous-processus.

Activez la journalisation des fichiers pour tout sous-processus créé par ce processus, en utilisant le niveau de journalisation spécifié par log-level-file.

default: n
example: --log-subprocess

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: --no-log-timestamp

Options du mainteneur

Option de vérification de l’en-tête de page (--page-header-check)

Vérifier les en-têtes de page PostgreSQL.

Activé par défaut, cette option ajoute des vérifications d’en-tête de page.

Cette option doit être désactivée uniquement si nécessaire, par exemple si les pages sont chiffrées.

default: y
example: --no-page-header-check

Option de version PostgreSQL obligatoire (--pg-version-force)

Forcer la version de PostgreSQL.

La version de PostgreSQL spécifiée sera utilisée à la place de la version détectée automatiquement en lisant pg_control ou les en-têtes WAL. Cela est principalement utile pour les forks de PostgreSQL ou les versions de développement où ces valeurs diffèrent de la version de publication. La version rapportée par PostgreSQL via server_version_num doit correspondre à la version forcée.

AVERTISSEMENT :

Faites preuve de prudence en utilisant cette option, car pg_control et les en-têtes WAL seront toujours lus selon le format attendu pour la version spécifiée, c’est-à-dire le format issu de la version open-source officielle de PostgreSQL. Si la version fork ou développée modifie le format des champs sur lesquels pgBackRest dépend, cela entraînera un comportement imprévu. En général, cette option ne fonctionnera correctement que si le fork ajoute tous les membres de structure personnalisés après les membres standard de PostgreSQL.

example: --pg-version-force=15

Options du dépôt

Définir l’option dépôt (--repo)

Définir le dépôt.

Spécifiez le dépôt sur lequel une commande doit s’opérer.

Par exemple, cette option peut être utilisée pour effectuer une restauration à partir d’un dépôt spécifique, plutôt que de laisser pgBackRest choisir.

allowed: [1, 256]
example: --repo=1

Option de conteneur de dépôt Azure (--repo-azure-container)

Conteneur de dépôt Azure.

Conteneur Azure utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés dans la racine du conteneur en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par Azure dans le conteneur.

example: --repo1-azure-container=pg-backup

Type de clé du dépôt Azure (--repo-azure-key-type)

Type de clé du dépôt Azure.

Les types suivants sont pris en charge pour l’autorisation :

  • shared - Clé partagée
  • sas - Signature d’accès partagé
  • auto - Autorisation automatique à l’aide d’identités managées Azure
default: shared
example: --repo1-azure-key-type=sas

Option de style d’URI de dépôt Azure (--repo-azure-uri-style)

Style URI Azure.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte account.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer le compte aux URI.
default: host
example: --repo1-azure-uri-style=path

Option de sauvegarde incrémentielle par bloc (--repo-block)

Activez la sauvegarde incrémentielle par bloc.

Le mode incrémentiel par bloc permet des sauvegardes plus granulaires en divisant les fichiers en blocs pouvant être sauvegardés indépendamment. Cela permet d’économiser de l’espace dans le dépôt et peut améliorer les performances de restauration incrémentielle, car des blocs individuels peuvent être récupérés sans devoir lire entièrement le fichier depuis le dépôt.

NOTE : L’option repo-bundle doit être activée avant que repo-block ne puisse l’être.

La taille des blocs d’un fichier est déterminée en fonction de sa taille et de son âge. En général, les fichiers plus anciens ou plus volumineux reçoivent des tailles de blocs plus grandes. Si un fichier est suffisamment ancien, il ne sera pas sauvegardé en utilisant l’incrémentation par bloc.

La sauvegarde incrémentielle par bloc est optimale lorsqu’elle est activée pour toutes les catégories de sauvegarde, y compris les sauvegardes complètes. Cela rend la sauvegarde complète légèrement plus grande, mais permet aux sauvegardes différentielles et incrémentielles ultérieures d’utiliser les cartes de blocs générées par la sauvegarde complète afin de réduire l’espace utilisé.

default: n
example: --repo1-block

Option des paquets de dépôt (--repo-bundle)

Fichier du dépôt regroupés.

Regrouper les petits fichiers afin de réduire le nombre total de fichiers écrits dans le dépôt. Écrire moins de fichiers est généralement plus efficace, en particulier sur les magasins d’objets tels que S3. En outre, les fichiers vides ne sont pas stockés, sauf dans le manifeste, ce qui économise du temps et de l’espace.

default: n
example: --repo1-bundle

Option de limite du bundle de dépôt (--repo-bundle-limit)

Limite pour les paquets de fichiers.

Limite de taille pour les fichiers inclus dans les bundles. Les fichiers dont la taille dépasse cette limite seront stockés séparément.

Les fichiers intégrés ne peuvent pas être réutilisés lors d’une reprise d’une sauvegarde, donc cette option contrôle les fichiers pouvant être repris, c’est-à-dire que des valeurs plus élevées entraînent un nombre réduit de fichiers reprises.

default: 2MiB
allowed: [8KiB, 1PiB]
example: --repo1-bundle-limit=10MiB

Option taille du bundle de dépôt (--repo-bundle-size)

Taille cible pour les paquets de fichiers.

Définit la taille cible des fichiers ajoutés à un seul lot. La taille du lot non compressé peut atteindre jusqu’à repo-bundle-size + repo-bundle-limit, donc ne définissez pas cette option à la taille maximale autorisée par votre système de fichiers.

En général, il n’est pas recommandé de définir cette option trop élevée, car les réessais devront répéter l’intégralité du lot.

default: 20MiB
allowed: [1MiB, 1PiB]
example: --repo1-bundle-size=10MiB

Type de chiffrement du dépôt (--repo-cipher-type)

Chiffrement utilisé pour chiffrer le dépôt.

Les types de chiffrement suivants sont pris en charge :

  • none - Le dépôt n’est pas chiffré
  • aes-256-cbc - Advanced Encryption Standard avec une longueur de clé de 256 bits

Notez que le chiffrement est toujours effectué côté client, même si le type de dépôt (par exemple S3) prend en charge le chiffrement.

default: none
example: --repo1-cipher-type=aes-256-cbc

Option de bac de dépôt GCS (--repo-gcs-bucket)

Dépôt de bucket GCS.

Dépôt GCS utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par GCS dans le bucket.

example: --repo1-gcs-bucket=/pg-backup

Option de point de terminaison du dépôt GCS (--repo-gcs-endpoint)

Point de terminaison du dépôt GCS.

Point d’accès utilisé pour se connecter au service de stockage. Peut être mis à jour pour utiliser un serveur local GCS ou un point d’accès alternatif.

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

Type de clé du dépôt GCS (--repo-gcs-key-type)

Type de clé du dépôt GCS.

Les types suivants sont pris en charge pour l’autorisation :

  • auto - Autoriser à l’aide du compte de service de l’instance.
  • service - Compte de service à partir d’une clé stockée localement.
  • token - À utiliser pour les tests locaux, par exemple fakegcs.

Lorsque repo-gcs-key-type=service, les identifiants seront rechargés lorsque le jeton d’authentification sera renouvelé.

default: service
example: --repo1-gcs-key-type=auto

Option ID du projet du dépôt GCS (--repo-gcs-user-project)

Identifiant du projet GCS.

ID du projet GCS utilisé pour déterminer la facturation des requêtes.

example: --repo1-gcs-user-project=my-project

Crée des liens durs entre les fichiers des sauvegardes dans le dépôt.

Activez le lien dur des fichiers dans les sauvegardes différentielles et incrémentielles vers leurs sauvegardes complètes. Cela donne l’illusion qu’à niveau système de fichiers, chaque sauvegarde est une sauvegarde complète. Faites attention toutefois, car la modification de fichiers liés par lien dur peut affecter toutes les sauvegardes de l’ensemble.

default: n
example: --repo1-hardlink

Nom obsolète : hardlink

Option hôte du dépôt (--repo-host)

Hôte du dépôt lors de l’opération à distance.

Lors de la sauvegarde et de l’archivage vers un système de fichiers monté localement, ce paramètre n’est pas requis.

example: --repo1-host=repo1.domain.com

Nom obsolète : backup-host

Option du fichier de l’autorité de certification hôte du dépôt (--repo-host-ca-file)

Fichier de l’autorité de certification du serveur de dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte du dépôt.

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’autorité de certification du dépôt (--repo-host-ca-path)

Chemin de l’autorité de certification du serveur de dépôt.

Utilisez un chemin de certificat d’autorité (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte du dépôt.

example: --repo1-host-ca-path=/etc/pki/tls/certs

Option de fichier de certificat d’hôte du dépôt (--repo-host-cert-file)

Fichier de certificat d’hôte du dépôt.

Envoyé à l’hôte du dépôt pour prouver l’identité du client.

example: --repo1-host-cert-file=/path/to/client.crt

Option de commande hôte du dépôt (--repo-host-cmd)

Hôte du dépôt commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes local et de dépôt. Si non défini, la commande de dépôt sera définie de la même manière que celle de l’hôte local.

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : backup-cmd

Option de configuration de l’hôte du dépôt (--repo-host-config)

Fichier de configuration du serveur de dépôt pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le fichier de configuration de l’hôte du dépôt se trouve dans un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : sauvegarde-config

Option de chemin d’inclusion de configuration d’hôte de dépôt (--repo-host-config-include-path)

Configuration du serveur de dépôt pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration de l’hôte du dépôt est différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

Chemin de configuration de l’hôte du dépôt (--repo-host-config-path)

Chemin de configuration du serveur de dépôt pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin de configuration de l’hôte du dépôt est différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

Option de fichier de clé hôte du dépôt (--repo-host-key-file)

Fichier de clé hôte du dépôt.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --repo1-host-key-file=/path/to/client.key

Option de port hôte du dépôt (--repo-host-port)

Port de l’hôte du dépôt lorsque repo-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole du serveur du dépôt.

NOTE : Lorsque repo-host-type=ssh, il n’existe pas de valeur par défaut pour repo-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

Nom obsolète : backup-ssh-port

Type de protocole d’hôte de dépôt (--repo-host-type)

Type de protocole d’hôte de dépôt.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --repo1-host-type=tls

Option d’utilisateur hôte de dépôt (--repo-host-user)

Utilisateur hôte du dépôt lorsque repo-host est défini.

Définit l’utilisateur utilisé pour les opérations sur l’hôte du dépôt. Il est préférable que ce ne soit pas l’utilisateur postgres, mais plutôt un autre utilisateur tel que pgbackrest. Si PostgreSQL s’exécute sur l’hôte du dépôt, l’utilisateur postgres peut être ajouté au groupe pgbackrest afin d’avoir des permissions de lecture sur le dépôt sans pouvoir accidentellement le modifier.

default: pgbackrest
example: --repo1-host-user=repo-user

Nom obsolète : backup-user

Option Chemin du dépôt (--repo-path)

Chemin où les sauvegardes et l’archive sont stockées.

Le dépôt est l’emplacement où pgBackRest stocke les sauvegardes et les archives des segments WAL.

Il peut être difficile de prévoir à l’avance l’espace nécessaire. La meilleure approche consiste à effectuer quelques sauvegardes, puis à noter la taille des différents types de sauvegardes (pleines, incrémentielles, différentielles) et à mesurer la quantité de WAL générée par jour. Cela vous donnera une idée générale de l’espace requis, bien que les besoins évoluent probablement au fil du temps avec l’évolution de votre base de données.

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

Option de rétention des archives (--repo-retention-archive)

Nombre de sauvegardes de WAL continu à conserver.

NOTE : Les segments WAL nécessaires pour rendre une sauvegarde cohérente sont toujours conservés jusqu’à l’expiration de la sauvegarde, quelle que soit la configuration de cette option.

Si cette valeur n’est pas définie et que repo-retention-full-type est égal à count (valeur par défaut), alors l’archive à expirer sera par défaut celle correspondant à la valeur de repo-retention-full (ou repo-retention-diff) associée à repo-retention-archive-type si celle-ci est définie à full (ou diff). Cela garantira que les fichiers WAL ne seront supprimés que pour les sauvegardes déjà expirées. Si repo-retention-full-type est égal à time, alors cette valeur sera par défaut définie pour supprimer les archives antérieures à la plus ancienne sauvegarde complète conservée après avoir satisfait le paramètre repo-retention-full.

Cette option doit être définie si repo-retention-archive-type est réglé sur incr. Si l’espace disque est limité, ce paramètre, combiné à repo-retention-archive-type, peut être utilisé pour supprimer de manière agressive les segments WAL. Toutefois, cela annule la possibilité de réaliser une restauration à un instant donné à partir des sauvegardes ayant des segments WAL expirés, et n’est donc pas recommandé.

allowed: [1, 9999999]
example: --repo1-retention-archive=2

Nom obsolète : rétention-archive

Type de rétention des archives (--repo-retention-archive-type)

Type de sauvegarde pour la rétention de WAL.

Si défini sur full, pgBackRest conservera les journaux d’archive pendant le nombre de sauvegardes complètes défini par repo-retention-archive. Si défini sur diff (différentiel), pgBackRest conservera les journaux d’archive pendant le nombre de sauvegardes complètes et différentielles défini par repo-retention-archive, ce qui signifie qu’une sauvegarde complète prise en dernier sera comptée comme une sauvegarde différentielle pour l’application de la rétention du référentiel. Si défini sur incr (incrémentielle), pgBackRest conservera les journaux d’archive pendant le nombre de sauvegardes complètes, différentielles et incrémentielles défini par repo-retention-archive. Il est recommandé de ne pas modifier cette option par rapport à sa valeur par défaut, qui n’expire les WAL que conjointement à l’expiration des sauvegardes complètes.

default: full
example: --repo1-retention-archive-type=diff

Nom obsolète : rétention-archive-type

Option de rétention différentielle (--repo-retention-diff)

Nombre de sauvegardes différentielles à conserver.

Lorsqu’une sauvegarde différentielle expire, toutes les sauvegardes incrémentielles associées à cette sauvegarde différentielle expirent également. Si ce paramètre n’est pas défini, toutes les sauvegardes différentielles sont conservées jusqu’à l’expiration des sauvegardes complètes dont elles dépendent.

Notez que les sauvegardes complètes sont prises en compte dans le nombre de sauvegardes différentielles pour l’expiration. Cela réduit légèrement le nombre de sauvegardes différentielles à conserver dans la plupart des cas.

allowed: [1, 9999999]
example: --repo1-retention-diff=3

Nom obsolète : rétention-diff

Option de rétention complète (--repo-retention-full)

Nombre ou durée de rétention des sauvegardes complètes.

Lorsqu’une sauvegarde complète expire, toutes les sauvegardes différentielles et incrémentielles associées à cette sauvegarde complète expirent également. Si l’option n’est pas définie, un avertissement est émis. Si une rétention indéfinie est souhaitée, définissez l’option à sa valeur maximale.

allowed: [1, 9999999]
example: --repo1-retention-full=2

Nom obsolète : rétention-full

Type d’option de rétention complète (--repo-retention-full-type)

Type de rétention pour les sauvegardes complètes.

Détermine si le paramètre repo-retention-full représente une période de temps (en jours) ou un nombre de sauvegardes complètes à conserver.

Si la valeur est définie à time, les sauvegardes complètes dont l’âge dépasse repo-retention-full seront supprimées du dépôt si au moins une autre sauvegarde est égale ou supérieure à la valeur définie par repo-retention-full. Par exemple, si repo-retention-full est égal à 30 (jours) et qu’il existe deux sauvegardes complètes : l’une âgée de 25 jours et l’autre de 35 jours, aucune sauvegarde complète ne sera expirée, car la suppression de la sauvegarde âgée de 35 jours laisserait uniquement la sauvegarde âgée de 25 jours, ce qui violerait la politique de rétention de 30 jours exigeant qu’au moins une sauvegarde ait au moins 30 jours d’âge avant qu’une sauvegarde plus ancienne ne puisse être expirée. Les archives WAL plus anciennes que la plus ancienne sauvegarde complète restante seront automatiquement expirées, sauf si repo-retention-archive-type et repo-retention-archive sont explicitement définis.

Si la valeur est définie à count, les sauvegardes complètes dont la taille dépasse repo-retention-full seront supprimées. Par exemple, si repo-retention-full est égal à 4 et qu’une cinquième sauvegarde complète est effectuée, la sauvegarde complète la plus ancienne sera supprimée afin de maintenir le nombre à 4.

Notez qu’une sauvegarde ne sera prise en compte pour la rétention qu’après avoir été correctement terminée. Par exemple, si repo-retention-full-type est count et repo-retention-full est 2, il doit y avoir 3 sauvegardes complètes avant que la plus ancienne ne soit supprimée.

default: count
example: --repo1-retention-full-type=time

Option de rétention de l’historique des sauvegardes (--repo-retention-history)

Nombre de jours d’historique de sauvegarde à conserver.

Une copie du manifeste de sauvegarde est stockée dans le chemin backup.history une fois la sauvegarde terminée. Par défaut, ces fichiers ne sont jamais supprimés, car ils sont utiles pour l’analyse de données, par exemple pour mesurer l’évolution de la taille des sauvegardes et des fichiers WAL au fil du temps.

Définissez repo-retention-history pour préciser le nombre de jours de manifestes d’historique de sauvegarde à conserver. Les sauvegardes non expirées sont toujours conservées dans l’historique des sauvegardes. Spécifiez repo-retention-history=0 pour ne conserver l’historique des sauvegardes que pour les sauvegardes non expirées.

Lorsqu’un manifeste d’historique de sauvegarde complète est expiré, tous les manifestes d’historique de sauvegardes différentielles et incrémentielles associés à cette sauvegarde complète expirent également.

allowed: [0, 9999999]
example: --repo1-retention-history=365

Option de bac de dépôt S3 (--repo-s3-bucket)

Dépôt S3.

Dépôt S3 utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par AWS dans le bucket.

example: --repo1-s3-bucket=pg-backup

Option de point de terminaison du dépôt S3 (--repo-s3-endpoint)

Point de terminaison du dépôt S3.

Le point de terminaison AWS doit être valide pour la région sélectionnée.

Pour les configurations personnalisées ou les tests, les options repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port, et repo-storage-verify-tls peuvent être utiles.

example: --repo1-s3-endpoint=s3.amazonaws.com

Type de clé du dépôt S3 (--repo-s3-key-type)

Type de clé pour le dépôt S3.

Les types suivants sont pris en charge :

  • shared - Clés partagées
  • auto - Récupérer automatiquement les identifiants temporaires
  • web-id - Récupérer automatiquement les identifiants d’identité web
  • pod-id - Récupérer automatiquement les identifiants d’identité de pod EKS
  • process - Récupérer les identifiants en exécutant un processus
default: shared
example: --repo1-s3-key-type=auto

Option ID de clé KMS pour dépôt S3 (--repo-s3-kms-key-id)

Clé KMS du dépôt S3.

Active le chiffrement côté serveur S3 en utilisant la clé du service de gestion des clés AWS spécifiée.

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

Option de commande du processus d’authentification S3 (--repo-s3-process-cmd)

Commande du processus d’authentification S3.

Commande (et arguments facultatifs) à exécuter pour récupérer les identifiants temporaires S3. Le premier élément de la liste est la commande, les éléments suivants sont passés en tant que paramètres.

Le processus doit produire un JSON contenant les champs AccessKeyId, SecretAccessKey, SessionToken et Expiration. Les identifiants seront automatiquement actualisés avant l’expiration. Voir Process Credential Provider pour les détails du format.

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

Option de région du dépôt S3 (--repo-s3-region)

Région du dépôt S3.

La région AWS où le bucket a été créé.

example: --repo1-s3-region=us-east-1

Option Requesteur Payant pour le dépôt S3 (--repo-s3-requester-pays)

Dépôt S3 payeur de la demande.

Active le paiement par le demandeur S3.

default: n
example: --no-repo1-s3-requester-pays

Option de rôle du dépôt S3 (--repo-s3-role)

Rôle du dépôt S3.

Le nom du rôle AWS (pas le nom ARN complet) utilisé pour récupérer les identifiants temporaires lorsque repo-s3-key-type=auto.

example: --repo1-s3-role=authrole

Option de service de dépôt S3 (--repo-s3-service)

Service de signature S3.

Le service de signature S3 utilisé dans l’authentification SigV4. La valeur par défaut est s3 pour les points d’accès S3 standards. À définir sur s3-outposts lors de l’utilisation d’un point d’accès S3 Outposts.

default: s3
example: --repo1-s3-service=s3-outposts

Option de point de terminaison STS du dépôt S3 (--repo-s3-sts-host)

Point de terminaison STS du dépôt S3.

Point de terminaison STS utilisé pour récupérer des identifiants temporaires lorsque repo-s3-key-type=web-id est configuré. Définissez-le sur un point de terminaison régional (par exemple sts.us-east-1.amazonaws.com) pour utiliser STS régional, ce qui peut être nécessaire pour les régions GovCloud, Chine, ou pour réduire la latence.

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

Option de style d’URI de dépôt S3 (--repo-s3-uri-style)

Style d’URI S3.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte bucket.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer les URI par le répertoire.
default: host
example: --repo1-s3-uri-style=path

Option hôte du dépôt SFTP (--repo-sftp-host)

Hôte du dépôt SFTP.

Hôte SFTP contenant le dépôt.

example: --repo1-sftp-host=sftprepo.domain

Fingerprint de l’hôte du dépôt SFTP (--repo-sftp-host-fingerprint)

Empreinte du serveur hôte du dépôt SFTP.

La génération de l’empreinte d’hôte du dépôt SFTP doit correspondre à repo-sftp-host-key-hash-type. Générez l’empreinte via awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Les clés d’hôte SSH se trouvent normalement dans le répertoire /etc/ssh.

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

Type d’option de vérification de la clé hôte SFTP (--repo-sftp-host-key-check-type)

Type de vérification de la clé hôte SFTP.

Les types de vérification de clé d’hôte SFTP suivants sont pris en charge :

  • strict - pgBackRest n’ajoutera jamais automatiquement les clés d’hôte au fichier ~/.ssh/known_hosts, et refusera de se connecter aux hôtes dont la clé d’hôte a changé ou n’est pas trouvée dans les fichiers known hosts. Cette option oblige l’utilisateur à ajouter manuellement tous les nouveaux hôtes.
  • accept-new - pgBackRest ajoutera automatiquement les nouvelles clés d’hôte au fichier known hosts de l’utilisateur, mais n’autorisera pas les connexions aux hôtes dont la clé d’hôte a changé.
  • fingerprint - pgBackRest vérifiera la clé d’hôte contre l’empreinte spécifiée par l’option repo-sftp-host-fingerprint.
  • none - aucune vérification de clé d’hôte ne sera effectuée.
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

Type de hachage de la clé hôte du dépôt SFTP (--repo-sftp-host-key-hash-type)

Type de hachage de la clé d’hôte du dépôt SFTP.

Type de hachage de la clé hôte du dépôt SFTP. Déclare le type de hachage à utiliser pour calculer le hachage de la clé hôte du système distant au démarrage SSH. Les versions plus récentes de libssh2 prennent en charge sha256 en plus de md5 et sha1.

example: --repo1-sftp-host-key-hash-type=sha256

Option de port hôte du dépôt SFTP (--repo-sftp-host-port)

Port hôte du dépôt SFTP.

Port hôte du dépôt SFTP.

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

Option utilisateur hôte dépôt SFTP (--repo-sftp-host-user)

Utilisateur hôte du dépôt SFTP.

Utilisateur sur l’hôte utilisé pour stocker le dépôt.

example: --repo1-sftp-host-user=pg-backup

Option fichier Hôtes SFTP connus (--repo-sftp-known-host)

Fichier d’hôtes SFTP connus.

Fichier known hosts à consulter pour rechercher une correspondance avec un hôte SFTP lors de l’authentification. Si non spécifié, pgBackRest recherchera par défaut dans ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts et /etc/ssh/ssh_known_hosts2. Si configuré avec un ou plusieurs chemins de fichier, pgBackRest recherchera dans ces fichiers une correspondance. Les chemins de fichier doivent être complets ou commencer par un tilde. L’option repo-sftp-known-host peut être spécifiée plusieurs fois pour indiquer plusieurs fichiers known hosts à consulter. Pour utiliser la vérification du fichier known hosts, l’option repo-sftp-host-fingerprint ne doit pas être définie. Voir également l’option repo-sftp-host-check-type.

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

Option fichier de clé privée du dépôt SFTP (--repo-sftp-private-key-file)

Fichier de clé privée SFTP.

Fichier de clé privée SFTP utilisé pour l’authentification.

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

Option de fichier de clé publique du dépôt SFTP (--repo-sftp-public-key-file)

Fichier de clé publique SFTP.

Fichier de clé publique SFTP utilisé pour l’authentification. Facultatif si compilé contre OpenSSL, obligatoire si compilé contre une autre bibliothèque.

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

Option du fichier CA du dépôt de stockage (--repo-storage-ca-file)

Fichier de certificat d’autorité de certification pour le dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Noms obsolètes : repo-azure-ca-file, repo-s3-ca-file

Option de chemin du certificat CA TLS pour le dépôt (--repo-storage-ca-path)

Chemin du certificat d’autorité de certification du dépôt.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-path=/etc/pki/tls/certs

Noms obsolètes : repo-azure-ca-path, repo-s3-ca-path

Option hôte de stockage du dépôt (--repo-storage-host)

Hôte de stockage du dépôt.

Se connecter à un hôte autre que le point de terminaison de stockage (par exemple S3, Azure). Cela est généralement utilisé pour les tests.

example: --repo1-storage-host=127.0.0.1

Noms obsolètes : repo-azure-host, repo-s3-host

Option de port du stockage du dépôt (--repo-storage-port)

Port du stockage du dépôt.

Port à utiliser lors de la connexion au point de terminaison du stockage (par exemple S3, Azure) ou à l’hôte (le cas échéant).

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

Noms obsolètes : repo-azure-port, repo-s3-port

Option d’étiquette de stockage du dépôt (--repo-storage-tag)

Étiquette(s) de stockage du dépôt.

Spécifiez les balises à ajouter aux objets lorsque le dépôt est un magasin d’objets (par exemple, S3). L’option peut être répétée pour ajouter plusieurs balises.

Il n’existe aucune fonctionnalité dans pgBackRest permettant de modifier ces balises ; veillez donc à les définir correctement avant d’exécuter stanza-create afin d’assurer une cohérence des balises dans l’ensemble du dépôt.

example: --repo1-storage-tag=key1=value1

Option de taille de morceau de chargement du dépôt (--repo-storage-upload-chunk-size)

Taille du morceau de chargement du dépôt.

Les magasins d’objets tels que S3 permettent de télécharger des fichiers par morceaux lorsque le fichier est trop volumineux pour être stocké en mémoire. Même si le fichier peut être stocké en mémoire, il est plus efficace en mémoire de limiter la quantité de mémoire utilisée pour les téléchargements.

Une taille de morceau plus élevée entraîne généralement de meilleures performances, car elle réduit le nombre de requêtes de téléchargement et permet de télécharger plus de fichiers en une seule requête plutôt qu’en morceaux. Le désavantage est que la consommation mémoire sera plus élevée, et comme la mémoire tampon de morceau doit être allouée par processus, des valeurs plus élevées de process-max entraînent une consommation mémoire globale plus importante.

Notez que les tailles de morceau valides varient selon le type de stockage et la plateforme. Par exemple, AWS S3 impose une taille minimale de morceau de 5MiB. La terminologie relative à la taille du morceau varie selon le type de stockage ; utilisez donc « part size » pour AWS S3, « chunk size » pour GCS et « block size » pour Azure lorsque vous recherchez les valeurs minimales ou maximales.

Si un fichier est plus grand que 1GiB (la taille maximale que PostgreSQL crée par défaut), la taille de tranche sera augmentée progressivement jusqu’à la valeur maximale autorisée afin de terminer le téléchargement du fichier.

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

Option de vérification du certificat de stockage du dépôt (--repo-storage-verify-tls)

Vérification du certificat du dépôt de stockage.

Cette option permet d’activer/désactiver la vérification du certificat TLS du serveur de stockage (par exemple, S3, Azure). La désactivation ne doit être utilisée que pour des tests ou d’autres scénarios où un certificat a été auto-signé.

default: y
example: --no-repo1-storage-verify-tls

Noms obsolètes : repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

Créez des liens symboliques dans le dépôt.

Active la création du latest et des liens symboliques de tablespace. Ces liens symboliques sont particulièrement utiles lors de la récupération in situ à l’aide de captures instantanées dans le dépôt, ce qui constitue un cas d’utilisation peu courant.

Bien que cette fonctionnalité soit probablement inutile pour la grande majorité des utilisateurs, elle reste activée par défaut pour des raisons de compatibilité avec les anciennes versions. Toutefois, il peut être utile de désactiver les liens symboliques pour les stockages de type Posix qui ne les prennent pas en charge.

default: y
example: --no-repo1-symlink

Option de type de dépôt (--repo-type)

Type de stockage utilisé pour le dépôt.

Les types de dépôt suivants sont pris en charge :

  • azure - Service de stockage Blob Azure
  • cifs - Comme posix, mais désactive les liens et les fsyncs de répertoire
  • gcs - Google Cloud Storage
  • posix - Systèmes de fichiers conformes à Posix
  • s3 - AWS Simple Storage Service
  • sftp - Protocole de transfert de fichiers sécurisé

Lorsqu’un montage NFS est utilisé comme dépôt posix, les mêmes règles s’appliquent à pgBackRest qu’indiquées dans la documentation PostgreSQL : Création d’un cluster de base de données - Systèmes de fichiers .

default: posix
example: --repo1-type=cifs

Options de stanza

Option base de données PostgreSQL (--pg-database)

Base de données PostgreSQL.

Le nom de la base de données utilisé lors de la connexion à PostgreSQL. La valeur par défaut est généralement la meilleure option, mais certaines installations peuvent ne pas contenir cette base de données.

Notez que, pour des raisons historiques, le paramétrage de la variable d’environnement PGDATABASE sera ignoré.

default: postgres
example: --pg1-database=backupdb

Option Hôte PostgreSQL (--pg-host)

Hôte PostgreSQL pour une opération à distance.

Utilisé pour les sauvegardes où l’hôte PostgreSQL est différent de l’hôte du dépôt.

example: --pg1-host=db.domain.com

Nom obsolète : db-host

Option Fichier de l’Autorité de certification du serveur PostgreSQL (--pg-host-ca-file)

Fichier de l’autorité de certification du serveur PostgreSQL.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte PostgreSQL.

example: --pg1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’Autorité de certification du serveur PostgreSQL (--pg-host-ca-path)

Chemin de l’autorité de certification du serveur PostgreSQL.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte PostgreSQL.

example: --pg1-host-ca-path=/etc/pki/tls/certs

Option Fichier de certificat d’hôte PostgreSQL (--pg-host-cert-file)

Fichier de certificat d’hôte PostgreSQL.

Envoyé à l’hôte PostgreSQL pour prouver l’identité du client.

example: --pg1-host-cert-file=/path/to/client.crt

Option de commande hôte PostgreSQL (--pg-host-cmd)

Hôte PostgreSQL : commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes locaux et PostgreSQL. Si ce n’est pas défini, la commande sur l’hôte PostgreSQL sera définie de la même manière que celle sur l’hôte local.

default: [path of executed pgbackrest binary]
example: --pg1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : db-cmd

Option de configuration hôte PostgreSQL (--pg-host-config)

Fichier de configuration du serveur de base de données pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte PostgreSQL. Cette option est nécessaire uniquement si le fichier de configuration PostgreSQL est situé à un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --pg1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : db-config

Chemin d’inclusion de la configuration hôte PostgreSQL (--pg-host-config-include-path)

Configuration de l’hôte de base de données pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte PostgreSQL. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration PostgreSQL se trouve dans un emplacement différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --pg1-host-config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration de l’hôte PostgreSQL (--pg-host-config-path)

Chemin de configuration de l’hôte de base de données pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte PostgreSQL. Cette option est nécessaire uniquement si le chemin de configuration PostgreSQL se trouve dans un emplacement différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --pg1-host-config-path=/conf/pgbackrest

Option fichier clé hôte PostgreSQL (--pg-host-key-file)

Fichier de clé hôte PostgreSQL.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --pg1-host-key-file=/path/to/client.key

Option Port hôte PostgreSQL (--pg-host-port)

Port de l’hôte PostgreSQL lorsque pg-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole d’hôte PostgreSQL.

NOTE : Lorsque pg-host-type=ssh, il n’existe pas de valeur par défaut pour pg-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on pg-host-type):
    tls - 8432

allowed: [0, 65535]
example: --pg1-host-port=25

Nom obsolète : db-ssh-port

Type de protocole d’hôte PostgreSQL (--pg-host-type)

Type de protocole hôte PostgreSQL.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --pg1-host-type=tls

Option utilisateur hôte PostgreSQL (--pg-host-user)

Utilisateur de connexion au serveur PostgreSQL lorsqu’pg-host est défini.

Cet utilisateur possédera également le processus pgBackRest distant et initiera les connexions à PostgreSQL. Pour que cela fonctionne correctement, l’utilisateur doit être le propriétaire du cluster de base de données PostgreSQL, ce qui correspond généralement à postgres, la valeur par défaut.

default: postgres
example: --pg1-host-user=db_owner

Nom obsolète : db-user

Option Chemin PostgreSQL (--pg-path)

Répertoire de données PostgreSQL.

Il doit être identique à la valeur data_directory rapportée par PostgreSQL. Même si cette valeur peut être lue à divers endroits, il est prudent de la définir afin de garantir sa disponibilité en cas de restauration ou de sauvegarde hors ligne.

L’option pg-path est vérifiée par rapport à la valeur rapportée par PostgreSQL à chaque sauvegarde en ligne, elle doit donc toujours être à jour.

example: --pg1-path=/data/db

Nom obsolète : db-path

Option de port PostgreSQL (--pg-port)

Port PostgreSQL.

Port sur lequel PostgreSQL est en cours d’exécution. Ce paramètre n’a généralement pas besoin d’être spécifié, car la plupart des clusters PostgreSQL s’exécutent sur le port par défaut.

default: 5432
allowed: [0, 65535]
example: --pg1-port=6543

Nom obsolète : db-port

Option Chemin du socket PostgreSQL (--pg-socket-path)

Chemin du socket Unix de PostgreSQL.

Répertoire du socket Unix spécifié lors du démarrage de PostgreSQL. pgBackRest recherche automatiquement dans l’emplacement standard de votre système d’exploitation, aussi il est généralement inutile de préciser ce paramètre, sauf si le répertoire du socket a été explicitement modifié à l’aide du paramètre unix_socket_directories dans postgresql.conf.

example: --pg1-socket-path=/var/run/postgresql

Nom obsolète : db-socket-path

Option utilisateur de base de données PostgreSQL (--pg-user)

Utilisateur de base de données PostgreSQL.

Le nom d’utilisateur de la base de données utilisé lors de la connexion à PostgreSQL. Si non spécifié, pgBackRest se connectera avec l’utilisateur système local ou PGUSER.

example: --pg1-user=backupuser

4.5 - Commande de vérification (check)

Référence des options et du comportement de la commande pgBackRest check.

La commande check vérifie que pgBackRest et le paramètre archive_command sont correctement configurés pour l’archivage et les sauvegardes du stanza spécifié. Elle tente de vérifier tous les dépôts et bases de données configurés pour l’hôte sur lequel la commande est exécutée. Elle détecte les mauvaises configurations, en particulier celles relatives à l’archivage, qui entraînent des sauvegardes incomplètes car des segments WAL requis n’ont pas atteint l’archive. La commande peut être exécutée sur l’hôte PostgreSQL ou sur l’hôte dépôt. Elle peut également être exécutée sur l’hôte de basculement, toutefois, comme les opérations pg_switch_xlog()/pg_switch_wal() ne peuvent pas être effectuées sur le basculement, la commande ne testera que la configuration du dépôt.

Notez que pg_create_restore_point('pgBackRest Archive Check') et pg_switch_xlog()/pg_switch_wal() sont appelés pour forcer PostgreSQL à archiver un segment WAL.

Options de commande

Option de vérification de l’archive (--archive-check)

Vérifiez que les segments WAL sont présents dans l’archive avant la fin de la sauvegarde.

Vérifie que tous les segments WAL nécessaires pour rendre la sauvegarde cohérente sont présents dans l’archive WAL. Il est recommandé de laisser cette option par défaut, sauf si vous utilisez une autre méthode d’archivage.

Cette option doit être activée si archive-copy est activé.

default: y
example: --no-archive-check

Vérifier l’option Mode archive (--archive-mode-check)

Vérifiez le paramètre PostgreSQL archive_mode.

Activé par défaut, cette option interdit PostgreSQL archive_mode=always.

Les segments WAL poussés depuis un serveur de secours peuvent être logiquement identiques aux segments WAL poussés depuis le principal, mais présenter des sommes de contrôle différentes. Il est recommandé de désactiver l’archivage depuis plusieurs sources afin d’éviter les conflits.

AVERTISSEMENT :

Si cette option est désactivée, il est essentiel de s’assurer qu’un seul archivage écrit dans le dépôt via la commande archive-push.

default: y
example: --no-archive-mode-check

Option délai d’archivage (--archive-timeout)

Délai d’attente de l’archive.

Définir le délai maximal, en secondes, d’attente pour chaque segment WAL afin qu’il atteigne le dépôt d’archive pgBackRest. Ce délai s’applique aux commandes check et backup lors de l’attente des segments WAL nécessaires à la cohérence de la sauvegarde.

default: 1m
allowed: [100ms, 1d]
example: --archive-timeout=30

Option de sauvegarde depuis une instance de secours (--backup-standby)

Sauvegarde à partir du cluster de secours.

Activez la sauvegarde depuis le serveur de secours afin de réduire la charge sur le cluster principal. Cette option nécessite que les hôtes principal et de secours soient configurés.

Les modes suivants sont pris en charge :

  • y - un serveur standby est obligatoire pour la sauvegarde.
  • prefer - effectuer la sauvegarde depuis le serveur standby s’il est disponible, sinon depuis le primaire.
  • n - effectuer la sauvegarde uniquement depuis le primaire.
default: n
example: --backup-standby=y

Options générales

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: n
example: --allow-root

Option Taille tampon (--buffer-size)

Taille du tampon pour les opérations d’E/S.

Taille de tampon utilisée pour les opérations de copie, de compression, de chiffrement et autres. Le nombre de tampons utilisés dépend des options, et chaque opération peut utiliser une mémoire supplémentaire, par exemple, la compression gz peut utiliser jusqu’à 256KiB de mémoire supplémentaire.

Les valeurs autorisées sont 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB et 16MiB.

default: 1MiB
example: --buffer-size=2MiB

Option de commande client SSH (--cmd-ssh)

Commande cliente SSH.

Utilisez une commande cliente SSH spécifique lorsque vous souhaitez utiliser une alternative ou que la commande ssh n’est pas disponible dans $PATH.

default: ssh
example: --cmd-ssh=/usr/bin/ssh

Option niveau de compression réseau (--compress-level-network)

Niveau de compression du réseau.

Définit le niveau de compression réseau lorsque compress-type=none et la commande ne sont pas exécutées sur le même hôte que le dépôt. La compression est utilisée pour réduire le trafic réseau. Lorsque compress-type est différent de none, le paramètre compress-level-network est ignoré et compress-level est utilisé à la place, afin que le fichier ne soit compressé qu’une seule fois.

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

Option de configuration (--config)

Fichier de configuration pgBackRest.

Utilisez cette option pour spécifier un fichier de configuration différent du fichier par défaut.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

Option Chemin d’inclusion de configuration (--config-include-path)

Chemin vers les fichiers de configuration supplémentaires de pgBackRest.

Les fichiers de configuration se trouvant dans l’emplacement spécifié et ayant l’extension .conf seront concaténés au fichier de configuration de pgBackRest, ce qui donne un seul fichier de configuration.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration (--config-path)

Chemin de base des fichiers de configuration de pgBackRest.

Ce paramètre est utilisé pour remplacer le chemin de base par défaut pour les options --config et --config-include-path, sauf si ces dernières sont explicitement définies en ligne de commande.

Par exemple, passer uniquement --config-path=/conf/pgbackrest fait que la valeur par défaut de --config est définie à /conf/pgbackrest/pgbackrest.conf et que la valeur par défaut de --config-include-path est définie à /conf/pgbackrest/conf.d.

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

Option de délai d’attente de la base de données (--db-timeout)

Délai d’attente dépassé pour la requête de base de données.

Définit le délai d’attente, en secondes, des requêtes effectuées contre la base de données. Cela inclut les fonctions de démarrage et d’arrêt de la sauvegarde, qui peuvent chacune prendre beaucoup de temps. En raison de cela, le délai d’attente doit être maintenu élevé, sauf si vous savez que ces fonctions retourneront rapidement (par exemple, si vous avez défini start-fast=y et que vous savez que le cluster de base de données ne générera pas beaucoup de segments WAL pendant la sauvegarde).

NOTE : L’option db-timeout doit être inférieure à l’option protocol-timeout.

default: 30m
allowed: [100ms, 7d]
example: --db-timeout=600

Option d’expiration I/O (--io-timeout)

Délai d’attente d’E/S dépassé.

Délai d’attente, en secondes, utilisé pour les connexions et les opérations de lecture/écriture.

Notez que l’opération de lecture/écriture entière n’a pas besoin de se terminer dans ce délai d’attente, mais une certaine progression doit être réalisée, même si elle ne concerne qu’un seul octet.

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

Option de masque neutre (--neutral-umask)

Utilisez un umask neutre.

Définit le umask à 0000 afin que les modes du dépôt soient créés de manière cohérente. Le mode par défaut du répertoire est 0750 et le mode par défaut du fichier est 0640.

Pour utiliser le umask de l’utilisateur en cours, spécifiez neutral-umask=n dans le fichier de configuration ou --no-neutral-umask en ligne de commande.

default: y
example: --no-neutral-umask

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: --priority=19

Option délai d’attente du protocole (--protocol-timeout)

Délai d’attente du protocole.

Définit le délai d’attente, en secondes, durant lequel le processus local ou distant attend qu’un nouveau message soit reçu au niveau du protocole. Cela empêche les processus de rester bloqués indéfiniment en attente d’un message.

NOTE : L’option protocol-timeout doit être supérieure à l’option db-timeout.

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

Option Keep Alive (--sck-keep-alive)

Activation du keep-alive.

Active les messages keep-alive sur les connexions socket.

default: y
example: --no-sck-keep-alive

Option stanza (--stanza)

Définit la stanza.

Une stanza est la configuration d’un cluster de base de données PostgreSQL qui définit son emplacement, la manière dont il sera sauvegardé, les options d’archivage, etc. La plupart des serveurs de base de données n’ont qu’un seul cluster PostgreSQL et donc une seule stanza, tandis que les serveurs de sauvegarde ont une stanza pour chaque cluster de base de données à sauvegarder.

Il est tentant de nommer la stanza en fonction du cluster principal, mais un nom plus pertinent décrit les bases de données contenues dans le cluster. Étant donné que le nom de la stanza sera utilisé pour le principal et toutes les répliques, il est préférable de choisir un nom qui décrit la fonction réelle du cluster, par exemple app ou dw, plutôt que le nom local du cluster, comme main ou prod.

example: --stanza=main

Option de nombre de connexions Keep Alive (--tcp-keep-alive-count)

Nombre de maintien de connexion.

Spécifie le nombre de messages TCP keep-alive pouvant être perdus avant que la connexion ne soit considérée comme inactive.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPCNT.

allowed: [1, 32]
example: --tcp-keep-alive-count=3

Option d’idle Keep Alive (--tcp-keep-alive-idle)

Délai d’inactivité pour la maintien de la connexion.

Spécifie la durée (en secondes) pendant laquelle aucune activité réseau ne se produit, après laquelle le système d’exploitation doit envoyer un message de maintien de connexion TCP.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPIDLE.

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

Option Intervalle Keep Alive (--tcp-keep-alive-interval)

Intervalle de temps pour la maintien de la connexion active.

Spécifie la durée (en secondes) après laquelle un message TCP keep-alive non reconnu doit être renvoyé.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPINTVL.

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

Suites de chiffrement TLSv1.2 Option (--tls-cipher-12)

Suites de chiffrement TLSv1.2 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. L’exemple proposé constitue un choix raisonnable sauf si des exigences de sécurité spécifiques s’appliquent. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

Suites de chiffrement TLSv1.3 Option (--tls-cipher-13)

Suites de chiffrement TLSv1.3 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Options de journalisation

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: --log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: --log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: --log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

Option de journalisation des sous-processus (--log-subprocess)

Activer la journalisation dans les sous-processus.

Activez la journalisation des fichiers pour tout sous-processus créé par ce processus, en utilisant le niveau de journalisation spécifié par log-level-file.

default: n
example: --log-subprocess

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: --no-log-timestamp

Options du mainteneur

Option de version PostgreSQL obligatoire (--pg-version-force)

Forcer la version de PostgreSQL.

La version de PostgreSQL spécifiée sera utilisée à la place de la version détectée automatiquement en lisant pg_control ou les en-têtes WAL. Cela est principalement utile pour les forks de PostgreSQL ou les versions de développement où ces valeurs diffèrent de la version de publication. La version rapportée par PostgreSQL via server_version_num doit correspondre à la version forcée.

AVERTISSEMENT :

Faites preuve de prudence en utilisant cette option, car pg_control et les en-têtes WAL seront toujours lus selon le format attendu pour la version spécifiée, c’est-à-dire le format issu de la version open-source officielle de PostgreSQL. Si la version fork ou développée modifie le format des champs sur lesquels pgBackRest dépend, cela entraînera un comportement imprévu. En général, cette option ne fonctionnera correctement que si le fork ajoute tous les membres de structure personnalisés après les membres standard de PostgreSQL.

example: --pg-version-force=15

Options du dépôt

Option de conteneur de dépôt Azure (--repo-azure-container)

Conteneur de dépôt Azure.

Conteneur Azure utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés dans la racine du conteneur en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par Azure dans le conteneur.

example: --repo1-azure-container=pg-backup

Type de clé du dépôt Azure (--repo-azure-key-type)

Type de clé du dépôt Azure.

Les types suivants sont pris en charge pour l’autorisation :

  • shared - Clé partagée
  • sas - Signature d’accès partagé
  • auto - Autorisation automatique à l’aide d’identités managées Azure
default: shared
example: --repo1-azure-key-type=sas

Option de style d’URI de dépôt Azure (--repo-azure-uri-style)

Style URI Azure.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte account.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer le compte aux URI.
default: host
example: --repo1-azure-uri-style=path

Type de chiffrement du dépôt (--repo-cipher-type)

Chiffrement utilisé pour chiffrer le dépôt.

Les types de chiffrement suivants sont pris en charge :

  • none - Le dépôt n’est pas chiffré
  • aes-256-cbc - Advanced Encryption Standard avec une longueur de clé de 256 bits

Notez que le chiffrement est toujours effectué côté client, même si le type de dépôt (par exemple S3) prend en charge le chiffrement.

default: none
example: --repo1-cipher-type=aes-256-cbc

Option de bac de dépôt GCS (--repo-gcs-bucket)

Dépôt de bucket GCS.

Dépôt GCS utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par GCS dans le bucket.

example: --repo1-gcs-bucket=/pg-backup

Option de point de terminaison du dépôt GCS (--repo-gcs-endpoint)

Point de terminaison du dépôt GCS.

Point d’accès utilisé pour se connecter au service de stockage. Peut être mis à jour pour utiliser un serveur local GCS ou un point d’accès alternatif.

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

Type de clé du dépôt GCS (--repo-gcs-key-type)

Type de clé du dépôt GCS.

Les types suivants sont pris en charge pour l’autorisation :

  • auto - Autoriser à l’aide du compte de service de l’instance.
  • service - Compte de service à partir d’une clé stockée localement.
  • token - À utiliser pour les tests locaux, par exemple fakegcs.

Lorsque repo-gcs-key-type=service, les identifiants seront rechargés lorsque le jeton d’authentification sera renouvelé.

default: service
example: --repo1-gcs-key-type=auto

Option ID du projet du dépôt GCS (--repo-gcs-user-project)

Identifiant du projet GCS.

ID du projet GCS utilisé pour déterminer la facturation des requêtes.

example: --repo1-gcs-user-project=my-project

Option hôte du dépôt (--repo-host)

Hôte du dépôt lors de l’opération à distance.

Lors de la sauvegarde et de l’archivage vers un système de fichiers monté localement, ce paramètre n’est pas requis.

example: --repo1-host=repo1.domain.com

Nom obsolète : backup-host

Option du fichier de l’autorité de certification hôte du dépôt (--repo-host-ca-file)

Fichier de l’autorité de certification du serveur de dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte du dépôt.

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’autorité de certification du dépôt (--repo-host-ca-path)

Chemin de l’autorité de certification du serveur de dépôt.

Utilisez un chemin de certificat d’autorité (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte du dépôt.

example: --repo1-host-ca-path=/etc/pki/tls/certs

Option de fichier de certificat d’hôte du dépôt (--repo-host-cert-file)

Fichier de certificat d’hôte du dépôt.

Envoyé à l’hôte du dépôt pour prouver l’identité du client.

example: --repo1-host-cert-file=/path/to/client.crt

Option de commande hôte du dépôt (--repo-host-cmd)

Hôte du dépôt commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes local et de dépôt. Si non défini, la commande de dépôt sera définie de la même manière que celle de l’hôte local.

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : backup-cmd

Option de configuration de l’hôte du dépôt (--repo-host-config)

Fichier de configuration du serveur de dépôt pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le fichier de configuration de l’hôte du dépôt se trouve dans un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : sauvegarde-config

Option de chemin d’inclusion de configuration d’hôte de dépôt (--repo-host-config-include-path)

Configuration du serveur de dépôt pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration de l’hôte du dépôt est différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

Chemin de configuration de l’hôte du dépôt (--repo-host-config-path)

Chemin de configuration du serveur de dépôt pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin de configuration de l’hôte du dépôt est différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

Option de fichier de clé hôte du dépôt (--repo-host-key-file)

Fichier de clé hôte du dépôt.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --repo1-host-key-file=/path/to/client.key

Option de port hôte du dépôt (--repo-host-port)

Port de l’hôte du dépôt lorsque repo-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole du serveur du dépôt.

NOTE : Lorsque repo-host-type=ssh, il n’existe pas de valeur par défaut pour repo-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

Nom obsolète : backup-ssh-port

Type de protocole d’hôte de dépôt (--repo-host-type)

Type de protocole d’hôte de dépôt.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --repo1-host-type=tls

Option d’utilisateur hôte de dépôt (--repo-host-user)

Utilisateur hôte du dépôt lorsque repo-host est défini.

Définit l’utilisateur utilisé pour les opérations sur l’hôte du dépôt. Il est préférable que ce ne soit pas l’utilisateur postgres, mais plutôt un autre utilisateur tel que pgbackrest. Si PostgreSQL s’exécute sur l’hôte du dépôt, l’utilisateur postgres peut être ajouté au groupe pgbackrest afin d’avoir des permissions de lecture sur le dépôt sans pouvoir accidentellement le modifier.

default: pgbackrest
example: --repo1-host-user=repo-user

Nom obsolète : backup-user

Option Chemin du dépôt (--repo-path)

Chemin où les sauvegardes et l’archive sont stockées.

Le dépôt est l’emplacement où pgBackRest stocke les sauvegardes et les archives des segments WAL.

Il peut être difficile de prévoir à l’avance l’espace nécessaire. La meilleure approche consiste à effectuer quelques sauvegardes, puis à noter la taille des différents types de sauvegardes (pleines, incrémentielles, différentielles) et à mesurer la quantité de WAL générée par jour. Cela vous donnera une idée générale de l’espace requis, bien que les besoins évoluent probablement au fil du temps avec l’évolution de votre base de données.

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

Option de bac de dépôt S3 (--repo-s3-bucket)

Dépôt S3.

Dépôt S3 utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par AWS dans le bucket.

example: --repo1-s3-bucket=pg-backup

Option de point de terminaison du dépôt S3 (--repo-s3-endpoint)

Point de terminaison du dépôt S3.

Le point de terminaison AWS doit être valide pour la région sélectionnée.

Pour les configurations personnalisées ou les tests, les options repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port, et repo-storage-verify-tls peuvent être utiles.

example: --repo1-s3-endpoint=s3.amazonaws.com

Type de clé du dépôt S3 (--repo-s3-key-type)

Type de clé pour le dépôt S3.

Les types suivants sont pris en charge :

  • shared - Clés partagées
  • auto - Récupérer automatiquement les identifiants temporaires
  • web-id - Récupérer automatiquement les identifiants d’identité web
  • pod-id - Récupérer automatiquement les identifiants d’identité de pod EKS
  • process - Récupérer les identifiants en exécutant un processus
default: shared
example: --repo1-s3-key-type=auto

Option ID de clé KMS pour dépôt S3 (--repo-s3-kms-key-id)

Clé KMS du dépôt S3.

Active le chiffrement côté serveur S3 en utilisant la clé du service de gestion des clés AWS spécifiée.

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

Option de commande du processus d’authentification S3 (--repo-s3-process-cmd)

Commande du processus d’authentification S3.

Commande (et arguments facultatifs) à exécuter pour récupérer les identifiants temporaires S3. Le premier élément de la liste est la commande, les éléments suivants sont passés en tant que paramètres.

Le processus doit produire un JSON contenant les champs AccessKeyId, SecretAccessKey, SessionToken et Expiration. Les identifiants seront automatiquement actualisés avant l’expiration. Voir Process Credential Provider pour les détails du format.

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

Option de région du dépôt S3 (--repo-s3-region)

Région du dépôt S3.

La région AWS où le bucket a été créé.

example: --repo1-s3-region=us-east-1

Option Requesteur Payant pour le dépôt S3 (--repo-s3-requester-pays)

Dépôt S3 payeur de la demande.

Active le paiement par le demandeur S3.

default: n
example: --no-repo1-s3-requester-pays

Option de rôle du dépôt S3 (--repo-s3-role)

Rôle du dépôt S3.

Le nom du rôle AWS (pas le nom ARN complet) utilisé pour récupérer les identifiants temporaires lorsque repo-s3-key-type=auto.

example: --repo1-s3-role=authrole

Option de service de dépôt S3 (--repo-s3-service)

Service de signature S3.

Le service de signature S3 utilisé dans l’authentification SigV4. La valeur par défaut est s3 pour les points d’accès S3 standards. À définir sur s3-outposts lors de l’utilisation d’un point d’accès S3 Outposts.

default: s3
example: --repo1-s3-service=s3-outposts

Option de point de terminaison STS du dépôt S3 (--repo-s3-sts-host)

Point de terminaison STS du dépôt S3.

Point de terminaison STS utilisé pour récupérer des identifiants temporaires lorsque repo-s3-key-type=web-id est configuré. Définissez-le sur un point de terminaison régional (par exemple sts.us-east-1.amazonaws.com) pour utiliser STS régional, ce qui peut être nécessaire pour les régions GovCloud, Chine, ou pour réduire la latence.

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

Option de style d’URI de dépôt S3 (--repo-s3-uri-style)

Style d’URI S3.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte bucket.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer les URI par le répertoire.
default: host
example: --repo1-s3-uri-style=path

Option hôte du dépôt SFTP (--repo-sftp-host)

Hôte du dépôt SFTP.

Hôte SFTP contenant le dépôt.

example: --repo1-sftp-host=sftprepo.domain

Fingerprint de l’hôte du dépôt SFTP (--repo-sftp-host-fingerprint)

Empreinte du serveur hôte du dépôt SFTP.

La génération de l’empreinte d’hôte du dépôt SFTP doit correspondre à repo-sftp-host-key-hash-type. Générez l’empreinte via awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Les clés d’hôte SSH se trouvent normalement dans le répertoire /etc/ssh.

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

Type d’option de vérification de la clé hôte SFTP (--repo-sftp-host-key-check-type)

Type de vérification de la clé hôte SFTP.

Les types de vérification de clé d’hôte SFTP suivants sont pris en charge :

  • strict - pgBackRest n’ajoutera jamais automatiquement les clés d’hôte au fichier ~/.ssh/known_hosts, et refusera de se connecter aux hôtes dont la clé d’hôte a changé ou n’est pas trouvée dans les fichiers known hosts. Cette option oblige l’utilisateur à ajouter manuellement tous les nouveaux hôtes.
  • accept-new - pgBackRest ajoutera automatiquement les nouvelles clés d’hôte au fichier known hosts de l’utilisateur, mais n’autorisera pas les connexions aux hôtes dont la clé d’hôte a changé.
  • fingerprint - pgBackRest vérifiera la clé d’hôte contre l’empreinte spécifiée par l’option repo-sftp-host-fingerprint.
  • none - aucune vérification de clé d’hôte ne sera effectuée.
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

Type de hachage de la clé hôte du dépôt SFTP (--repo-sftp-host-key-hash-type)

Type de hachage de la clé d’hôte du dépôt SFTP.

Type de hachage de la clé hôte du dépôt SFTP. Déclare le type de hachage à utiliser pour calculer le hachage de la clé hôte du système distant au démarrage SSH. Les versions plus récentes de libssh2 prennent en charge sha256 en plus de md5 et sha1.

example: --repo1-sftp-host-key-hash-type=sha256

Option de port hôte du dépôt SFTP (--repo-sftp-host-port)

Port hôte du dépôt SFTP.

Port hôte du dépôt SFTP.

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

Option utilisateur hôte dépôt SFTP (--repo-sftp-host-user)

Utilisateur hôte du dépôt SFTP.

Utilisateur sur l’hôte utilisé pour stocker le dépôt.

example: --repo1-sftp-host-user=pg-backup

Option fichier Hôtes SFTP connus (--repo-sftp-known-host)

Fichier d’hôtes SFTP connus.

Fichier known hosts à consulter pour rechercher une correspondance avec un hôte SFTP lors de l’authentification. Si non spécifié, pgBackRest recherchera par défaut dans ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts et /etc/ssh/ssh_known_hosts2. Si configuré avec un ou plusieurs chemins de fichier, pgBackRest recherchera dans ces fichiers une correspondance. Les chemins de fichier doivent être complets ou commencer par un tilde. L’option repo-sftp-known-host peut être spécifiée plusieurs fois pour indiquer plusieurs fichiers known hosts à consulter. Pour utiliser la vérification du fichier known hosts, l’option repo-sftp-host-fingerprint ne doit pas être définie. Voir également l’option repo-sftp-host-check-type.

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

Option fichier de clé privée du dépôt SFTP (--repo-sftp-private-key-file)

Fichier de clé privée SFTP.

Fichier de clé privée SFTP utilisé pour l’authentification.

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

Option de fichier de clé publique du dépôt SFTP (--repo-sftp-public-key-file)

Fichier de clé publique SFTP.

Fichier de clé publique SFTP utilisé pour l’authentification. Facultatif si compilé contre OpenSSL, obligatoire si compilé contre une autre bibliothèque.

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

Option du fichier CA du dépôt de stockage (--repo-storage-ca-file)

Fichier de certificat d’autorité de certification pour le dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Noms obsolètes : repo-azure-ca-file, repo-s3-ca-file

Option de chemin du certificat CA TLS pour le dépôt (--repo-storage-ca-path)

Chemin du certificat d’autorité de certification du dépôt.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-path=/etc/pki/tls/certs

Noms obsolètes : repo-azure-ca-path, repo-s3-ca-path

Option hôte de stockage du dépôt (--repo-storage-host)

Hôte de stockage du dépôt.

Se connecter à un hôte autre que le point de terminaison de stockage (par exemple S3, Azure). Cela est généralement utilisé pour les tests.

example: --repo1-storage-host=127.0.0.1

Noms obsolètes : repo-azure-host, repo-s3-host

Option de port du stockage du dépôt (--repo-storage-port)

Port du stockage du dépôt.

Port à utiliser lors de la connexion au point de terminaison du stockage (par exemple S3, Azure) ou à l’hôte (le cas échéant).

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

Noms obsolètes : repo-azure-port, repo-s3-port

Option d’étiquette de stockage du dépôt (--repo-storage-tag)

Étiquette(s) de stockage du dépôt.

Spécifiez les balises à ajouter aux objets lorsque le dépôt est un magasin d’objets (par exemple, S3). L’option peut être répétée pour ajouter plusieurs balises.

Il n’existe aucune fonctionnalité dans pgBackRest permettant de modifier ces balises ; veillez donc à les définir correctement avant d’exécuter stanza-create afin d’assurer une cohérence des balises dans l’ensemble du dépôt.

example: --repo1-storage-tag=key1=value1

Option de taille de morceau de chargement du dépôt (--repo-storage-upload-chunk-size)

Taille du morceau de chargement du dépôt.

Les magasins d’objets tels que S3 permettent de télécharger des fichiers par morceaux lorsque le fichier est trop volumineux pour être stocké en mémoire. Même si le fichier peut être stocké en mémoire, il est plus efficace en mémoire de limiter la quantité de mémoire utilisée pour les téléchargements.

Une taille de morceau plus élevée entraîne généralement de meilleures performances, car elle réduit le nombre de requêtes de téléchargement et permet de télécharger plus de fichiers en une seule requête plutôt qu’en morceaux. Le désavantage est que la consommation mémoire sera plus élevée, et comme la mémoire tampon de morceau doit être allouée par processus, des valeurs plus élevées de process-max entraînent une consommation mémoire globale plus importante.

Notez que les tailles de morceau valides varient selon le type de stockage et la plateforme. Par exemple, AWS S3 impose une taille minimale de morceau de 5MiB. La terminologie relative à la taille du morceau varie selon le type de stockage ; utilisez donc « part size » pour AWS S3, « chunk size » pour GCS et « block size » pour Azure lorsque vous recherchez les valeurs minimales ou maximales.

Si un fichier est plus grand que 1GiB (la taille maximale que PostgreSQL crée par défaut), la taille de tranche sera augmentée progressivement jusqu’à la valeur maximale autorisée afin de terminer le téléchargement du fichier.

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

Option de vérification du certificat de stockage du dépôt (--repo-storage-verify-tls)

Vérification du certificat du dépôt de stockage.

Cette option permet d’activer/désactiver la vérification du certificat TLS du serveur de stockage (par exemple, S3, Azure). La désactivation ne doit être utilisée que pour des tests ou d’autres scénarios où un certificat a été auto-signé.

default: y
example: --no-repo1-storage-verify-tls

Noms obsolètes : repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

Option de type de dépôt (--repo-type)

Type de stockage utilisé pour le dépôt.

Les types de dépôt suivants sont pris en charge :

  • azure - Service de stockage Blob Azure
  • cifs - Comme posix, mais désactive les liens et les fsyncs de répertoire
  • gcs - Google Cloud Storage
  • posix - Systèmes de fichiers conformes à Posix
  • s3 - AWS Simple Storage Service
  • sftp - Protocole de transfert de fichiers sécurisé

Lorsqu’un montage NFS est utilisé comme dépôt posix, les mêmes règles s’appliquent à pgBackRest qu’indiquées dans la documentation PostgreSQL : Création d’un cluster de base de données - Systèmes de fichiers .

default: posix
example: --repo1-type=cifs

Options de stanza

Option base de données PostgreSQL (--pg-database)

Base de données PostgreSQL.

Le nom de la base de données utilisé lors de la connexion à PostgreSQL. La valeur par défaut est généralement la meilleure option, mais certaines installations peuvent ne pas contenir cette base de données.

Notez que, pour des raisons historiques, le paramétrage de la variable d’environnement PGDATABASE sera ignoré.

default: postgres
example: --pg1-database=backupdb

Option Hôte PostgreSQL (--pg-host)

Hôte PostgreSQL pour une opération à distance.

Utilisé pour les sauvegardes où l’hôte PostgreSQL est différent de l’hôte du dépôt.

example: --pg1-host=db.domain.com

Nom obsolète : db-host

Option Fichier de l’Autorité de certification du serveur PostgreSQL (--pg-host-ca-file)

Fichier de l’autorité de certification du serveur PostgreSQL.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte PostgreSQL.

example: --pg1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’Autorité de certification du serveur PostgreSQL (--pg-host-ca-path)

Chemin de l’autorité de certification du serveur PostgreSQL.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte PostgreSQL.

example: --pg1-host-ca-path=/etc/pki/tls/certs

Option Fichier de certificat d’hôte PostgreSQL (--pg-host-cert-file)

Fichier de certificat d’hôte PostgreSQL.

Envoyé à l’hôte PostgreSQL pour prouver l’identité du client.

example: --pg1-host-cert-file=/path/to/client.crt

Option de commande hôte PostgreSQL (--pg-host-cmd)

Hôte PostgreSQL : commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes locaux et PostgreSQL. Si ce n’est pas défini, la commande sur l’hôte PostgreSQL sera définie de la même manière que celle sur l’hôte local.

default: [path of executed pgbackrest binary]
example: --pg1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : db-cmd

Option de configuration hôte PostgreSQL (--pg-host-config)

Fichier de configuration du serveur de base de données pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte PostgreSQL. Cette option est nécessaire uniquement si le fichier de configuration PostgreSQL est situé à un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --pg1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : db-config

Chemin d’inclusion de la configuration hôte PostgreSQL (--pg-host-config-include-path)

Configuration de l’hôte de base de données pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte PostgreSQL. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration PostgreSQL se trouve dans un emplacement différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --pg1-host-config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration de l’hôte PostgreSQL (--pg-host-config-path)

Chemin de configuration de l’hôte de base de données pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte PostgreSQL. Cette option est nécessaire uniquement si le chemin de configuration PostgreSQL se trouve dans un emplacement différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --pg1-host-config-path=/conf/pgbackrest

Option fichier clé hôte PostgreSQL (--pg-host-key-file)

Fichier de clé hôte PostgreSQL.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --pg1-host-key-file=/path/to/client.key

Option Port hôte PostgreSQL (--pg-host-port)

Port de l’hôte PostgreSQL lorsque pg-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole d’hôte PostgreSQL.

NOTE : Lorsque pg-host-type=ssh, il n’existe pas de valeur par défaut pour pg-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on pg-host-type):
    tls - 8432

allowed: [0, 65535]
example: --pg1-host-port=25

Nom obsolète : db-ssh-port

Type de protocole d’hôte PostgreSQL (--pg-host-type)

Type de protocole hôte PostgreSQL.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --pg1-host-type=tls

Option utilisateur hôte PostgreSQL (--pg-host-user)

Utilisateur de connexion au serveur PostgreSQL lorsqu’pg-host est défini.

Cet utilisateur possédera également le processus pgBackRest distant et initiera les connexions à PostgreSQL. Pour que cela fonctionne correctement, l’utilisateur doit être le propriétaire du cluster de base de données PostgreSQL, ce qui correspond généralement à postgres, la valeur par défaut.

default: postgres
example: --pg1-host-user=db_owner

Nom obsolète : db-user

Option Chemin PostgreSQL (--pg-path)

Répertoire de données PostgreSQL.

Il doit être identique à la valeur data_directory rapportée par PostgreSQL. Même si cette valeur peut être lue à divers endroits, il est prudent de la définir afin de garantir sa disponibilité en cas de restauration ou de sauvegarde hors ligne.

L’option pg-path est vérifiée par rapport à la valeur rapportée par PostgreSQL à chaque sauvegarde en ligne, elle doit donc toujours être à jour.

example: --pg1-path=/data/db

Nom obsolète : db-path

Option de port PostgreSQL (--pg-port)

Port PostgreSQL.

Port sur lequel PostgreSQL est en cours d’exécution. Ce paramètre n’a généralement pas besoin d’être spécifié, car la plupart des clusters PostgreSQL s’exécutent sur le port par défaut.

default: 5432
allowed: [0, 65535]
example: --pg1-port=6543

Nom obsolète : db-port

Option Chemin du socket PostgreSQL (--pg-socket-path)

Chemin du socket Unix de PostgreSQL.

Répertoire du socket Unix spécifié lors du démarrage de PostgreSQL. pgBackRest recherche automatiquement dans l’emplacement standard de votre système d’exploitation, aussi il est généralement inutile de préciser ce paramètre, sauf si le répertoire du socket a été explicitement modifié à l’aide du paramètre unix_socket_directories dans postgresql.conf.

example: --pg1-socket-path=/var/run/postgresql

Nom obsolète : db-socket-path

Option utilisateur de base de données PostgreSQL (--pg-user)

Utilisateur de base de données PostgreSQL.

Le nom d’utilisateur de la base de données utilisé lors de la connexion à PostgreSQL. Si non spécifié, pgBackRest se connectera avec l’utilisateur système local ou PGUSER.

example: --pg1-user=backupuser

4.6 - Commande d'expiration (expire)

Référence des options et du comportement de la commande pgBackRest expire.

pgBackRest effectue la rotation des sauvegardes complètes selon le type de rétention, qui peut être défini par un nombre ou une période de temps. Lorsqu’un nombre est spécifié, l’expiration n’est pas liée à la date de création des sauvegardes, mais au nombre de sauvegardes à conserver. Les sauvegardes différentielles sont basées sur un nombre, mais sont toujours expirées lorsque la sauvegarde complète dont elles dépendent est expirée. Les sauvegardes incrémentielles ne sont pas expirées indépendamment par rétention — elles sont toujours expirées en même temps que leur sauvegarde complète ou différentielle associée. Pour plus de détails et d’exemples, reportez-vous aux sections Rétention des sauvegardes complètes et Rétention des sauvegardes différentielles .

L’archive WAL est conservée par défaut pour les sauvegardes n’ayant pas expiré, mais, bien que non recommandé, ce délai peut être modifié par dépôt à l’aide de l’option retention-archive. Voir la section Archive Retention pour les détails et exemples.

La commande expire s’exécute automatiquement après chaque sauvegarde réussie et peut également être exécutée par l’utilisateur. Lorsqu’elle est exécutée par l’utilisateur, l’expiration s’effectue selon les paramètres de rétention définis pour chaque dépôt configuré. Si l’option --repo est fournie, l’expiration s’applique uniquement au dépôt spécifié. L’expiration peut également être limitée par l’utilisateur à un jeu de sauvegarde spécifique à l’aide de l’option --set, et, sauf si l’option --repo est spécifiée, tous les dépôts seront recherchés et tous ceux correspondant aux critères seront supprimés. Il convient de noter que la planification de rétention des archives sera vérifiée et appliquée chaque fois que la commande expire est exécutée.

Options de commande

Option d’expiration de l’archive avant (--archive-expire-before)

Supprimez les archives WAL antérieures au segment WAL spécifié.

Supprime les segments WAL antérieurs au segment spécifié, mais uniquement ceux qui ne sont pas requis par une sauvegarde conservée, c’est-à-dire les segments antérieurs à la plus ancienne sauvegarde à conserver, ou tout segment lorsque le dépôt ne contient aucune sauvegarde. Le segment spécifié et tous les segments suivants sont conservés. Cette option correspond à la valeur passée par PostgreSQL à archive_cleanup_command comme %r.

Cette option est principalement destinée aux dépôts en mode archive uniquement, où aucune sauvegarde n’est stockée. Elle peut également être utilisée pour récupérer de l’espace d’archive WAL avant la première sauvegarde, lorsque la rétention complète n’a pas encore été atteinte, afin de déclencher l’expiration de l’archive.

example: --archive-expire-before=000000010000000000000010

Option la plus ancienne (--oldest)

Expire la sauvegarde la plus ancienne éligible.

Expire la plus ancienne sauvegarde complète pouvant être supprimée (c’est-à-dire qu’au moins une sauvegarde complète plus récente reste). Cela équivaut à diminuer manuellement la rétention de un, mais est calculé automatiquement. Toutes les sauvegardes associées au jeu de sauvegardes complètes expirées (différentielles et incrémentielles) sont également expirées.

Lorsqu’il est utilisé, la rétention des archives est également ajustée temporairement afin de pouvoir supprimer les WAL des sauvegardes expirées lors du même traitement.

Si la rétention basée sur le temps est configurée (à l’aide de --repo-retention-full-type=time), alors --oldest utilise une expiration basée sur le nombre pour cette exécution.

AVERTISSEMENT :

Cette option ne peut pas être combinée avec --set.

default: n
example: --oldest

Définir l’option (--set)

Sauvegarde marquée pour expiration.

L’ensemble de sauvegarde spécifié (c’est-à-dire l’étiquette de sauvegarde fournie et toutes ses sauvegardes dépendantes, le cas échéant) sera expiré, quelle que soit la règle de rétention des sauvegardes, à condition qu’au moins une sauvegarde complète reste présente dans le dépôt.

AVERTISSEMENT :

Utilisez cette option avec la plus grande prudence : elle supprimera définitivement toutes les sauvegardes et archives non nécessaires à la cohérence d’une sauvegarde du dépôt pgBackRest pour l’ensemble de sauvegarde spécifié. Ce processus peut rendre impossible la récupération à un point précis dans le temps (PITR). Si les options --repo-retention-full et/ou --repo-retention-archive sont configurées, il est recommandé de les remplacer en définissant leurs valeurs au maximum lors d’une expiration ponctuelle afin d’éviter une suppression involontaire d’archives.

example: --set=20150131-153358F_20150131-153401I

Options générales

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: n
example: --allow-root

Option Taille tampon (--buffer-size)

Taille du tampon pour les opérations d’E/S.

Taille de tampon utilisée pour les opérations de copie, de compression, de chiffrement et autres. Le nombre de tampons utilisés dépend des options, et chaque opération peut utiliser une mémoire supplémentaire, par exemple, la compression gz peut utiliser jusqu’à 256KiB de mémoire supplémentaire.

Les valeurs autorisées sont 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB et 16MiB.

default: 1MiB
example: --buffer-size=2MiB

Option de commande client SSH (--cmd-ssh)

Commande cliente SSH.

Utilisez une commande cliente SSH spécifique lorsque vous souhaitez utiliser une alternative ou que la commande ssh n’est pas disponible dans $PATH.

default: ssh
example: --cmd-ssh=/usr/bin/ssh

Option niveau de compression réseau (--compress-level-network)

Niveau de compression du réseau.

Définit le niveau de compression réseau lorsque compress-type=none et la commande ne sont pas exécutées sur le même hôte que le dépôt. La compression est utilisée pour réduire le trafic réseau. Lorsque compress-type est différent de none, le paramètre compress-level-network est ignoré et compress-level est utilisé à la place, afin que le fichier ne soit compressé qu’une seule fois.

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

Option de configuration (--config)

Fichier de configuration pgBackRest.

Utilisez cette option pour spécifier un fichier de configuration différent du fichier par défaut.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

Option Chemin d’inclusion de configuration (--config-include-path)

Chemin vers les fichiers de configuration supplémentaires de pgBackRest.

Les fichiers de configuration se trouvant dans l’emplacement spécifié et ayant l’extension .conf seront concaténés au fichier de configuration de pgBackRest, ce qui donne un seul fichier de configuration.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration (--config-path)

Chemin de base des fichiers de configuration de pgBackRest.

Ce paramètre est utilisé pour remplacer le chemin de base par défaut pour les options --config et --config-include-path, sauf si ces dernières sont explicitement définies en ligne de commande.

Par exemple, passer uniquement --config-path=/conf/pgbackrest fait que la valeur par défaut de --config est définie à /conf/pgbackrest/pgbackrest.conf et que la valeur par défaut de --config-include-path est définie à /conf/pgbackrest/conf.d.

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

Option de simulation (--dry-run)

Exécutez une exécution en mode simulation pour la commande.

L’option --dry-run est une option uniquement disponible en ligne de commande et peut être utilisée lorsque l’on souhaite déterminer quels changements seront apportés par la commande sans que celle-ci effectue réellement de modification.

default: n
example: --dry-run

Option d’expiration I/O (--io-timeout)

Délai d’attente d’E/S dépassé.

Délai d’attente, en secondes, utilisé pour les connexions et les opérations de lecture/écriture.

Notez que l’opération de lecture/écriture entière n’a pas besoin de se terminer dans ce délai d’attente, mais une certaine progression doit être réalisée, même si elle ne concerne qu’un seul octet.

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

Option Chemin verrou (--lock-path)

Chemin où les fichiers verrou sont stockés.

Le chemin de verrouillage fournit un emplacement où pgBackRest peut créer des fichiers de verrouillage afin d’empêcher l’exécution simultanée d’opérations en conflit.

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

Option de masque neutre (--neutral-umask)

Utilisez un umask neutre.

Définit le umask à 0000 afin que les modes du dépôt soient créés de manière cohérente. Le mode par défaut du répertoire est 0750 et le mode par défaut du fichier est 0640.

Pour utiliser le umask de l’utilisateur en cours, spécifiez neutral-umask=n dans le fichier de configuration ou --no-neutral-umask en ligne de commande.

default: y
example: --no-neutral-umask

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: --priority=19

Option délai d’attente du protocole (--protocol-timeout)

Délai d’attente du protocole.

Définit le délai d’attente, en secondes, durant lequel le processus local ou distant attend qu’un nouveau message soit reçu au niveau du protocole. Cela empêche les processus de rester bloqués indéfiniment en attente d’un message.

NOTE : L’option protocol-timeout doit être supérieure à l’option db-timeout.

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

Option Keep Alive (--sck-keep-alive)

Activation du keep-alive.

Active les messages keep-alive sur les connexions socket.

default: y
example: --no-sck-keep-alive

Option stanza (--stanza)

Définit la stanza.

Une stanza est la configuration d’un cluster de base de données PostgreSQL qui définit son emplacement, la manière dont il sera sauvegardé, les options d’archivage, etc. La plupart des serveurs de base de données n’ont qu’un seul cluster PostgreSQL et donc une seule stanza, tandis que les serveurs de sauvegarde ont une stanza pour chaque cluster de base de données à sauvegarder.

Il est tentant de nommer la stanza en fonction du cluster principal, mais un nom plus pertinent décrit les bases de données contenues dans le cluster. Étant donné que le nom de la stanza sera utilisé pour le principal et toutes les répliques, il est préférable de choisir un nom qui décrit la fonction réelle du cluster, par exemple app ou dw, plutôt que le nom local du cluster, comme main ou prod.

example: --stanza=main

Option de nombre de connexions Keep Alive (--tcp-keep-alive-count)

Nombre de maintien de connexion.

Spécifie le nombre de messages TCP keep-alive pouvant être perdus avant que la connexion ne soit considérée comme inactive.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPCNT.

allowed: [1, 32]
example: --tcp-keep-alive-count=3

Option d’idle Keep Alive (--tcp-keep-alive-idle)

Délai d’inactivité pour la maintien de la connexion.

Spécifie la durée (en secondes) pendant laquelle aucune activité réseau ne se produit, après laquelle le système d’exploitation doit envoyer un message de maintien de connexion TCP.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPIDLE.

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

Option Intervalle Keep Alive (--tcp-keep-alive-interval)

Intervalle de temps pour la maintien de la connexion active.

Spécifie la durée (en secondes) après laquelle un message TCP keep-alive non reconnu doit être renvoyé.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPINTVL.

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

Suites de chiffrement TLSv1.2 Option (--tls-cipher-12)

Suites de chiffrement TLSv1.2 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. L’exemple proposé constitue un choix raisonnable sauf si des exigences de sécurité spécifiques s’appliquent. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

Suites de chiffrement TLSv1.3 Option (--tls-cipher-13)

Suites de chiffrement TLSv1.3 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Options de journalisation

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: --log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: --log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: --log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

Option de journalisation des sous-processus (--log-subprocess)

Activer la journalisation dans les sous-processus.

Activez la journalisation des fichiers pour tout sous-processus créé par ce processus, en utilisant le niveau de journalisation spécifié par log-level-file.

default: n
example: --log-subprocess

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: --no-log-timestamp

Options du dépôt

Définir l’option dépôt (--repo)

Définir le dépôt.

Spécifiez le dépôt sur lequel une commande doit s’opérer.

Par exemple, cette option peut être utilisée pour effectuer une restauration à partir d’un dépôt spécifique, plutôt que de laisser pgBackRest choisir.

allowed: [1, 256]
example: --repo=1

Option de conteneur de dépôt Azure (--repo-azure-container)

Conteneur de dépôt Azure.

Conteneur Azure utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés dans la racine du conteneur en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par Azure dans le conteneur.

example: --repo1-azure-container=pg-backup

Type de clé du dépôt Azure (--repo-azure-key-type)

Type de clé du dépôt Azure.

Les types suivants sont pris en charge pour l’autorisation :

  • shared - Clé partagée
  • sas - Signature d’accès partagé
  • auto - Autorisation automatique à l’aide d’identités managées Azure
default: shared
example: --repo1-azure-key-type=sas

Option de style d’URI de dépôt Azure (--repo-azure-uri-style)

Style URI Azure.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte account.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer le compte aux URI.
default: host
example: --repo1-azure-uri-style=path

Type de chiffrement du dépôt (--repo-cipher-type)

Chiffrement utilisé pour chiffrer le dépôt.

Les types de chiffrement suivants sont pris en charge :

  • none - Le dépôt n’est pas chiffré
  • aes-256-cbc - Advanced Encryption Standard avec une longueur de clé de 256 bits

Notez que le chiffrement est toujours effectué côté client, même si le type de dépôt (par exemple S3) prend en charge le chiffrement.

default: none
example: --repo1-cipher-type=aes-256-cbc

Option de bac de dépôt GCS (--repo-gcs-bucket)

Dépôt de bucket GCS.

Dépôt GCS utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par GCS dans le bucket.

example: --repo1-gcs-bucket=/pg-backup

Option de point de terminaison du dépôt GCS (--repo-gcs-endpoint)

Point de terminaison du dépôt GCS.

Point d’accès utilisé pour se connecter au service de stockage. Peut être mis à jour pour utiliser un serveur local GCS ou un point d’accès alternatif.

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

Type de clé du dépôt GCS (--repo-gcs-key-type)

Type de clé du dépôt GCS.

Les types suivants sont pris en charge pour l’autorisation :

  • auto - Autoriser à l’aide du compte de service de l’instance.
  • service - Compte de service à partir d’une clé stockée localement.
  • token - À utiliser pour les tests locaux, par exemple fakegcs.

Lorsque repo-gcs-key-type=service, les identifiants seront rechargés lorsque le jeton d’authentification sera renouvelé.

default: service
example: --repo1-gcs-key-type=auto

Option ID du projet du dépôt GCS (--repo-gcs-user-project)

Identifiant du projet GCS.

ID du projet GCS utilisé pour déterminer la facturation des requêtes.

example: --repo1-gcs-user-project=my-project

Option hôte du dépôt (--repo-host)

Hôte du dépôt lors de l’opération à distance.

Lors de la sauvegarde et de l’archivage vers un système de fichiers monté localement, ce paramètre n’est pas requis.

example: --repo1-host=repo1.domain.com

Nom obsolète : backup-host

Option du fichier de l’autorité de certification hôte du dépôt (--repo-host-ca-file)

Fichier de l’autorité de certification du serveur de dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte du dépôt.

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’autorité de certification du dépôt (--repo-host-ca-path)

Chemin de l’autorité de certification du serveur de dépôt.

Utilisez un chemin de certificat d’autorité (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte du dépôt.

example: --repo1-host-ca-path=/etc/pki/tls/certs

Option de fichier de certificat d’hôte du dépôt (--repo-host-cert-file)

Fichier de certificat d’hôte du dépôt.

Envoyé à l’hôte du dépôt pour prouver l’identité du client.

example: --repo1-host-cert-file=/path/to/client.crt

Option de commande hôte du dépôt (--repo-host-cmd)

Hôte du dépôt commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes local et de dépôt. Si non défini, la commande de dépôt sera définie de la même manière que celle de l’hôte local.

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : backup-cmd

Option de configuration de l’hôte du dépôt (--repo-host-config)

Fichier de configuration du serveur de dépôt pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le fichier de configuration de l’hôte du dépôt se trouve dans un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : sauvegarde-config

Option de chemin d’inclusion de configuration d’hôte de dépôt (--repo-host-config-include-path)

Configuration du serveur de dépôt pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration de l’hôte du dépôt est différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

Chemin de configuration de l’hôte du dépôt (--repo-host-config-path)

Chemin de configuration du serveur de dépôt pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin de configuration de l’hôte du dépôt est différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

Option de fichier de clé hôte du dépôt (--repo-host-key-file)

Fichier de clé hôte du dépôt.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --repo1-host-key-file=/path/to/client.key

Option de port hôte du dépôt (--repo-host-port)

Port de l’hôte du dépôt lorsque repo-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole du serveur du dépôt.

NOTE : Lorsque repo-host-type=ssh, il n’existe pas de valeur par défaut pour repo-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

Nom obsolète : backup-ssh-port

Type de protocole d’hôte de dépôt (--repo-host-type)

Type de protocole d’hôte de dépôt.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --repo1-host-type=tls

Option d’utilisateur hôte de dépôt (--repo-host-user)

Utilisateur hôte du dépôt lorsque repo-host est défini.

Définit l’utilisateur utilisé pour les opérations sur l’hôte du dépôt. Il est préférable que ce ne soit pas l’utilisateur postgres, mais plutôt un autre utilisateur tel que pgbackrest. Si PostgreSQL s’exécute sur l’hôte du dépôt, l’utilisateur postgres peut être ajouté au groupe pgbackrest afin d’avoir des permissions de lecture sur le dépôt sans pouvoir accidentellement le modifier.

default: pgbackrest
example: --repo1-host-user=repo-user

Nom obsolète : backup-user

Option Chemin du dépôt (--repo-path)

Chemin où les sauvegardes et l’archive sont stockées.

Le dépôt est l’emplacement où pgBackRest stocke les sauvegardes et les archives des segments WAL.

Il peut être difficile de prévoir à l’avance l’espace nécessaire. La meilleure approche consiste à effectuer quelques sauvegardes, puis à noter la taille des différents types de sauvegardes (pleines, incrémentielles, différentielles) et à mesurer la quantité de WAL générée par jour. Cela vous donnera une idée générale de l’espace requis, bien que les besoins évoluent probablement au fil du temps avec l’évolution de votre base de données.

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

Option de rétention des archives (--repo-retention-archive)

Nombre de sauvegardes de WAL continu à conserver.

NOTE : Les segments WAL nécessaires pour rendre une sauvegarde cohérente sont toujours conservés jusqu’à l’expiration de la sauvegarde, quelle que soit la configuration de cette option.

Si cette valeur n’est pas définie et que repo-retention-full-type est égal à count (valeur par défaut), alors l’archive à expirer sera par défaut celle correspondant à la valeur de repo-retention-full (ou repo-retention-diff) associée à repo-retention-archive-type si celle-ci est définie à full (ou diff). Cela garantira que les fichiers WAL ne seront supprimés que pour les sauvegardes déjà expirées. Si repo-retention-full-type est égal à time, alors cette valeur sera par défaut définie pour supprimer les archives antérieures à la plus ancienne sauvegarde complète conservée après avoir satisfait le paramètre repo-retention-full.

Cette option doit être définie si repo-retention-archive-type est réglé sur incr. Si l’espace disque est limité, ce paramètre, combiné à repo-retention-archive-type, peut être utilisé pour supprimer de manière agressive les segments WAL. Toutefois, cela annule la possibilité de réaliser une restauration à un instant donné à partir des sauvegardes ayant des segments WAL expirés, et n’est donc pas recommandé.

allowed: [1, 9999999]
example: --repo1-retention-archive=2

Nom obsolète : rétention-archive

Type de rétention des archives (--repo-retention-archive-type)

Type de sauvegarde pour la rétention de WAL.

Si défini sur full, pgBackRest conservera les journaux d’archive pendant le nombre de sauvegardes complètes défini par repo-retention-archive. Si défini sur diff (différentiel), pgBackRest conservera les journaux d’archive pendant le nombre de sauvegardes complètes et différentielles défini par repo-retention-archive, ce qui signifie qu’une sauvegarde complète prise en dernier sera comptée comme une sauvegarde différentielle pour l’application de la rétention du référentiel. Si défini sur incr (incrémentielle), pgBackRest conservera les journaux d’archive pendant le nombre de sauvegardes complètes, différentielles et incrémentielles défini par repo-retention-archive. Il est recommandé de ne pas modifier cette option par rapport à sa valeur par défaut, qui n’expire les WAL que conjointement à l’expiration des sauvegardes complètes.

default: full
example: --repo1-retention-archive-type=diff

Nom obsolète : rétention-archive-type

Option de rétention différentielle (--repo-retention-diff)

Nombre de sauvegardes différentielles à conserver.

Lorsqu’une sauvegarde différentielle expire, toutes les sauvegardes incrémentielles associées à cette sauvegarde différentielle expirent également. Si ce paramètre n’est pas défini, toutes les sauvegardes différentielles sont conservées jusqu’à l’expiration des sauvegardes complètes dont elles dépendent.

Notez que les sauvegardes complètes sont prises en compte dans le nombre de sauvegardes différentielles pour l’expiration. Cela réduit légèrement le nombre de sauvegardes différentielles à conserver dans la plupart des cas.

allowed: [1, 9999999]
example: --repo1-retention-diff=3

Nom obsolète : rétention-diff

Option de rétention complète (--repo-retention-full)

Nombre ou durée de rétention des sauvegardes complètes.

Lorsqu’une sauvegarde complète expire, toutes les sauvegardes différentielles et incrémentielles associées à cette sauvegarde complète expirent également. Si l’option n’est pas définie, un avertissement est émis. Si une rétention indéfinie est souhaitée, définissez l’option à sa valeur maximale.

allowed: [1, 9999999]
example: --repo1-retention-full=2

Nom obsolète : rétention-full

Type d’option de rétention complète (--repo-retention-full-type)

Type de rétention pour les sauvegardes complètes.

Détermine si le paramètre repo-retention-full représente une période de temps (en jours) ou un nombre de sauvegardes complètes à conserver.

Si la valeur est définie à time, les sauvegardes complètes dont l’âge dépasse repo-retention-full seront supprimées du dépôt si au moins une autre sauvegarde est égale ou supérieure à la valeur définie par repo-retention-full. Par exemple, si repo-retention-full est égal à 30 (jours) et qu’il existe deux sauvegardes complètes : l’une âgée de 25 jours et l’autre de 35 jours, aucune sauvegarde complète ne sera expirée, car la suppression de la sauvegarde âgée de 35 jours laisserait uniquement la sauvegarde âgée de 25 jours, ce qui violerait la politique de rétention de 30 jours exigeant qu’au moins une sauvegarde ait au moins 30 jours d’âge avant qu’une sauvegarde plus ancienne ne puisse être expirée. Les archives WAL plus anciennes que la plus ancienne sauvegarde complète restante seront automatiquement expirées, sauf si repo-retention-archive-type et repo-retention-archive sont explicitement définis.

Si la valeur est définie à count, les sauvegardes complètes dont la taille dépasse repo-retention-full seront supprimées. Par exemple, si repo-retention-full est égal à 4 et qu’une cinquième sauvegarde complète est effectuée, la sauvegarde complète la plus ancienne sera supprimée afin de maintenir le nombre à 4.

Notez qu’une sauvegarde ne sera prise en compte pour la rétention qu’après avoir été correctement terminée. Par exemple, si repo-retention-full-type est count et repo-retention-full est 2, il doit y avoir 3 sauvegardes complètes avant que la plus ancienne ne soit supprimée.

default: count
example: --repo1-retention-full-type=time

Option de rétention de l’historique des sauvegardes (--repo-retention-history)

Nombre de jours d’historique de sauvegarde à conserver.

Une copie du manifeste de sauvegarde est stockée dans le chemin backup.history une fois la sauvegarde terminée. Par défaut, ces fichiers ne sont jamais supprimés, car ils sont utiles pour l’analyse de données, par exemple pour mesurer l’évolution de la taille des sauvegardes et des fichiers WAL au fil du temps.

Définissez repo-retention-history pour préciser le nombre de jours de manifestes d’historique de sauvegarde à conserver. Les sauvegardes non expirées sont toujours conservées dans l’historique des sauvegardes. Spécifiez repo-retention-history=0 pour ne conserver l’historique des sauvegardes que pour les sauvegardes non expirées.

Lorsqu’un manifeste d’historique de sauvegarde complète est expiré, tous les manifestes d’historique de sauvegardes différentielles et incrémentielles associés à cette sauvegarde complète expirent également.

allowed: [0, 9999999]
example: --repo1-retention-history=365

Option de bac de dépôt S3 (--repo-s3-bucket)

Dépôt S3.

Dépôt S3 utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par AWS dans le bucket.

example: --repo1-s3-bucket=pg-backup

Option de point de terminaison du dépôt S3 (--repo-s3-endpoint)

Point de terminaison du dépôt S3.

Le point de terminaison AWS doit être valide pour la région sélectionnée.

Pour les configurations personnalisées ou les tests, les options repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port, et repo-storage-verify-tls peuvent être utiles.

example: --repo1-s3-endpoint=s3.amazonaws.com

Type de clé du dépôt S3 (--repo-s3-key-type)

Type de clé pour le dépôt S3.

Les types suivants sont pris en charge :

  • shared - Clés partagées
  • auto - Récupérer automatiquement les identifiants temporaires
  • web-id - Récupérer automatiquement les identifiants d’identité web
  • pod-id - Récupérer automatiquement les identifiants d’identité de pod EKS
  • process - Récupérer les identifiants en exécutant un processus
default: shared
example: --repo1-s3-key-type=auto

Option ID de clé KMS pour dépôt S3 (--repo-s3-kms-key-id)

Clé KMS du dépôt S3.

Active le chiffrement côté serveur S3 en utilisant la clé du service de gestion des clés AWS spécifiée.

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

Option de commande du processus d’authentification S3 (--repo-s3-process-cmd)

Commande du processus d’authentification S3.

Commande (et arguments facultatifs) à exécuter pour récupérer les identifiants temporaires S3. Le premier élément de la liste est la commande, les éléments suivants sont passés en tant que paramètres.

Le processus doit produire un JSON contenant les champs AccessKeyId, SecretAccessKey, SessionToken et Expiration. Les identifiants seront automatiquement actualisés avant l’expiration. Voir Process Credential Provider pour les détails du format.

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

Option de région du dépôt S3 (--repo-s3-region)

Région du dépôt S3.

La région AWS où le bucket a été créé.

example: --repo1-s3-region=us-east-1

Option Requesteur Payant pour le dépôt S3 (--repo-s3-requester-pays)

Dépôt S3 payeur de la demande.

Active le paiement par le demandeur S3.

default: n
example: --no-repo1-s3-requester-pays

Option de rôle du dépôt S3 (--repo-s3-role)

Rôle du dépôt S3.

Le nom du rôle AWS (pas le nom ARN complet) utilisé pour récupérer les identifiants temporaires lorsque repo-s3-key-type=auto.

example: --repo1-s3-role=authrole

Option de service de dépôt S3 (--repo-s3-service)

Service de signature S3.

Le service de signature S3 utilisé dans l’authentification SigV4. La valeur par défaut est s3 pour les points d’accès S3 standards. À définir sur s3-outposts lors de l’utilisation d’un point d’accès S3 Outposts.

default: s3
example: --repo1-s3-service=s3-outposts

Option de point de terminaison STS du dépôt S3 (--repo-s3-sts-host)

Point de terminaison STS du dépôt S3.

Point de terminaison STS utilisé pour récupérer des identifiants temporaires lorsque repo-s3-key-type=web-id est configuré. Définissez-le sur un point de terminaison régional (par exemple sts.us-east-1.amazonaws.com) pour utiliser STS régional, ce qui peut être nécessaire pour les régions GovCloud, Chine, ou pour réduire la latence.

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

Option de style d’URI de dépôt S3 (--repo-s3-uri-style)

Style d’URI S3.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte bucket.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer les URI par le répertoire.
default: host
example: --repo1-s3-uri-style=path

Option hôte du dépôt SFTP (--repo-sftp-host)

Hôte du dépôt SFTP.

Hôte SFTP contenant le dépôt.

example: --repo1-sftp-host=sftprepo.domain

Fingerprint de l’hôte du dépôt SFTP (--repo-sftp-host-fingerprint)

Empreinte du serveur hôte du dépôt SFTP.

La génération de l’empreinte d’hôte du dépôt SFTP doit correspondre à repo-sftp-host-key-hash-type. Générez l’empreinte via awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Les clés d’hôte SSH se trouvent normalement dans le répertoire /etc/ssh.

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

Type d’option de vérification de la clé hôte SFTP (--repo-sftp-host-key-check-type)

Type de vérification de la clé hôte SFTP.

Les types de vérification de clé d’hôte SFTP suivants sont pris en charge :

  • strict - pgBackRest n’ajoutera jamais automatiquement les clés d’hôte au fichier ~/.ssh/known_hosts, et refusera de se connecter aux hôtes dont la clé d’hôte a changé ou n’est pas trouvée dans les fichiers known hosts. Cette option oblige l’utilisateur à ajouter manuellement tous les nouveaux hôtes.
  • accept-new - pgBackRest ajoutera automatiquement les nouvelles clés d’hôte au fichier known hosts de l’utilisateur, mais n’autorisera pas les connexions aux hôtes dont la clé d’hôte a changé.
  • fingerprint - pgBackRest vérifiera la clé d’hôte contre l’empreinte spécifiée par l’option repo-sftp-host-fingerprint.
  • none - aucune vérification de clé d’hôte ne sera effectuée.
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

Type de hachage de la clé hôte du dépôt SFTP (--repo-sftp-host-key-hash-type)

Type de hachage de la clé d’hôte du dépôt SFTP.

Type de hachage de la clé hôte du dépôt SFTP. Déclare le type de hachage à utiliser pour calculer le hachage de la clé hôte du système distant au démarrage SSH. Les versions plus récentes de libssh2 prennent en charge sha256 en plus de md5 et sha1.

example: --repo1-sftp-host-key-hash-type=sha256

Option de port hôte du dépôt SFTP (--repo-sftp-host-port)

Port hôte du dépôt SFTP.

Port hôte du dépôt SFTP.

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

Option utilisateur hôte dépôt SFTP (--repo-sftp-host-user)

Utilisateur hôte du dépôt SFTP.

Utilisateur sur l’hôte utilisé pour stocker le dépôt.

example: --repo1-sftp-host-user=pg-backup

Option fichier Hôtes SFTP connus (--repo-sftp-known-host)

Fichier d’hôtes SFTP connus.

Fichier known hosts à consulter pour rechercher une correspondance avec un hôte SFTP lors de l’authentification. Si non spécifié, pgBackRest recherchera par défaut dans ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts et /etc/ssh/ssh_known_hosts2. Si configuré avec un ou plusieurs chemins de fichier, pgBackRest recherchera dans ces fichiers une correspondance. Les chemins de fichier doivent être complets ou commencer par un tilde. L’option repo-sftp-known-host peut être spécifiée plusieurs fois pour indiquer plusieurs fichiers known hosts à consulter. Pour utiliser la vérification du fichier known hosts, l’option repo-sftp-host-fingerprint ne doit pas être définie. Voir également l’option repo-sftp-host-check-type.

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

Option fichier de clé privée du dépôt SFTP (--repo-sftp-private-key-file)

Fichier de clé privée SFTP.

Fichier de clé privée SFTP utilisé pour l’authentification.

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

Option de fichier de clé publique du dépôt SFTP (--repo-sftp-public-key-file)

Fichier de clé publique SFTP.

Fichier de clé publique SFTP utilisé pour l’authentification. Facultatif si compilé contre OpenSSL, obligatoire si compilé contre une autre bibliothèque.

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

Option du fichier CA du dépôt de stockage (--repo-storage-ca-file)

Fichier de certificat d’autorité de certification pour le dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Noms obsolètes : repo-azure-ca-file, repo-s3-ca-file

Option de chemin du certificat CA TLS pour le dépôt (--repo-storage-ca-path)

Chemin du certificat d’autorité de certification du dépôt.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-path=/etc/pki/tls/certs

Noms obsolètes : repo-azure-ca-path, repo-s3-ca-path

Option hôte de stockage du dépôt (--repo-storage-host)

Hôte de stockage du dépôt.

Se connecter à un hôte autre que le point de terminaison de stockage (par exemple S3, Azure). Cela est généralement utilisé pour les tests.

example: --repo1-storage-host=127.0.0.1

Noms obsolètes : repo-azure-host, repo-s3-host

Option de port du stockage du dépôt (--repo-storage-port)

Port du stockage du dépôt.

Port à utiliser lors de la connexion au point de terminaison du stockage (par exemple S3, Azure) ou à l’hôte (le cas échéant).

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

Noms obsolètes : repo-azure-port, repo-s3-port

Option d’étiquette de stockage du dépôt (--repo-storage-tag)

Étiquette(s) de stockage du dépôt.

Spécifiez les balises à ajouter aux objets lorsque le dépôt est un magasin d’objets (par exemple, S3). L’option peut être répétée pour ajouter plusieurs balises.

Il n’existe aucune fonctionnalité dans pgBackRest permettant de modifier ces balises ; veillez donc à les définir correctement avant d’exécuter stanza-create afin d’assurer une cohérence des balises dans l’ensemble du dépôt.

example: --repo1-storage-tag=key1=value1

Option de taille de morceau de chargement du dépôt (--repo-storage-upload-chunk-size)

Taille du morceau de chargement du dépôt.

Les magasins d’objets tels que S3 permettent de télécharger des fichiers par morceaux lorsque le fichier est trop volumineux pour être stocké en mémoire. Même si le fichier peut être stocké en mémoire, il est plus efficace en mémoire de limiter la quantité de mémoire utilisée pour les téléchargements.

Une taille de morceau plus élevée entraîne généralement de meilleures performances, car elle réduit le nombre de requêtes de téléchargement et permet de télécharger plus de fichiers en une seule requête plutôt qu’en morceaux. Le désavantage est que la consommation mémoire sera plus élevée, et comme la mémoire tampon de morceau doit être allouée par processus, des valeurs plus élevées de process-max entraînent une consommation mémoire globale plus importante.

Notez que les tailles de morceau valides varient selon le type de stockage et la plateforme. Par exemple, AWS S3 impose une taille minimale de morceau de 5MiB. La terminologie relative à la taille du morceau varie selon le type de stockage ; utilisez donc « part size » pour AWS S3, « chunk size » pour GCS et « block size » pour Azure lorsque vous recherchez les valeurs minimales ou maximales.

Si un fichier est plus grand que 1GiB (la taille maximale que PostgreSQL crée par défaut), la taille de tranche sera augmentée progressivement jusqu’à la valeur maximale autorisée afin de terminer le téléchargement du fichier.

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

Option de vérification du certificat de stockage du dépôt (--repo-storage-verify-tls)

Vérification du certificat du dépôt de stockage.

Cette option permet d’activer/désactiver la vérification du certificat TLS du serveur de stockage (par exemple, S3, Azure). La désactivation ne doit être utilisée que pour des tests ou d’autres scénarios où un certificat a été auto-signé.

default: y
example: --no-repo1-storage-verify-tls

Noms obsolètes : repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

Créez des liens symboliques dans le dépôt.

Active la création du latest et des liens symboliques de tablespace. Ces liens symboliques sont particulièrement utiles lors de la récupération in situ à l’aide de captures instantanées dans le dépôt, ce qui constitue un cas d’utilisation peu courant.

Bien que cette fonctionnalité soit probablement inutile pour la grande majorité des utilisateurs, elle reste activée par défaut pour des raisons de compatibilité avec les anciennes versions. Toutefois, il peut être utile de désactiver les liens symboliques pour les stockages de type Posix qui ne les prennent pas en charge.

default: y
example: --no-repo1-symlink

Option de type de dépôt (--repo-type)

Type de stockage utilisé pour le dépôt.

Les types de dépôt suivants sont pris en charge :

  • azure - Service de stockage Blob Azure
  • cifs - Comme posix, mais désactive les liens et les fsyncs de répertoire
  • gcs - Google Cloud Storage
  • posix - Systèmes de fichiers conformes à Posix
  • s3 - AWS Simple Storage Service
  • sftp - Protocole de transfert de fichiers sécurisé

Lorsqu’un montage NFS est utilisé comme dépôt posix, les mêmes règles s’appliquent à pgBackRest qu’indiquées dans la documentation PostgreSQL : Création d’un cluster de base de données - Systèmes de fichiers .

default: posix
example: --repo1-type=cifs

4.7 - Commande d'aide (help)

Référence des options et du comportement de la commande pgBackRest help.

Trois niveaux d’aide sont proposés. Si aucune commande n’est spécifiée, une aide générale sera affichée. Si une commande est précisée (par exemple pgbackrest help backup), une description complète de la commande sera affichée, accompagnée d’une liste des options valides. Si une option est précisée en plus d’une commande (par exemple pgbackrest help backup type), une description complète de l’option telle qu’elle s’applique à la commande sera affichée.

Options de commande

Afficher l’option d’aide (--help)

Affiche l’aide.

Affiche l’aide même si la commande help n’est pas précisée et ignore l’option --version.

default: n
example: --help

Option d’affichage de la version (--version)

Afficher la version.

Affiche la version même si la commande version ou help n’est pas précisée.

default: n
example: --version

4.8 - Info Commande (info)

Référence des options et du comportement de la commande pgBackRest info.

La commande info s’applique à une seule stanza ou à toutes les stanzas. La sortie texte est la valeur par défaut et fournit un résumé lisible par l’humain des sauvegardes pour la ou les stanzas demandées. Ce format peut évoluer à tout moment dans une version.

Pour une sortie lisible par machine, utilisez --output=json. La sortie JSON contient bien plus d’informations que la sortie texte et est maintenue stable, sauf en cas de bug.

Pour accélérer l’exécution, restreindre la sortie à l’information de progression uniquement en spécifiant --detail-level=progress. Notez que cela ignore toutes les vérifications sauf la disponibilité de la stanza.

Chaque stanza dispose d’une section distincte et il est possible de limiter la sortie à une seule stanza à l’aide de l’option --stanza. La stanza ‘status’ indique brièvement l’état de santé de la stanza. Si cette valeur est ‘ok’, pgBackRest fonctionne normalement. Si plusieurs dépôts sont configurés, une valeur de ‘mixed’ indique que la stanza n’est pas dans un état sain sur un ou plusieurs dépôts ; dans ce cas, l’état de la stanza sera détaillé par dépôt. Dans les cas où une erreur s’est produite sur un dépôt sans correspondre à un code d’erreur connu, un code d’erreur de ‘other’ sera utilisé et les détails complets de l’erreur seront fournis. La ‘wal archive min/max’ affiche le WAL minimum et maximum actuellement stockés dans l’archive et, dans le cas de plusieurs dépôts, sera rapportée sur l’ensemble des dépôts sauf si l’option --repo est définie. Notez qu’il peut y avoir des lacunes dues aux politiques de rétention des archives ou à d’autres raisons.

Les messages ‘backup/expire running’ et/ou ‘restore running’ s’affichent aux côtés des informations ‘status’ si l’une quelconque de ces commandes est actuellement en cours d’exécution sur l’hôte. La progression par répertoire sera également indiquée dans la sortie texte, et un tableau ‘repo’ sera inclus dans la sortie JSON.

Les sauvegardes sont affichées du plus ancien au plus récent. La sauvegarde la plus ancienne sera toujours une sauvegarde complète (indiquée par un F à la fin de l’étiquette), mais la sauvegarde la plus récente peut être complète, différentielle (se terminant par D) ou incrémentielle (se terminant par I).

Le ‘timestamp start/stop’ définit la période pendant laquelle la sauvegarde a été exécutée. Le ‘timestamp stop’ peut être utilisé pour déterminer la sauvegarde à utiliser lors d’une restauration à un instant donné. Plus d’informations sur la restauration à un instant donné sont disponibles dans la section Restauration à un instant donné .

Le ‘wal start/stop’ définit la plage de WAL nécessaire pour rendre la base de données cohérente lors d’une restauration. La commande backup s’assurera que cette plage de WAL se trouve dans l’archive avant de se terminer.

La ‘database size’ correspond à la taille totale non compressée de la base de données, tandis que la ‘database backup size’ représente la quantité de données à sauvegarder réellement ; elles sont identiques pour les sauvegardes complètes.

Le ‘repo’ indique dans quel dépôt se trouve cette sauvegarde. Le ‘backup set size’ inclut tous les fichiers de cette sauvegarde ainsi que toutes les sauvegardes référencées dans le dépôt nécessaires à la restauration de la base de données à partir de cette sauvegarde, tandis que le ‘backup size’ inclut uniquement les fichiers de cette sauvegarde (ceux-ci seront également identiques pour les sauvegardes complètes). Les tailles des dépôts reflètent les tailles des fichiers compressés si la compression est activée dans pgBackRest.

Le ‘backup reference total’ résume la liste des sauvegardes supplémentaires nécessaires pour effectuer la restauration de cette sauvegarde. Utilisez l’option --set pour afficher la liste complète de référence.

Options de commande

Niveau de détail Option (--detail-level)

Niveau de détail de la sortie.

Les niveaux suivants sont pris en charge :

  • progress - Affiche uniquement la progression actuelle de la sauvegarde ou de l’expiration. Ce niveau ne peut pas être utilisé avec l’option --set.
  • full - Affiche toutes les informations.
default: full
example: --detail-level=progress

Option de sortie (--output)

Format de sortie.

Les types de sortie suivants sont pris en charge :

  • text - Résumé lisible par l’humain des informations relatives à la sauvegarde.
  • json - Informations complètes sur la sauvegarde, lisibles par une machine, au format JSON.
default: text
example: --output=json

Définir l’option (--set)

Sauvegarde définie en détail.

Les détails incluent la liste complète des sauvegardes supplémentaires nécessaires à la restauration de cette sauvegarde, la liste des bases de données (avec leurs OIDs) présentes dans l’ensemble de sauvegarde (à l’exclusion des bases modèles), des espaces de table (avec leurs OIDs) ainsi que l’emplacement de destination par défaut où ils seront restaurés, ainsi que des liens symboliques et leur emplacement de destination lorsqu’--link-all est spécifié.

example: --set=20150131-153358F_20150131-153401I

Type Option (--type)

Filtrer par type de sauvegarde.

Filtrez la sortie en utilisant l’un des types de sauvegarde suivants :

  • full - Ne produire que des sauvegardes complètes.
  • diff - Ne produire que des sauvegardes différentielles.
  • incr - Ne produire que des sauvegardes incrémentielles.
example: --type=full

Options générales

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: n
example: --allow-root

Option Taille tampon (--buffer-size)

Taille du tampon pour les opérations d’E/S.

Taille de tampon utilisée pour les opérations de copie, de compression, de chiffrement et autres. Le nombre de tampons utilisés dépend des options, et chaque opération peut utiliser une mémoire supplémentaire, par exemple, la compression gz peut utiliser jusqu’à 256KiB de mémoire supplémentaire.

Les valeurs autorisées sont 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB et 16MiB.

default: 1MiB
example: --buffer-size=2MiB

Option de commande client SSH (--cmd-ssh)

Commande cliente SSH.

Utilisez une commande cliente SSH spécifique lorsque vous souhaitez utiliser une alternative ou que la commande ssh n’est pas disponible dans $PATH.

default: ssh
example: --cmd-ssh=/usr/bin/ssh

Option niveau de compression réseau (--compress-level-network)

Niveau de compression du réseau.

Définit le niveau de compression réseau lorsque compress-type=none et la commande ne sont pas exécutées sur le même hôte que le dépôt. La compression est utilisée pour réduire le trafic réseau. Lorsque compress-type est différent de none, le paramètre compress-level-network est ignoré et compress-level est utilisé à la place, afin que le fichier ne soit compressé qu’une seule fois.

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

Option de configuration (--config)

Fichier de configuration pgBackRest.

Utilisez cette option pour spécifier un fichier de configuration différent du fichier par défaut.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

Option Chemin d’inclusion de configuration (--config-include-path)

Chemin vers les fichiers de configuration supplémentaires de pgBackRest.

Les fichiers de configuration se trouvant dans l’emplacement spécifié et ayant l’extension .conf seront concaténés au fichier de configuration de pgBackRest, ce qui donne un seul fichier de configuration.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration (--config-path)

Chemin de base des fichiers de configuration de pgBackRest.

Ce paramètre est utilisé pour remplacer le chemin de base par défaut pour les options --config et --config-include-path, sauf si ces dernières sont explicitement définies en ligne de commande.

Par exemple, passer uniquement --config-path=/conf/pgbackrest fait que la valeur par défaut de --config est définie à /conf/pgbackrest/pgbackrest.conf et que la valeur par défaut de --config-include-path est définie à /conf/pgbackrest/conf.d.

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

Option d’expiration I/O (--io-timeout)

Délai d’attente d’E/S dépassé.

Délai d’attente, en secondes, utilisé pour les connexions et les opérations de lecture/écriture.

Notez que l’opération de lecture/écriture entière n’a pas besoin de se terminer dans ce délai d’attente, mais une certaine progression doit être réalisée, même si elle ne concerne qu’un seul octet.

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

Option Chemin verrou (--lock-path)

Chemin où les fichiers verrou sont stockés.

Le chemin de verrouillage fournit un emplacement où pgBackRest peut créer des fichiers de verrouillage afin d’empêcher l’exécution simultanée d’opérations en conflit.

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: --priority=19

Option délai d’attente du protocole (--protocol-timeout)

Délai d’attente du protocole.

Définit le délai d’attente, en secondes, durant lequel le processus local ou distant attend qu’un nouveau message soit reçu au niveau du protocole. Cela empêche les processus de rester bloqués indéfiniment en attente d’un message.

NOTE : L’option protocol-timeout doit être supérieure à l’option db-timeout.

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

Option Keep Alive (--sck-keep-alive)

Activation du keep-alive.

Active les messages keep-alive sur les connexions socket.

default: y
example: --no-sck-keep-alive

Option stanza (--stanza)

Définit la stanza.

Une stanza est la configuration d’un cluster de base de données PostgreSQL qui définit son emplacement, la manière dont il sera sauvegardé, les options d’archivage, etc. La plupart des serveurs de base de données n’ont qu’un seul cluster PostgreSQL et donc une seule stanza, tandis que les serveurs de sauvegarde ont une stanza pour chaque cluster de base de données à sauvegarder.

Il est tentant de nommer la stanza en fonction du cluster principal, mais un nom plus pertinent décrit les bases de données contenues dans le cluster. Étant donné que le nom de la stanza sera utilisé pour le principal et toutes les répliques, il est préférable de choisir un nom qui décrit la fonction réelle du cluster, par exemple app ou dw, plutôt que le nom local du cluster, comme main ou prod.

example: --stanza=main

Option de nombre de connexions Keep Alive (--tcp-keep-alive-count)

Nombre de maintien de connexion.

Spécifie le nombre de messages TCP keep-alive pouvant être perdus avant que la connexion ne soit considérée comme inactive.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPCNT.

allowed: [1, 32]
example: --tcp-keep-alive-count=3

Option d’idle Keep Alive (--tcp-keep-alive-idle)

Délai d’inactivité pour la maintien de la connexion.

Spécifie la durée (en secondes) pendant laquelle aucune activité réseau ne se produit, après laquelle le système d’exploitation doit envoyer un message de maintien de connexion TCP.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPIDLE.

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

Option Intervalle Keep Alive (--tcp-keep-alive-interval)

Intervalle de temps pour la maintien de la connexion active.

Spécifie la durée (en secondes) après laquelle un message TCP keep-alive non reconnu doit être renvoyé.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPINTVL.

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

Suites de chiffrement TLSv1.2 Option (--tls-cipher-12)

Suites de chiffrement TLSv1.2 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. L’exemple proposé constitue un choix raisonnable sauf si des exigences de sécurité spécifiques s’appliquent. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

Suites de chiffrement TLSv1.3 Option (--tls-cipher-13)

Suites de chiffrement TLSv1.3 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Options de journalisation

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: --log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: --log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: --log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

Option de journalisation des sous-processus (--log-subprocess)

Activer la journalisation dans les sous-processus.

Activez la journalisation des fichiers pour tout sous-processus créé par ce processus, en utilisant le niveau de journalisation spécifié par log-level-file.

default: n
example: --log-subprocess

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: --no-log-timestamp

Options du dépôt

Définir l’option dépôt (--repo)

Définir le dépôt.

Spécifiez le dépôt sur lequel une commande doit s’opérer.

Par exemple, cette option peut être utilisée pour effectuer une restauration à partir d’un dépôt spécifique, plutôt que de laisser pgBackRest choisir.

allowed: [1, 256]
example: --repo=1

Option de conteneur de dépôt Azure (--repo-azure-container)

Conteneur de dépôt Azure.

Conteneur Azure utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés dans la racine du conteneur en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par Azure dans le conteneur.

example: --repo1-azure-container=pg-backup

Type de clé du dépôt Azure (--repo-azure-key-type)

Type de clé du dépôt Azure.

Les types suivants sont pris en charge pour l’autorisation :

  • shared - Clé partagée
  • sas - Signature d’accès partagé
  • auto - Autorisation automatique à l’aide d’identités managées Azure
default: shared
example: --repo1-azure-key-type=sas

Option de style d’URI de dépôt Azure (--repo-azure-uri-style)

Style URI Azure.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte account.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer le compte aux URI.
default: host
example: --repo1-azure-uri-style=path

Type de chiffrement du dépôt (--repo-cipher-type)

Chiffrement utilisé pour chiffrer le dépôt.

Les types de chiffrement suivants sont pris en charge :

  • none - Le dépôt n’est pas chiffré
  • aes-256-cbc - Advanced Encryption Standard avec une longueur de clé de 256 bits

Notez que le chiffrement est toujours effectué côté client, même si le type de dépôt (par exemple S3) prend en charge le chiffrement.

default: none
example: --repo1-cipher-type=aes-256-cbc

Option de bac de dépôt GCS (--repo-gcs-bucket)

Dépôt de bucket GCS.

Dépôt GCS utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par GCS dans le bucket.

example: --repo1-gcs-bucket=/pg-backup

Option de point de terminaison du dépôt GCS (--repo-gcs-endpoint)

Point de terminaison du dépôt GCS.

Point d’accès utilisé pour se connecter au service de stockage. Peut être mis à jour pour utiliser un serveur local GCS ou un point d’accès alternatif.

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

Type de clé du dépôt GCS (--repo-gcs-key-type)

Type de clé du dépôt GCS.

Les types suivants sont pris en charge pour l’autorisation :

  • auto - Autoriser à l’aide du compte de service de l’instance.
  • service - Compte de service à partir d’une clé stockée localement.
  • token - À utiliser pour les tests locaux, par exemple fakegcs.

Lorsque repo-gcs-key-type=service, les identifiants seront rechargés lorsque le jeton d’authentification sera renouvelé.

default: service
example: --repo1-gcs-key-type=auto

Option ID du projet du dépôt GCS (--repo-gcs-user-project)

Identifiant du projet GCS.

ID du projet GCS utilisé pour déterminer la facturation des requêtes.

example: --repo1-gcs-user-project=my-project

Option hôte du dépôt (--repo-host)

Hôte du dépôt lors de l’opération à distance.

Lors de la sauvegarde et de l’archivage vers un système de fichiers monté localement, ce paramètre n’est pas requis.

example: --repo1-host=repo1.domain.com

Nom obsolète : backup-host

Option du fichier de l’autorité de certification hôte du dépôt (--repo-host-ca-file)

Fichier de l’autorité de certification du serveur de dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte du dépôt.

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’autorité de certification du dépôt (--repo-host-ca-path)

Chemin de l’autorité de certification du serveur de dépôt.

Utilisez un chemin de certificat d’autorité (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte du dépôt.

example: --repo1-host-ca-path=/etc/pki/tls/certs

Option de fichier de certificat d’hôte du dépôt (--repo-host-cert-file)

Fichier de certificat d’hôte du dépôt.

Envoyé à l’hôte du dépôt pour prouver l’identité du client.

example: --repo1-host-cert-file=/path/to/client.crt

Option de commande hôte du dépôt (--repo-host-cmd)

Hôte du dépôt commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes local et de dépôt. Si non défini, la commande de dépôt sera définie de la même manière que celle de l’hôte local.

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : backup-cmd

Option de configuration de l’hôte du dépôt (--repo-host-config)

Fichier de configuration du serveur de dépôt pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le fichier de configuration de l’hôte du dépôt se trouve dans un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : sauvegarde-config

Option de chemin d’inclusion de configuration d’hôte de dépôt (--repo-host-config-include-path)

Configuration du serveur de dépôt pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration de l’hôte du dépôt est différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

Chemin de configuration de l’hôte du dépôt (--repo-host-config-path)

Chemin de configuration du serveur de dépôt pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin de configuration de l’hôte du dépôt est différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

Option de fichier de clé hôte du dépôt (--repo-host-key-file)

Fichier de clé hôte du dépôt.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --repo1-host-key-file=/path/to/client.key

Option de port hôte du dépôt (--repo-host-port)

Port de l’hôte du dépôt lorsque repo-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole du serveur du dépôt.

NOTE : Lorsque repo-host-type=ssh, il n’existe pas de valeur par défaut pour repo-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

Nom obsolète : backup-ssh-port

Type de protocole d’hôte de dépôt (--repo-host-type)

Type de protocole d’hôte de dépôt.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --repo1-host-type=tls

Option d’utilisateur hôte de dépôt (--repo-host-user)

Utilisateur hôte du dépôt lorsque repo-host est défini.

Définit l’utilisateur utilisé pour les opérations sur l’hôte du dépôt. Il est préférable que ce ne soit pas l’utilisateur postgres, mais plutôt un autre utilisateur tel que pgbackrest. Si PostgreSQL s’exécute sur l’hôte du dépôt, l’utilisateur postgres peut être ajouté au groupe pgbackrest afin d’avoir des permissions de lecture sur le dépôt sans pouvoir accidentellement le modifier.

default: pgbackrest
example: --repo1-host-user=repo-user

Nom obsolète : backup-user

Option Chemin du dépôt (--repo-path)

Chemin où les sauvegardes et l’archive sont stockées.

Le dépôt est l’emplacement où pgBackRest stocke les sauvegardes et les archives des segments WAL.

Il peut être difficile de prévoir à l’avance l’espace nécessaire. La meilleure approche consiste à effectuer quelques sauvegardes, puis à noter la taille des différents types de sauvegardes (pleines, incrémentielles, différentielles) et à mesurer la quantité de WAL générée par jour. Cela vous donnera une idée générale de l’espace requis, bien que les besoins évoluent probablement au fil du temps avec l’évolution de votre base de données.

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

Option de bac de dépôt S3 (--repo-s3-bucket)

Dépôt S3.

Dépôt S3 utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par AWS dans le bucket.

example: --repo1-s3-bucket=pg-backup

Option de point de terminaison du dépôt S3 (--repo-s3-endpoint)

Point de terminaison du dépôt S3.

Le point de terminaison AWS doit être valide pour la région sélectionnée.

Pour les configurations personnalisées ou les tests, les options repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port, et repo-storage-verify-tls peuvent être utiles.

example: --repo1-s3-endpoint=s3.amazonaws.com

Type de clé du dépôt S3 (--repo-s3-key-type)

Type de clé pour le dépôt S3.

Les types suivants sont pris en charge :

  • shared - Clés partagées
  • auto - Récupérer automatiquement les identifiants temporaires
  • web-id - Récupérer automatiquement les identifiants d’identité web
  • pod-id - Récupérer automatiquement les identifiants d’identité de pod EKS
  • process - Récupérer les identifiants en exécutant un processus
default: shared
example: --repo1-s3-key-type=auto

Option ID de clé KMS pour dépôt S3 (--repo-s3-kms-key-id)

Clé KMS du dépôt S3.

Active le chiffrement côté serveur S3 en utilisant la clé du service de gestion des clés AWS spécifiée.

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

Option de commande du processus d’authentification S3 (--repo-s3-process-cmd)

Commande du processus d’authentification S3.

Commande (et arguments facultatifs) à exécuter pour récupérer les identifiants temporaires S3. Le premier élément de la liste est la commande, les éléments suivants sont passés en tant que paramètres.

Le processus doit produire un JSON contenant les champs AccessKeyId, SecretAccessKey, SessionToken et Expiration. Les identifiants seront automatiquement actualisés avant l’expiration. Voir Process Credential Provider pour les détails du format.

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

Option de région du dépôt S3 (--repo-s3-region)

Région du dépôt S3.

La région AWS où le bucket a été créé.

example: --repo1-s3-region=us-east-1

Option Requesteur Payant pour le dépôt S3 (--repo-s3-requester-pays)

Dépôt S3 payeur de la demande.

Active le paiement par le demandeur S3.

default: n
example: --no-repo1-s3-requester-pays

Option de rôle du dépôt S3 (--repo-s3-role)

Rôle du dépôt S3.

Le nom du rôle AWS (pas le nom ARN complet) utilisé pour récupérer les identifiants temporaires lorsque repo-s3-key-type=auto.

example: --repo1-s3-role=authrole

Option de service de dépôt S3 (--repo-s3-service)

Service de signature S3.

Le service de signature S3 utilisé dans l’authentification SigV4. La valeur par défaut est s3 pour les points d’accès S3 standards. À définir sur s3-outposts lors de l’utilisation d’un point d’accès S3 Outposts.

default: s3
example: --repo1-s3-service=s3-outposts

Option de point de terminaison STS du dépôt S3 (--repo-s3-sts-host)

Point de terminaison STS du dépôt S3.

Point de terminaison STS utilisé pour récupérer des identifiants temporaires lorsque repo-s3-key-type=web-id est configuré. Définissez-le sur un point de terminaison régional (par exemple sts.us-east-1.amazonaws.com) pour utiliser STS régional, ce qui peut être nécessaire pour les régions GovCloud, Chine, ou pour réduire la latence.

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

Option de style d’URI de dépôt S3 (--repo-s3-uri-style)

Style d’URI S3.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte bucket.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer les URI par le répertoire.
default: host
example: --repo1-s3-uri-style=path

Option hôte du dépôt SFTP (--repo-sftp-host)

Hôte du dépôt SFTP.

Hôte SFTP contenant le dépôt.

example: --repo1-sftp-host=sftprepo.domain

Fingerprint de l’hôte du dépôt SFTP (--repo-sftp-host-fingerprint)

Empreinte du serveur hôte du dépôt SFTP.

La génération de l’empreinte d’hôte du dépôt SFTP doit correspondre à repo-sftp-host-key-hash-type. Générez l’empreinte via awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Les clés d’hôte SSH se trouvent normalement dans le répertoire /etc/ssh.

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

Type d’option de vérification de la clé hôte SFTP (--repo-sftp-host-key-check-type)

Type de vérification de la clé hôte SFTP.

Les types de vérification de clé d’hôte SFTP suivants sont pris en charge :

  • strict - pgBackRest n’ajoutera jamais automatiquement les clés d’hôte au fichier ~/.ssh/known_hosts, et refusera de se connecter aux hôtes dont la clé d’hôte a changé ou n’est pas trouvée dans les fichiers known hosts. Cette option oblige l’utilisateur à ajouter manuellement tous les nouveaux hôtes.
  • accept-new - pgBackRest ajoutera automatiquement les nouvelles clés d’hôte au fichier known hosts de l’utilisateur, mais n’autorisera pas les connexions aux hôtes dont la clé d’hôte a changé.
  • fingerprint - pgBackRest vérifiera la clé d’hôte contre l’empreinte spécifiée par l’option repo-sftp-host-fingerprint.
  • none - aucune vérification de clé d’hôte ne sera effectuée.
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

Type de hachage de la clé hôte du dépôt SFTP (--repo-sftp-host-key-hash-type)

Type de hachage de la clé d’hôte du dépôt SFTP.

Type de hachage de la clé hôte du dépôt SFTP. Déclare le type de hachage à utiliser pour calculer le hachage de la clé hôte du système distant au démarrage SSH. Les versions plus récentes de libssh2 prennent en charge sha256 en plus de md5 et sha1.

example: --repo1-sftp-host-key-hash-type=sha256

Option de port hôte du dépôt SFTP (--repo-sftp-host-port)

Port hôte du dépôt SFTP.

Port hôte du dépôt SFTP.

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

Option utilisateur hôte dépôt SFTP (--repo-sftp-host-user)

Utilisateur hôte du dépôt SFTP.

Utilisateur sur l’hôte utilisé pour stocker le dépôt.

example: --repo1-sftp-host-user=pg-backup

Option fichier Hôtes SFTP connus (--repo-sftp-known-host)

Fichier d’hôtes SFTP connus.

Fichier known hosts à consulter pour rechercher une correspondance avec un hôte SFTP lors de l’authentification. Si non spécifié, pgBackRest recherchera par défaut dans ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts et /etc/ssh/ssh_known_hosts2. Si configuré avec un ou plusieurs chemins de fichier, pgBackRest recherchera dans ces fichiers une correspondance. Les chemins de fichier doivent être complets ou commencer par un tilde. L’option repo-sftp-known-host peut être spécifiée plusieurs fois pour indiquer plusieurs fichiers known hosts à consulter. Pour utiliser la vérification du fichier known hosts, l’option repo-sftp-host-fingerprint ne doit pas être définie. Voir également l’option repo-sftp-host-check-type.

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

Option fichier de clé privée du dépôt SFTP (--repo-sftp-private-key-file)

Fichier de clé privée SFTP.

Fichier de clé privée SFTP utilisé pour l’authentification.

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

Option de fichier de clé publique du dépôt SFTP (--repo-sftp-public-key-file)

Fichier de clé publique SFTP.

Fichier de clé publique SFTP utilisé pour l’authentification. Facultatif si compilé contre OpenSSL, obligatoire si compilé contre une autre bibliothèque.

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

Option du fichier CA du dépôt de stockage (--repo-storage-ca-file)

Fichier de certificat d’autorité de certification pour le dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Noms obsolètes : repo-azure-ca-file, repo-s3-ca-file

Option de chemin du certificat CA TLS pour le dépôt (--repo-storage-ca-path)

Chemin du certificat d’autorité de certification du dépôt.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-path=/etc/pki/tls/certs

Noms obsolètes : repo-azure-ca-path, repo-s3-ca-path

Option hôte de stockage du dépôt (--repo-storage-host)

Hôte de stockage du dépôt.

Se connecter à un hôte autre que le point de terminaison de stockage (par exemple S3, Azure). Cela est généralement utilisé pour les tests.

example: --repo1-storage-host=127.0.0.1

Noms obsolètes : repo-azure-host, repo-s3-host

Option de port du stockage du dépôt (--repo-storage-port)

Port du stockage du dépôt.

Port à utiliser lors de la connexion au point de terminaison du stockage (par exemple S3, Azure) ou à l’hôte (le cas échéant).

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

Noms obsolètes : repo-azure-port, repo-s3-port

Option d’étiquette de stockage du dépôt (--repo-storage-tag)

Étiquette(s) de stockage du dépôt.

Spécifiez les balises à ajouter aux objets lorsque le dépôt est un magasin d’objets (par exemple, S3). L’option peut être répétée pour ajouter plusieurs balises.

Il n’existe aucune fonctionnalité dans pgBackRest permettant de modifier ces balises ; veillez donc à les définir correctement avant d’exécuter stanza-create afin d’assurer une cohérence des balises dans l’ensemble du dépôt.

example: --repo1-storage-tag=key1=value1

Option de taille de morceau de chargement du dépôt (--repo-storage-upload-chunk-size)

Taille du morceau de chargement du dépôt.

Les magasins d’objets tels que S3 permettent de télécharger des fichiers par morceaux lorsque le fichier est trop volumineux pour être stocké en mémoire. Même si le fichier peut être stocké en mémoire, il est plus efficace en mémoire de limiter la quantité de mémoire utilisée pour les téléchargements.

Une taille de morceau plus élevée entraîne généralement de meilleures performances, car elle réduit le nombre de requêtes de téléchargement et permet de télécharger plus de fichiers en une seule requête plutôt qu’en morceaux. Le désavantage est que la consommation mémoire sera plus élevée, et comme la mémoire tampon de morceau doit être allouée par processus, des valeurs plus élevées de process-max entraînent une consommation mémoire globale plus importante.

Notez que les tailles de morceau valides varient selon le type de stockage et la plateforme. Par exemple, AWS S3 impose une taille minimale de morceau de 5MiB. La terminologie relative à la taille du morceau varie selon le type de stockage ; utilisez donc « part size » pour AWS S3, « chunk size » pour GCS et « block size » pour Azure lorsque vous recherchez les valeurs minimales ou maximales.

Si un fichier est plus grand que 1GiB (la taille maximale que PostgreSQL crée par défaut), la taille de tranche sera augmentée progressivement jusqu’à la valeur maximale autorisée afin de terminer le téléchargement du fichier.

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

Option de vérification du certificat de stockage du dépôt (--repo-storage-verify-tls)

Vérification du certificat du dépôt de stockage.

Cette option permet d’activer/désactiver la vérification du certificat TLS du serveur de stockage (par exemple, S3, Azure). La désactivation ne doit être utilisée que pour des tests ou d’autres scénarios où un certificat a été auto-signé.

default: y
example: --no-repo1-storage-verify-tls

Noms obsolètes : repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

Heure cible pour l’option dépôt (--repo-target-time)

Heure cible pour le dépôt.

Le temps cible définit l’instant auquel les commandes lisent un dépôt sur un stockage versionné. Cela permet à la commande de lire le dépôt tel qu’il était à un instant donné, afin de récupérer des données supprimées ou corrompues par une erreur utilisateur ou un logiciel malveillant.

Le stockage versionné est pris en charge par S3, GCS et Azure, mais il est généralement désactivé par défaut. En plus d’activer la versioning, il peut être utile d’activer le verrouillage d’objets pour S3, ou la suppression progressive pour GCS ou Azure.

Lorsque l’option repo-target-time est spécifiée, l’option repo doit également être fournie. Il est probable que tous les types de dépôt ne prennent pas en charge la versionning, et il est généralement préférable de cibler un seul dépôt pour la récupération.

Notez que les comparaisons avec l’horodatage de stockage sont <= à l’horodatage fourni et que les millisecondes sont tronquées de l’horodatage lorsqu’elles sont fournies.

example: --repo-target-time=2024-08-08 12:12:12+00

Option de type de dépôt (--repo-type)

Type de stockage utilisé pour le dépôt.

Les types de dépôt suivants sont pris en charge :

  • azure - Service de stockage Blob Azure
  • cifs - Comme posix, mais désactive les liens et les fsyncs de répertoire
  • gcs - Google Cloud Storage
  • posix - Systèmes de fichiers conformes à Posix
  • s3 - AWS Simple Storage Service
  • sftp - Protocole de transfert de fichiers sécurisé

Lorsqu’un montage NFS est utilisé comme dépôt posix, les mêmes règles s’appliquent à pgBackRest qu’indiquées dans la documentation PostgreSQL : Création d’un cluster de base de données - Systèmes de fichiers .

default: posix
example: --repo1-type=cifs

4.9 - Commande d'obtention de dépôt (repo-get)

Référence des options et du comportement de la commande pgBackRest repo-get.

Similaire à la commande unix cat mais fonctionne sur n’importe quel type de dépôt pris en charge. Cette commande nécessite un nom de fichier entièrement qualifié et est principalement destinée à l’administration, l’investigation et les tests. Elle n’est pas obligatoire dans une configuration normale de pgBackRest.

Si le dépôt est chiffré, repo-get déchiffrera automatiquement le fichier. Les fichiers ne sont pas automatiquement décompressés, mais la sortie peut être redirigée vers la commande de décompression appropriée, par exemple gzip -d.

Si plusieurs dépôts sont configurés, la commande utilise par défaut le dépôt de priorité la plus élevée (par exemple repo1) sauf si l’option --repo est spécifiée.

Options de commande

Option manquante ignorée (--ignore-missing)

Ignorer le fichier source manquant.

Quitter avec 1 si le fichier source est manquant, sans lever d’erreur.

default: n
example: --ignore-missing

Options générales

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: n
example: --allow-root

Option Taille tampon (--buffer-size)

Taille du tampon pour les opérations d’E/S.

Taille de tampon utilisée pour les opérations de copie, de compression, de chiffrement et autres. Le nombre de tampons utilisés dépend des options, et chaque opération peut utiliser une mémoire supplémentaire, par exemple, la compression gz peut utiliser jusqu’à 256KiB de mémoire supplémentaire.

Les valeurs autorisées sont 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB et 16MiB.

default: 1MiB
example: --buffer-size=2MiB

Option de commande client SSH (--cmd-ssh)

Commande cliente SSH.

Utilisez une commande cliente SSH spécifique lorsque vous souhaitez utiliser une alternative ou que la commande ssh n’est pas disponible dans $PATH.

default: ssh
example: --cmd-ssh=/usr/bin/ssh

Option niveau de compression réseau (--compress-level-network)

Niveau de compression du réseau.

Définit le niveau de compression réseau lorsque compress-type=none et la commande ne sont pas exécutées sur le même hôte que le dépôt. La compression est utilisée pour réduire le trafic réseau. Lorsque compress-type est différent de none, le paramètre compress-level-network est ignoré et compress-level est utilisé à la place, afin que le fichier ne soit compressé qu’une seule fois.

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

Option de configuration (--config)

Fichier de configuration pgBackRest.

Utilisez cette option pour spécifier un fichier de configuration différent du fichier par défaut.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

Option Chemin d’inclusion de configuration (--config-include-path)

Chemin vers les fichiers de configuration supplémentaires de pgBackRest.

Les fichiers de configuration se trouvant dans l’emplacement spécifié et ayant l’extension .conf seront concaténés au fichier de configuration de pgBackRest, ce qui donne un seul fichier de configuration.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration (--config-path)

Chemin de base des fichiers de configuration de pgBackRest.

Ce paramètre est utilisé pour remplacer le chemin de base par défaut pour les options --config et --config-include-path, sauf si ces dernières sont explicitement définies en ligne de commande.

Par exemple, passer uniquement --config-path=/conf/pgbackrest fait que la valeur par défaut de --config est définie à /conf/pgbackrest/pgbackrest.conf et que la valeur par défaut de --config-include-path est définie à /conf/pgbackrest/conf.d.

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

Option d’expiration I/O (--io-timeout)

Délai d’attente d’E/S dépassé.

Délai d’attente, en secondes, utilisé pour les connexions et les opérations de lecture/écriture.

Notez que l’opération de lecture/écriture entière n’a pas besoin de se terminer dans ce délai d’attente, mais une certaine progression doit être réalisée, même si elle ne concerne qu’un seul octet.

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

Option de masque neutre (--neutral-umask)

Utilisez un umask neutre.

Définit le umask à 0000 afin que les modes du dépôt soient créés de manière cohérente. Le mode par défaut du répertoire est 0750 et le mode par défaut du fichier est 0640.

Pour utiliser le umask de l’utilisateur en cours, spécifiez neutral-umask=n dans le fichier de configuration ou --no-neutral-umask en ligne de commande.

default: y
example: --no-neutral-umask

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: --priority=19

Option délai d’attente du protocole (--protocol-timeout)

Délai d’attente du protocole.

Définit le délai d’attente, en secondes, durant lequel le processus local ou distant attend qu’un nouveau message soit reçu au niveau du protocole. Cela empêche les processus de rester bloqués indéfiniment en attente d’un message.

NOTE : L’option protocol-timeout doit être supérieure à l’option db-timeout.

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

Option données brutes (--raw)

Ne pas transformer les données.

Ne pas transformer (par exemple, chiffrer, décompresser, etc.) les données pour la commande en cours.

default: n
example: --raw

Option Keep Alive (--sck-keep-alive)

Activation du keep-alive.

Active les messages keep-alive sur les connexions socket.

default: y
example: --no-sck-keep-alive

Option de nombre de connexions Keep Alive (--tcp-keep-alive-count)

Nombre de maintien de connexion.

Spécifie le nombre de messages TCP keep-alive pouvant être perdus avant que la connexion ne soit considérée comme inactive.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPCNT.

allowed: [1, 32]
example: --tcp-keep-alive-count=3

Option d’idle Keep Alive (--tcp-keep-alive-idle)

Délai d’inactivité pour la maintien de la connexion.

Spécifie la durée (en secondes) pendant laquelle aucune activité réseau ne se produit, après laquelle le système d’exploitation doit envoyer un message de maintien de connexion TCP.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPIDLE.

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

Option Intervalle Keep Alive (--tcp-keep-alive-interval)

Intervalle de temps pour la maintien de la connexion active.

Spécifie la durée (en secondes) après laquelle un message TCP keep-alive non reconnu doit être renvoyé.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPINTVL.

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

Suites de chiffrement TLSv1.2 Option (--tls-cipher-12)

Suites de chiffrement TLSv1.2 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. L’exemple proposé constitue un choix raisonnable sauf si des exigences de sécurité spécifiques s’appliquent. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

Suites de chiffrement TLSv1.3 Option (--tls-cipher-13)

Suites de chiffrement TLSv1.3 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Options de journalisation

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: --log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: --log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: --log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

Option de journalisation des sous-processus (--log-subprocess)

Activer la journalisation dans les sous-processus.

Activez la journalisation des fichiers pour tout sous-processus créé par ce processus, en utilisant le niveau de journalisation spécifié par log-level-file.

default: n
example: --log-subprocess

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: --no-log-timestamp

Options du dépôt

Définir l’option dépôt (--repo)

Définir le dépôt.

Spécifiez le dépôt sur lequel une commande doit s’opérer.

Par exemple, cette option peut être utilisée pour effectuer une restauration à partir d’un dépôt spécifique, plutôt que de laisser pgBackRest choisir.

allowed: [1, 256]
example: --repo=1

Option de conteneur de dépôt Azure (--repo-azure-container)

Conteneur de dépôt Azure.

Conteneur Azure utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés dans la racine du conteneur en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par Azure dans le conteneur.

example: --repo1-azure-container=pg-backup

Type de clé du dépôt Azure (--repo-azure-key-type)

Type de clé du dépôt Azure.

Les types suivants sont pris en charge pour l’autorisation :

  • shared - Clé partagée
  • sas - Signature d’accès partagé
  • auto - Autorisation automatique à l’aide d’identités managées Azure
default: shared
example: --repo1-azure-key-type=sas

Option de style d’URI de dépôt Azure (--repo-azure-uri-style)

Style URI Azure.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte account.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer le compte aux URI.
default: host
example: --repo1-azure-uri-style=path

Type de chiffrement du dépôt (--repo-cipher-type)

Chiffrement utilisé pour chiffrer le dépôt.

Les types de chiffrement suivants sont pris en charge :

  • none - Le dépôt n’est pas chiffré
  • aes-256-cbc - Advanced Encryption Standard avec une longueur de clé de 256 bits

Notez que le chiffrement est toujours effectué côté client, même si le type de dépôt (par exemple S3) prend en charge le chiffrement.

default: none
example: --repo1-cipher-type=aes-256-cbc

Option de bac de dépôt GCS (--repo-gcs-bucket)

Dépôt de bucket GCS.

Dépôt GCS utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par GCS dans le bucket.

example: --repo1-gcs-bucket=/pg-backup

Option de point de terminaison du dépôt GCS (--repo-gcs-endpoint)

Point de terminaison du dépôt GCS.

Point d’accès utilisé pour se connecter au service de stockage. Peut être mis à jour pour utiliser un serveur local GCS ou un point d’accès alternatif.

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

Type de clé du dépôt GCS (--repo-gcs-key-type)

Type de clé du dépôt GCS.

Les types suivants sont pris en charge pour l’autorisation :

  • auto - Autoriser à l’aide du compte de service de l’instance.
  • service - Compte de service à partir d’une clé stockée localement.
  • token - À utiliser pour les tests locaux, par exemple fakegcs.

Lorsque repo-gcs-key-type=service, les identifiants seront rechargés lorsque le jeton d’authentification sera renouvelé.

default: service
example: --repo1-gcs-key-type=auto

Option ID du projet du dépôt GCS (--repo-gcs-user-project)

Identifiant du projet GCS.

ID du projet GCS utilisé pour déterminer la facturation des requêtes.

example: --repo1-gcs-user-project=my-project

Option hôte du dépôt (--repo-host)

Hôte du dépôt lors de l’opération à distance.

Lors de la sauvegarde et de l’archivage vers un système de fichiers monté localement, ce paramètre n’est pas requis.

example: --repo1-host=repo1.domain.com

Nom obsolète : backup-host

Option du fichier de l’autorité de certification hôte du dépôt (--repo-host-ca-file)

Fichier de l’autorité de certification du serveur de dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte du dépôt.

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’autorité de certification du dépôt (--repo-host-ca-path)

Chemin de l’autorité de certification du serveur de dépôt.

Utilisez un chemin de certificat d’autorité (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte du dépôt.

example: --repo1-host-ca-path=/etc/pki/tls/certs

Option de fichier de certificat d’hôte du dépôt (--repo-host-cert-file)

Fichier de certificat d’hôte du dépôt.

Envoyé à l’hôte du dépôt pour prouver l’identité du client.

example: --repo1-host-cert-file=/path/to/client.crt

Option de commande hôte du dépôt (--repo-host-cmd)

Hôte du dépôt commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes local et de dépôt. Si non défini, la commande de dépôt sera définie de la même manière que celle de l’hôte local.

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : backup-cmd

Option de configuration de l’hôte du dépôt (--repo-host-config)

Fichier de configuration du serveur de dépôt pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le fichier de configuration de l’hôte du dépôt se trouve dans un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : sauvegarde-config

Option de chemin d’inclusion de configuration d’hôte de dépôt (--repo-host-config-include-path)

Configuration du serveur de dépôt pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration de l’hôte du dépôt est différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

Chemin de configuration de l’hôte du dépôt (--repo-host-config-path)

Chemin de configuration du serveur de dépôt pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin de configuration de l’hôte du dépôt est différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

Option de fichier de clé hôte du dépôt (--repo-host-key-file)

Fichier de clé hôte du dépôt.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --repo1-host-key-file=/path/to/client.key

Option de port hôte du dépôt (--repo-host-port)

Port de l’hôte du dépôt lorsque repo-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole du serveur du dépôt.

NOTE : Lorsque repo-host-type=ssh, il n’existe pas de valeur par défaut pour repo-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

Nom obsolète : backup-ssh-port

Type de protocole d’hôte de dépôt (--repo-host-type)

Type de protocole d’hôte de dépôt.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --repo1-host-type=tls

Option d’utilisateur hôte de dépôt (--repo-host-user)

Utilisateur hôte du dépôt lorsque repo-host est défini.

Définit l’utilisateur utilisé pour les opérations sur l’hôte du dépôt. Il est préférable que ce ne soit pas l’utilisateur postgres, mais plutôt un autre utilisateur tel que pgbackrest. Si PostgreSQL s’exécute sur l’hôte du dépôt, l’utilisateur postgres peut être ajouté au groupe pgbackrest afin d’avoir des permissions de lecture sur le dépôt sans pouvoir accidentellement le modifier.

default: pgbackrest
example: --repo1-host-user=repo-user

Nom obsolète : backup-user

Option Chemin du dépôt (--repo-path)

Chemin où les sauvegardes et l’archive sont stockées.

Le dépôt est l’emplacement où pgBackRest stocke les sauvegardes et les archives des segments WAL.

Il peut être difficile de prévoir à l’avance l’espace nécessaire. La meilleure approche consiste à effectuer quelques sauvegardes, puis à noter la taille des différents types de sauvegardes (pleines, incrémentielles, différentielles) et à mesurer la quantité de WAL générée par jour. Cela vous donnera une idée générale de l’espace requis, bien que les besoins évoluent probablement au fil du temps avec l’évolution de votre base de données.

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

Option de bac de dépôt S3 (--repo-s3-bucket)

Dépôt S3.

Dépôt S3 utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par AWS dans le bucket.

example: --repo1-s3-bucket=pg-backup

Option de point de terminaison du dépôt S3 (--repo-s3-endpoint)

Point de terminaison du dépôt S3.

Le point de terminaison AWS doit être valide pour la région sélectionnée.

Pour les configurations personnalisées ou les tests, les options repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port, et repo-storage-verify-tls peuvent être utiles.

example: --repo1-s3-endpoint=s3.amazonaws.com

Type de clé du dépôt S3 (--repo-s3-key-type)

Type de clé pour le dépôt S3.

Les types suivants sont pris en charge :

  • shared - Clés partagées
  • auto - Récupérer automatiquement les identifiants temporaires
  • web-id - Récupérer automatiquement les identifiants d’identité web
  • pod-id - Récupérer automatiquement les identifiants d’identité de pod EKS
  • process - Récupérer les identifiants en exécutant un processus
default: shared
example: --repo1-s3-key-type=auto

Option ID de clé KMS pour dépôt S3 (--repo-s3-kms-key-id)

Clé KMS du dépôt S3.

Active le chiffrement côté serveur S3 en utilisant la clé du service de gestion des clés AWS spécifiée.

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

Option de commande du processus d’authentification S3 (--repo-s3-process-cmd)

Commande du processus d’authentification S3.

Commande (et arguments facultatifs) à exécuter pour récupérer les identifiants temporaires S3. Le premier élément de la liste est la commande, les éléments suivants sont passés en tant que paramètres.

Le processus doit produire un JSON contenant les champs AccessKeyId, SecretAccessKey, SessionToken et Expiration. Les identifiants seront automatiquement actualisés avant l’expiration. Voir Process Credential Provider pour les détails du format.

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

Option de région du dépôt S3 (--repo-s3-region)

Région du dépôt S3.

La région AWS où le bucket a été créé.

example: --repo1-s3-region=us-east-1

Option Requesteur Payant pour le dépôt S3 (--repo-s3-requester-pays)

Dépôt S3 payeur de la demande.

Active le paiement par le demandeur S3.

default: n
example: --no-repo1-s3-requester-pays

Option de rôle du dépôt S3 (--repo-s3-role)

Rôle du dépôt S3.

Le nom du rôle AWS (pas le nom ARN complet) utilisé pour récupérer les identifiants temporaires lorsque repo-s3-key-type=auto.

example: --repo1-s3-role=authrole

Option de service de dépôt S3 (--repo-s3-service)

Service de signature S3.

Le service de signature S3 utilisé dans l’authentification SigV4. La valeur par défaut est s3 pour les points d’accès S3 standards. À définir sur s3-outposts lors de l’utilisation d’un point d’accès S3 Outposts.

default: s3
example: --repo1-s3-service=s3-outposts

Option de point de terminaison STS du dépôt S3 (--repo-s3-sts-host)

Point de terminaison STS du dépôt S3.

Point de terminaison STS utilisé pour récupérer des identifiants temporaires lorsque repo-s3-key-type=web-id est configuré. Définissez-le sur un point de terminaison régional (par exemple sts.us-east-1.amazonaws.com) pour utiliser STS régional, ce qui peut être nécessaire pour les régions GovCloud, Chine, ou pour réduire la latence.

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

Option de style d’URI de dépôt S3 (--repo-s3-uri-style)

Style d’URI S3.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte bucket.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer les URI par le répertoire.
default: host
example: --repo1-s3-uri-style=path

Option hôte du dépôt SFTP (--repo-sftp-host)

Hôte du dépôt SFTP.

Hôte SFTP contenant le dépôt.

example: --repo1-sftp-host=sftprepo.domain

Fingerprint de l’hôte du dépôt SFTP (--repo-sftp-host-fingerprint)

Empreinte du serveur hôte du dépôt SFTP.

La génération de l’empreinte d’hôte du dépôt SFTP doit correspondre à repo-sftp-host-key-hash-type. Générez l’empreinte via awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Les clés d’hôte SSH se trouvent normalement dans le répertoire /etc/ssh.

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

Type d’option de vérification de la clé hôte SFTP (--repo-sftp-host-key-check-type)

Type de vérification de la clé hôte SFTP.

Les types de vérification de clé d’hôte SFTP suivants sont pris en charge :

  • strict - pgBackRest n’ajoutera jamais automatiquement les clés d’hôte au fichier ~/.ssh/known_hosts, et refusera de se connecter aux hôtes dont la clé d’hôte a changé ou n’est pas trouvée dans les fichiers known hosts. Cette option oblige l’utilisateur à ajouter manuellement tous les nouveaux hôtes.
  • accept-new - pgBackRest ajoutera automatiquement les nouvelles clés d’hôte au fichier known hosts de l’utilisateur, mais n’autorisera pas les connexions aux hôtes dont la clé d’hôte a changé.
  • fingerprint - pgBackRest vérifiera la clé d’hôte contre l’empreinte spécifiée par l’option repo-sftp-host-fingerprint.
  • none - aucune vérification de clé d’hôte ne sera effectuée.
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

Type de hachage de la clé hôte du dépôt SFTP (--repo-sftp-host-key-hash-type)

Type de hachage de la clé d’hôte du dépôt SFTP.

Type de hachage de la clé hôte du dépôt SFTP. Déclare le type de hachage à utiliser pour calculer le hachage de la clé hôte du système distant au démarrage SSH. Les versions plus récentes de libssh2 prennent en charge sha256 en plus de md5 et sha1.

example: --repo1-sftp-host-key-hash-type=sha256

Option de port hôte du dépôt SFTP (--repo-sftp-host-port)

Port hôte du dépôt SFTP.

Port hôte du dépôt SFTP.

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

Option utilisateur hôte dépôt SFTP (--repo-sftp-host-user)

Utilisateur hôte du dépôt SFTP.

Utilisateur sur l’hôte utilisé pour stocker le dépôt.

example: --repo1-sftp-host-user=pg-backup

Option fichier Hôtes SFTP connus (--repo-sftp-known-host)

Fichier d’hôtes SFTP connus.

Fichier known hosts à consulter pour rechercher une correspondance avec un hôte SFTP lors de l’authentification. Si non spécifié, pgBackRest recherchera par défaut dans ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts et /etc/ssh/ssh_known_hosts2. Si configuré avec un ou plusieurs chemins de fichier, pgBackRest recherchera dans ces fichiers une correspondance. Les chemins de fichier doivent être complets ou commencer par un tilde. L’option repo-sftp-known-host peut être spécifiée plusieurs fois pour indiquer plusieurs fichiers known hosts à consulter. Pour utiliser la vérification du fichier known hosts, l’option repo-sftp-host-fingerprint ne doit pas être définie. Voir également l’option repo-sftp-host-check-type.

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

Option fichier de clé privée du dépôt SFTP (--repo-sftp-private-key-file)

Fichier de clé privée SFTP.

Fichier de clé privée SFTP utilisé pour l’authentification.

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

Option de fichier de clé publique du dépôt SFTP (--repo-sftp-public-key-file)

Fichier de clé publique SFTP.

Fichier de clé publique SFTP utilisé pour l’authentification. Facultatif si compilé contre OpenSSL, obligatoire si compilé contre une autre bibliothèque.

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

Option du fichier CA du dépôt de stockage (--repo-storage-ca-file)

Fichier de certificat d’autorité de certification pour le dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Noms obsolètes : repo-azure-ca-file, repo-s3-ca-file

Option de chemin du certificat CA TLS pour le dépôt (--repo-storage-ca-path)

Chemin du certificat d’autorité de certification du dépôt.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-path=/etc/pki/tls/certs

Noms obsolètes : repo-azure-ca-path, repo-s3-ca-path

Option hôte de stockage du dépôt (--repo-storage-host)

Hôte de stockage du dépôt.

Se connecter à un hôte autre que le point de terminaison de stockage (par exemple S3, Azure). Cela est généralement utilisé pour les tests.

example: --repo1-storage-host=127.0.0.1

Noms obsolètes : repo-azure-host, repo-s3-host

Option de port du stockage du dépôt (--repo-storage-port)

Port du stockage du dépôt.

Port à utiliser lors de la connexion au point de terminaison du stockage (par exemple S3, Azure) ou à l’hôte (le cas échéant).

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

Noms obsolètes : repo-azure-port, repo-s3-port

Option d’étiquette de stockage du dépôt (--repo-storage-tag)

Étiquette(s) de stockage du dépôt.

Spécifiez les balises à ajouter aux objets lorsque le dépôt est un magasin d’objets (par exemple, S3). L’option peut être répétée pour ajouter plusieurs balises.

Il n’existe aucune fonctionnalité dans pgBackRest permettant de modifier ces balises ; veillez donc à les définir correctement avant d’exécuter stanza-create afin d’assurer une cohérence des balises dans l’ensemble du dépôt.

example: --repo1-storage-tag=key1=value1

Option de taille de morceau de chargement du dépôt (--repo-storage-upload-chunk-size)

Taille du morceau de chargement du dépôt.

Les magasins d’objets tels que S3 permettent de télécharger des fichiers par morceaux lorsque le fichier est trop volumineux pour être stocké en mémoire. Même si le fichier peut être stocké en mémoire, il est plus efficace en mémoire de limiter la quantité de mémoire utilisée pour les téléchargements.

Une taille de morceau plus élevée entraîne généralement de meilleures performances, car elle réduit le nombre de requêtes de téléchargement et permet de télécharger plus de fichiers en une seule requête plutôt qu’en morceaux. Le désavantage est que la consommation mémoire sera plus élevée, et comme la mémoire tampon de morceau doit être allouée par processus, des valeurs plus élevées de process-max entraînent une consommation mémoire globale plus importante.

Notez que les tailles de morceau valides varient selon le type de stockage et la plateforme. Par exemple, AWS S3 impose une taille minimale de morceau de 5MiB. La terminologie relative à la taille du morceau varie selon le type de stockage ; utilisez donc « part size » pour AWS S3, « chunk size » pour GCS et « block size » pour Azure lorsque vous recherchez les valeurs minimales ou maximales.

Si un fichier est plus grand que 1GiB (la taille maximale que PostgreSQL crée par défaut), la taille de tranche sera augmentée progressivement jusqu’à la valeur maximale autorisée afin de terminer le téléchargement du fichier.

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

Option de vérification du certificat de stockage du dépôt (--repo-storage-verify-tls)

Vérification du certificat du dépôt de stockage.

Cette option permet d’activer/désactiver la vérification du certificat TLS du serveur de stockage (par exemple, S3, Azure). La désactivation ne doit être utilisée que pour des tests ou d’autres scénarios où un certificat a été auto-signé.

default: y
example: --no-repo1-storage-verify-tls

Noms obsolètes : repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

Heure cible pour l’option dépôt (--repo-target-time)

Heure cible pour le dépôt.

Le temps cible définit l’instant auquel les commandes lisent un dépôt sur un stockage versionné. Cela permet à la commande de lire le dépôt tel qu’il était à un instant donné, afin de récupérer des données supprimées ou corrompues par une erreur utilisateur ou un logiciel malveillant.

Le stockage versionné est pris en charge par S3, GCS et Azure, mais il est généralement désactivé par défaut. En plus d’activer la versioning, il peut être utile d’activer le verrouillage d’objets pour S3, ou la suppression progressive pour GCS ou Azure.

Lorsque l’option repo-target-time est spécifiée, l’option repo doit également être fournie. Il est probable que tous les types de dépôt ne prennent pas en charge la versionning, et il est généralement préférable de cibler un seul dépôt pour la récupération.

Notez que les comparaisons avec l’horodatage de stockage sont <= à l’horodatage fourni et que les millisecondes sont tronquées de l’horodatage lorsqu’elles sont fournies.

example: --repo-target-time=2024-08-08 12:12:12+00

Option de type de dépôt (--repo-type)

Type de stockage utilisé pour le dépôt.

Les types de dépôt suivants sont pris en charge :

  • azure - Service de stockage Blob Azure
  • cifs - Comme posix, mais désactive les liens et les fsyncs de répertoire
  • gcs - Google Cloud Storage
  • posix - Systèmes de fichiers conformes à Posix
  • s3 - AWS Simple Storage Service
  • sftp - Protocole de transfert de fichiers sécurisé

Lorsqu’un montage NFS est utilisé comme dépôt posix, les mêmes règles s’appliquent à pgBackRest qu’indiquées dans la documentation PostgreSQL : Création d’un cluster de base de données - Systèmes de fichiers .

default: posix
example: --repo1-type=cifs

4.10 - Commande Liste des dépôts (repo-ls)

Référence des options et du comportement de la commande pgBackRest repo-ls.

Similaire à la commande unix ls mais fonctionne sur tout type de dépôt pris en charge. Cette commande accepte un chemin, absolu ou relatif par rapport au chemin du dépôt défini par l’option --repo-path, et est principalement destinée à l’administration, l’investigation et les tests. Elle n’est pas obligatoire dans une configuration pgBackRest normale.

La sortie texte par défaut affiche un nom de fichier par ligne. La sortie JSON est disponible en spécifiant --output=json.

Si plusieurs dépôts sont configurés, la commande utilise par défaut le dépôt de priorité la plus élevée (par exemple repo1) sauf si l’option --repo est spécifiée.

Options de commande

Option de filtrage de sortie (--filter)

Filtrer la sortie avec une expression régulière.

Le filtre est appliqué aux noms de fichier/chemin avant leur sortie.

example: --filter="(F|D|I)$"

Option de sortie (--output)

Format de sortie.

Les types de sortie suivants sont pris en charge :

  • text - Liste simple contenant un nom de fichier/liens/chemin par ligne.
  • json - Informations détaillées sur les fichiers/liens/chemins au format JSON.

Au format JSON, les champs disponibles sont :

  • name - nom de fichier/liens/chemin (et chemin partiel en cas de récursion).
  • type - file, path ou link.
  • size - taille en octets (fichiers uniquement).
  • time - horodatage de dernière modification (fichiers uniquement).
  • destination - destination du lien (liens uniquement).
default: text
example: --output=json

Option parcours des sous-répertoires (--recurse)

Inclure toutes les sous-chemins dans la sortie.

Tous les sous-chemins et leurs fichiers seront inclus dans la sortie.

default: n
example: --recurse

Option de sortie de la sortie (--sort)

Trier la sortie par ordre croissant, décroissant ou aucun.

Les types de tri suivants sont pris en charge :

  • asc - tri croissant.
  • desc - tri décroissant.
  • none - pas de tri.
default: asc
example: --sort=desc

Options générales

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: n
example: --allow-root

Option Taille tampon (--buffer-size)

Taille du tampon pour les opérations d’E/S.

Taille de tampon utilisée pour les opérations de copie, de compression, de chiffrement et autres. Le nombre de tampons utilisés dépend des options, et chaque opération peut utiliser une mémoire supplémentaire, par exemple, la compression gz peut utiliser jusqu’à 256KiB de mémoire supplémentaire.

Les valeurs autorisées sont 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB et 16MiB.

default: 1MiB
example: --buffer-size=2MiB

Option de commande client SSH (--cmd-ssh)

Commande cliente SSH.

Utilisez une commande cliente SSH spécifique lorsque vous souhaitez utiliser une alternative ou que la commande ssh n’est pas disponible dans $PATH.

default: ssh
example: --cmd-ssh=/usr/bin/ssh

Option niveau de compression réseau (--compress-level-network)

Niveau de compression du réseau.

Définit le niveau de compression réseau lorsque compress-type=none et la commande ne sont pas exécutées sur le même hôte que le dépôt. La compression est utilisée pour réduire le trafic réseau. Lorsque compress-type est différent de none, le paramètre compress-level-network est ignoré et compress-level est utilisé à la place, afin que le fichier ne soit compressé qu’une seule fois.

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

Option de configuration (--config)

Fichier de configuration pgBackRest.

Utilisez cette option pour spécifier un fichier de configuration différent du fichier par défaut.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

Option Chemin d’inclusion de configuration (--config-include-path)

Chemin vers les fichiers de configuration supplémentaires de pgBackRest.

Les fichiers de configuration se trouvant dans l’emplacement spécifié et ayant l’extension .conf seront concaténés au fichier de configuration de pgBackRest, ce qui donne un seul fichier de configuration.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration (--config-path)

Chemin de base des fichiers de configuration de pgBackRest.

Ce paramètre est utilisé pour remplacer le chemin de base par défaut pour les options --config et --config-include-path, sauf si ces dernières sont explicitement définies en ligne de commande.

Par exemple, passer uniquement --config-path=/conf/pgbackrest fait que la valeur par défaut de --config est définie à /conf/pgbackrest/pgbackrest.conf et que la valeur par défaut de --config-include-path est définie à /conf/pgbackrest/conf.d.

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

Option d’expiration I/O (--io-timeout)

Délai d’attente d’E/S dépassé.

Délai d’attente, en secondes, utilisé pour les connexions et les opérations de lecture/écriture.

Notez que l’opération de lecture/écriture entière n’a pas besoin de se terminer dans ce délai d’attente, mais une certaine progression doit être réalisée, même si elle ne concerne qu’un seul octet.

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

Option de masque neutre (--neutral-umask)

Utilisez un umask neutre.

Définit le umask à 0000 afin que les modes du dépôt soient créés de manière cohérente. Le mode par défaut du répertoire est 0750 et le mode par défaut du fichier est 0640.

Pour utiliser le umask de l’utilisateur en cours, spécifiez neutral-umask=n dans le fichier de configuration ou --no-neutral-umask en ligne de commande.

default: y
example: --no-neutral-umask

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: --priority=19

Option délai d’attente du protocole (--protocol-timeout)

Délai d’attente du protocole.

Définit le délai d’attente, en secondes, durant lequel le processus local ou distant attend qu’un nouveau message soit reçu au niveau du protocole. Cela empêche les processus de rester bloqués indéfiniment en attente d’un message.

NOTE : L’option protocol-timeout doit être supérieure à l’option db-timeout.

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

Option Keep Alive (--sck-keep-alive)

Activation du keep-alive.

Active les messages keep-alive sur les connexions socket.

default: y
example: --no-sck-keep-alive

Option de nombre de connexions Keep Alive (--tcp-keep-alive-count)

Nombre de maintien de connexion.

Spécifie le nombre de messages TCP keep-alive pouvant être perdus avant que la connexion ne soit considérée comme inactive.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPCNT.

allowed: [1, 32]
example: --tcp-keep-alive-count=3

Option d’idle Keep Alive (--tcp-keep-alive-idle)

Délai d’inactivité pour la maintien de la connexion.

Spécifie la durée (en secondes) pendant laquelle aucune activité réseau ne se produit, après laquelle le système d’exploitation doit envoyer un message de maintien de connexion TCP.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPIDLE.

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

Option Intervalle Keep Alive (--tcp-keep-alive-interval)

Intervalle de temps pour la maintien de la connexion active.

Spécifie la durée (en secondes) après laquelle un message TCP keep-alive non reconnu doit être renvoyé.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPINTVL.

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

Suites de chiffrement TLSv1.2 Option (--tls-cipher-12)

Suites de chiffrement TLSv1.2 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. L’exemple proposé constitue un choix raisonnable sauf si des exigences de sécurité spécifiques s’appliquent. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

Suites de chiffrement TLSv1.3 Option (--tls-cipher-13)

Suites de chiffrement TLSv1.3 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Options de journalisation

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: --log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: --log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: --log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

Option de journalisation des sous-processus (--log-subprocess)

Activer la journalisation dans les sous-processus.

Activez la journalisation des fichiers pour tout sous-processus créé par ce processus, en utilisant le niveau de journalisation spécifié par log-level-file.

default: n
example: --log-subprocess

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: --no-log-timestamp

Options du dépôt

Définir l’option dépôt (--repo)

Définir le dépôt.

Spécifiez le dépôt sur lequel une commande doit s’opérer.

Par exemple, cette option peut être utilisée pour effectuer une restauration à partir d’un dépôt spécifique, plutôt que de laisser pgBackRest choisir.

allowed: [1, 256]
example: --repo=1

Option de conteneur de dépôt Azure (--repo-azure-container)

Conteneur de dépôt Azure.

Conteneur Azure utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés dans la racine du conteneur en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par Azure dans le conteneur.

example: --repo1-azure-container=pg-backup

Type de clé du dépôt Azure (--repo-azure-key-type)

Type de clé du dépôt Azure.

Les types suivants sont pris en charge pour l’autorisation :

  • shared - Clé partagée
  • sas - Signature d’accès partagé
  • auto - Autorisation automatique à l’aide d’identités managées Azure
default: shared
example: --repo1-azure-key-type=sas

Option de style d’URI de dépôt Azure (--repo-azure-uri-style)

Style URI Azure.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte account.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer le compte aux URI.
default: host
example: --repo1-azure-uri-style=path

Type de chiffrement du dépôt (--repo-cipher-type)

Chiffrement utilisé pour chiffrer le dépôt.

Les types de chiffrement suivants sont pris en charge :

  • none - Le dépôt n’est pas chiffré
  • aes-256-cbc - Advanced Encryption Standard avec une longueur de clé de 256 bits

Notez que le chiffrement est toujours effectué côté client, même si le type de dépôt (par exemple S3) prend en charge le chiffrement.

default: none
example: --repo1-cipher-type=aes-256-cbc

Option de bac de dépôt GCS (--repo-gcs-bucket)

Dépôt de bucket GCS.

Dépôt GCS utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par GCS dans le bucket.

example: --repo1-gcs-bucket=/pg-backup

Option de point de terminaison du dépôt GCS (--repo-gcs-endpoint)

Point de terminaison du dépôt GCS.

Point d’accès utilisé pour se connecter au service de stockage. Peut être mis à jour pour utiliser un serveur local GCS ou un point d’accès alternatif.

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

Type de clé du dépôt GCS (--repo-gcs-key-type)

Type de clé du dépôt GCS.

Les types suivants sont pris en charge pour l’autorisation :

  • auto - Autoriser à l’aide du compte de service de l’instance.
  • service - Compte de service à partir d’une clé stockée localement.
  • token - À utiliser pour les tests locaux, par exemple fakegcs.

Lorsque repo-gcs-key-type=service, les identifiants seront rechargés lorsque le jeton d’authentification sera renouvelé.

default: service
example: --repo1-gcs-key-type=auto

Option ID du projet du dépôt GCS (--repo-gcs-user-project)

Identifiant du projet GCS.

ID du projet GCS utilisé pour déterminer la facturation des requêtes.

example: --repo1-gcs-user-project=my-project

Option hôte du dépôt (--repo-host)

Hôte du dépôt lors de l’opération à distance.

Lors de la sauvegarde et de l’archivage vers un système de fichiers monté localement, ce paramètre n’est pas requis.

example: --repo1-host=repo1.domain.com

Nom obsolète : backup-host

Option du fichier de l’autorité de certification hôte du dépôt (--repo-host-ca-file)

Fichier de l’autorité de certification du serveur de dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte du dépôt.

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’autorité de certification du dépôt (--repo-host-ca-path)

Chemin de l’autorité de certification du serveur de dépôt.

Utilisez un chemin de certificat d’autorité (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte du dépôt.

example: --repo1-host-ca-path=/etc/pki/tls/certs

Option de fichier de certificat d’hôte du dépôt (--repo-host-cert-file)

Fichier de certificat d’hôte du dépôt.

Envoyé à l’hôte du dépôt pour prouver l’identité du client.

example: --repo1-host-cert-file=/path/to/client.crt

Option de commande hôte du dépôt (--repo-host-cmd)

Hôte du dépôt commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes local et de dépôt. Si non défini, la commande de dépôt sera définie de la même manière que celle de l’hôte local.

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : backup-cmd

Option de configuration de l’hôte du dépôt (--repo-host-config)

Fichier de configuration du serveur de dépôt pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le fichier de configuration de l’hôte du dépôt se trouve dans un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : sauvegarde-config

Option de chemin d’inclusion de configuration d’hôte de dépôt (--repo-host-config-include-path)

Configuration du serveur de dépôt pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration de l’hôte du dépôt est différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

Chemin de configuration de l’hôte du dépôt (--repo-host-config-path)

Chemin de configuration du serveur de dépôt pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin de configuration de l’hôte du dépôt est différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

Option de fichier de clé hôte du dépôt (--repo-host-key-file)

Fichier de clé hôte du dépôt.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --repo1-host-key-file=/path/to/client.key

Option de port hôte du dépôt (--repo-host-port)

Port de l’hôte du dépôt lorsque repo-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole du serveur du dépôt.

NOTE : Lorsque repo-host-type=ssh, il n’existe pas de valeur par défaut pour repo-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

Nom obsolète : backup-ssh-port

Type de protocole d’hôte de dépôt (--repo-host-type)

Type de protocole d’hôte de dépôt.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --repo1-host-type=tls

Option d’utilisateur hôte de dépôt (--repo-host-user)

Utilisateur hôte du dépôt lorsque repo-host est défini.

Définit l’utilisateur utilisé pour les opérations sur l’hôte du dépôt. Il est préférable que ce ne soit pas l’utilisateur postgres, mais plutôt un autre utilisateur tel que pgbackrest. Si PostgreSQL s’exécute sur l’hôte du dépôt, l’utilisateur postgres peut être ajouté au groupe pgbackrest afin d’avoir des permissions de lecture sur le dépôt sans pouvoir accidentellement le modifier.

default: pgbackrest
example: --repo1-host-user=repo-user

Nom obsolète : backup-user

Option Chemin du dépôt (--repo-path)

Chemin où les sauvegardes et l’archive sont stockées.

Le dépôt est l’emplacement où pgBackRest stocke les sauvegardes et les archives des segments WAL.

Il peut être difficile de prévoir à l’avance l’espace nécessaire. La meilleure approche consiste à effectuer quelques sauvegardes, puis à noter la taille des différents types de sauvegardes (pleines, incrémentielles, différentielles) et à mesurer la quantité de WAL générée par jour. Cela vous donnera une idée générale de l’espace requis, bien que les besoins évoluent probablement au fil du temps avec l’évolution de votre base de données.

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

Option de bac de dépôt S3 (--repo-s3-bucket)

Dépôt S3.

Dépôt S3 utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par AWS dans le bucket.

example: --repo1-s3-bucket=pg-backup

Option de point de terminaison du dépôt S3 (--repo-s3-endpoint)

Point de terminaison du dépôt S3.

Le point de terminaison AWS doit être valide pour la région sélectionnée.

Pour les configurations personnalisées ou les tests, les options repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port, et repo-storage-verify-tls peuvent être utiles.

example: --repo1-s3-endpoint=s3.amazonaws.com

Type de clé du dépôt S3 (--repo-s3-key-type)

Type de clé pour le dépôt S3.

Les types suivants sont pris en charge :

  • shared - Clés partagées
  • auto - Récupérer automatiquement les identifiants temporaires
  • web-id - Récupérer automatiquement les identifiants d’identité web
  • pod-id - Récupérer automatiquement les identifiants d’identité de pod EKS
  • process - Récupérer les identifiants en exécutant un processus
default: shared
example: --repo1-s3-key-type=auto

Option ID de clé KMS pour dépôt S3 (--repo-s3-kms-key-id)

Clé KMS du dépôt S3.

Active le chiffrement côté serveur S3 en utilisant la clé du service de gestion des clés AWS spécifiée.

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

Option de commande du processus d’authentification S3 (--repo-s3-process-cmd)

Commande du processus d’authentification S3.

Commande (et arguments facultatifs) à exécuter pour récupérer les identifiants temporaires S3. Le premier élément de la liste est la commande, les éléments suivants sont passés en tant que paramètres.

Le processus doit produire un JSON contenant les champs AccessKeyId, SecretAccessKey, SessionToken et Expiration. Les identifiants seront automatiquement actualisés avant l’expiration. Voir Process Credential Provider pour les détails du format.

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

Option de région du dépôt S3 (--repo-s3-region)

Région du dépôt S3.

La région AWS où le bucket a été créé.

example: --repo1-s3-region=us-east-1

Option Requesteur Payant pour le dépôt S3 (--repo-s3-requester-pays)

Dépôt S3 payeur de la demande.

Active le paiement par le demandeur S3.

default: n
example: --no-repo1-s3-requester-pays

Option de rôle du dépôt S3 (--repo-s3-role)

Rôle du dépôt S3.

Le nom du rôle AWS (pas le nom ARN complet) utilisé pour récupérer les identifiants temporaires lorsque repo-s3-key-type=auto.

example: --repo1-s3-role=authrole

Option de service de dépôt S3 (--repo-s3-service)

Service de signature S3.

Le service de signature S3 utilisé dans l’authentification SigV4. La valeur par défaut est s3 pour les points d’accès S3 standards. À définir sur s3-outposts lors de l’utilisation d’un point d’accès S3 Outposts.

default: s3
example: --repo1-s3-service=s3-outposts

Option de point de terminaison STS du dépôt S3 (--repo-s3-sts-host)

Point de terminaison STS du dépôt S3.

Point de terminaison STS utilisé pour récupérer des identifiants temporaires lorsque repo-s3-key-type=web-id est configuré. Définissez-le sur un point de terminaison régional (par exemple sts.us-east-1.amazonaws.com) pour utiliser STS régional, ce qui peut être nécessaire pour les régions GovCloud, Chine, ou pour réduire la latence.

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

Option de style d’URI de dépôt S3 (--repo-s3-uri-style)

Style d’URI S3.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte bucket.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer les URI par le répertoire.
default: host
example: --repo1-s3-uri-style=path

Option hôte du dépôt SFTP (--repo-sftp-host)

Hôte du dépôt SFTP.

Hôte SFTP contenant le dépôt.

example: --repo1-sftp-host=sftprepo.domain

Fingerprint de l’hôte du dépôt SFTP (--repo-sftp-host-fingerprint)

Empreinte du serveur hôte du dépôt SFTP.

La génération de l’empreinte d’hôte du dépôt SFTP doit correspondre à repo-sftp-host-key-hash-type. Générez l’empreinte via awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Les clés d’hôte SSH se trouvent normalement dans le répertoire /etc/ssh.

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

Type d’option de vérification de la clé hôte SFTP (--repo-sftp-host-key-check-type)

Type de vérification de la clé hôte SFTP.

Les types de vérification de clé d’hôte SFTP suivants sont pris en charge :

  • strict - pgBackRest n’ajoutera jamais automatiquement les clés d’hôte au fichier ~/.ssh/known_hosts, et refusera de se connecter aux hôtes dont la clé d’hôte a changé ou n’est pas trouvée dans les fichiers known hosts. Cette option oblige l’utilisateur à ajouter manuellement tous les nouveaux hôtes.
  • accept-new - pgBackRest ajoutera automatiquement les nouvelles clés d’hôte au fichier known hosts de l’utilisateur, mais n’autorisera pas les connexions aux hôtes dont la clé d’hôte a changé.
  • fingerprint - pgBackRest vérifiera la clé d’hôte contre l’empreinte spécifiée par l’option repo-sftp-host-fingerprint.
  • none - aucune vérification de clé d’hôte ne sera effectuée.
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

Type de hachage de la clé hôte du dépôt SFTP (--repo-sftp-host-key-hash-type)

Type de hachage de la clé d’hôte du dépôt SFTP.

Type de hachage de la clé hôte du dépôt SFTP. Déclare le type de hachage à utiliser pour calculer le hachage de la clé hôte du système distant au démarrage SSH. Les versions plus récentes de libssh2 prennent en charge sha256 en plus de md5 et sha1.

example: --repo1-sftp-host-key-hash-type=sha256

Option de port hôte du dépôt SFTP (--repo-sftp-host-port)

Port hôte du dépôt SFTP.

Port hôte du dépôt SFTP.

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

Option utilisateur hôte dépôt SFTP (--repo-sftp-host-user)

Utilisateur hôte du dépôt SFTP.

Utilisateur sur l’hôte utilisé pour stocker le dépôt.

example: --repo1-sftp-host-user=pg-backup

Option fichier Hôtes SFTP connus (--repo-sftp-known-host)

Fichier d’hôtes SFTP connus.

Fichier known hosts à consulter pour rechercher une correspondance avec un hôte SFTP lors de l’authentification. Si non spécifié, pgBackRest recherchera par défaut dans ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts et /etc/ssh/ssh_known_hosts2. Si configuré avec un ou plusieurs chemins de fichier, pgBackRest recherchera dans ces fichiers une correspondance. Les chemins de fichier doivent être complets ou commencer par un tilde. L’option repo-sftp-known-host peut être spécifiée plusieurs fois pour indiquer plusieurs fichiers known hosts à consulter. Pour utiliser la vérification du fichier known hosts, l’option repo-sftp-host-fingerprint ne doit pas être définie. Voir également l’option repo-sftp-host-check-type.

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

Option fichier de clé privée du dépôt SFTP (--repo-sftp-private-key-file)

Fichier de clé privée SFTP.

Fichier de clé privée SFTP utilisé pour l’authentification.

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

Option de fichier de clé publique du dépôt SFTP (--repo-sftp-public-key-file)

Fichier de clé publique SFTP.

Fichier de clé publique SFTP utilisé pour l’authentification. Facultatif si compilé contre OpenSSL, obligatoire si compilé contre une autre bibliothèque.

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

Option du fichier CA du dépôt de stockage (--repo-storage-ca-file)

Fichier de certificat d’autorité de certification pour le dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Noms obsolètes : repo-azure-ca-file, repo-s3-ca-file

Option de chemin du certificat CA TLS pour le dépôt (--repo-storage-ca-path)

Chemin du certificat d’autorité de certification du dépôt.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-path=/etc/pki/tls/certs

Noms obsolètes : repo-azure-ca-path, repo-s3-ca-path

Option hôte de stockage du dépôt (--repo-storage-host)

Hôte de stockage du dépôt.

Se connecter à un hôte autre que le point de terminaison de stockage (par exemple S3, Azure). Cela est généralement utilisé pour les tests.

example: --repo1-storage-host=127.0.0.1

Noms obsolètes : repo-azure-host, repo-s3-host

Option de port du stockage du dépôt (--repo-storage-port)

Port du stockage du dépôt.

Port à utiliser lors de la connexion au point de terminaison du stockage (par exemple S3, Azure) ou à l’hôte (le cas échéant).

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

Noms obsolètes : repo-azure-port, repo-s3-port

Option d’étiquette de stockage du dépôt (--repo-storage-tag)

Étiquette(s) de stockage du dépôt.

Spécifiez les balises à ajouter aux objets lorsque le dépôt est un magasin d’objets (par exemple, S3). L’option peut être répétée pour ajouter plusieurs balises.

Il n’existe aucune fonctionnalité dans pgBackRest permettant de modifier ces balises ; veillez donc à les définir correctement avant d’exécuter stanza-create afin d’assurer une cohérence des balises dans l’ensemble du dépôt.

example: --repo1-storage-tag=key1=value1

Option de taille de morceau de chargement du dépôt (--repo-storage-upload-chunk-size)

Taille du morceau de chargement du dépôt.

Les magasins d’objets tels que S3 permettent de télécharger des fichiers par morceaux lorsque le fichier est trop volumineux pour être stocké en mémoire. Même si le fichier peut être stocké en mémoire, il est plus efficace en mémoire de limiter la quantité de mémoire utilisée pour les téléchargements.

Une taille de morceau plus élevée entraîne généralement de meilleures performances, car elle réduit le nombre de requêtes de téléchargement et permet de télécharger plus de fichiers en une seule requête plutôt qu’en morceaux. Le désavantage est que la consommation mémoire sera plus élevée, et comme la mémoire tampon de morceau doit être allouée par processus, des valeurs plus élevées de process-max entraînent une consommation mémoire globale plus importante.

Notez que les tailles de morceau valides varient selon le type de stockage et la plateforme. Par exemple, AWS S3 impose une taille minimale de morceau de 5MiB. La terminologie relative à la taille du morceau varie selon le type de stockage ; utilisez donc « part size » pour AWS S3, « chunk size » pour GCS et « block size » pour Azure lorsque vous recherchez les valeurs minimales ou maximales.

Si un fichier est plus grand que 1GiB (la taille maximale que PostgreSQL crée par défaut), la taille de tranche sera augmentée progressivement jusqu’à la valeur maximale autorisée afin de terminer le téléchargement du fichier.

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

Option de vérification du certificat de stockage du dépôt (--repo-storage-verify-tls)

Vérification du certificat du dépôt de stockage.

Cette option permet d’activer/désactiver la vérification du certificat TLS du serveur de stockage (par exemple, S3, Azure). La désactivation ne doit être utilisée que pour des tests ou d’autres scénarios où un certificat a été auto-signé.

default: y
example: --no-repo1-storage-verify-tls

Noms obsolètes : repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

Heure cible pour l’option dépôt (--repo-target-time)

Heure cible pour le dépôt.

Le temps cible définit l’instant auquel les commandes lisent un dépôt sur un stockage versionné. Cela permet à la commande de lire le dépôt tel qu’il était à un instant donné, afin de récupérer des données supprimées ou corrompues par une erreur utilisateur ou un logiciel malveillant.

Le stockage versionné est pris en charge par S3, GCS et Azure, mais il est généralement désactivé par défaut. En plus d’activer la versioning, il peut être utile d’activer le verrouillage d’objets pour S3, ou la suppression progressive pour GCS ou Azure.

Lorsque l’option repo-target-time est spécifiée, l’option repo doit également être fournie. Il est probable que tous les types de dépôt ne prennent pas en charge la versionning, et il est généralement préférable de cibler un seul dépôt pour la récupération.

Notez que les comparaisons avec l’horodatage de stockage sont <= à l’horodatage fourni et que les millisecondes sont tronquées de l’horodatage lorsqu’elles sont fournies.

example: --repo-target-time=2024-08-08 12:12:12+00

Option de type de dépôt (--repo-type)

Type de stockage utilisé pour le dépôt.

Les types de dépôt suivants sont pris en charge :

  • azure - Service de stockage Blob Azure
  • cifs - Comme posix, mais désactive les liens et les fsyncs de répertoire
  • gcs - Google Cloud Storage
  • posix - Systèmes de fichiers conformes à Posix
  • s3 - AWS Simple Storage Service
  • sftp - Protocole de transfert de fichiers sécurisé

Lorsqu’un montage NFS est utilisé comme dépôt posix, les mêmes règles s’appliquent à pgBackRest qu’indiquées dans la documentation PostgreSQL : Création d’un cluster de base de données - Systèmes de fichiers .

default: posix
example: --repo1-type=cifs

4.11 - Commande de restauration (restore)

Référence des options et du comportement de la commande pgBackRest restore.

La commande de restauration sélectionne automatiquement la dernière sauvegarde du premier dépôt où des sauvegardes existent (voir Démarrage rapide - Restaurer une sauvegarde ). L’ordre dans lequel les dépôts sont vérifiés est déterminé par le pgbackrest.conf (par exemple, repo1 sera vérifié avant repo2). Pour sélectionner un dépôt spécifique, l’option --repo peut être utilisée (par exemple, --repo=1). L’option --set peut être utilisée si une sauvegarde autre que la plus récente est souhaitée.

Lorsqu’une restauration à un instant donné de --type=time ou --type=lsn est spécifiée, le temps cible ou le numéro LSN cible doit être précisé à l’aide de l’option --target. Si aucune sauvegarde n’est spécifiée via l’option --set, les dépôts configurés seront examinés, dans l’ordre, à la recherche d’une sauvegarde contenant le temps ou le numéro LSN demandés. Si aucune sauvegarde correspondante n’est trouvée, la dernière sauvegarde du premier dépôt contenant des sauvegardes sera utilisée pour --type=time, tandis qu’aucune sauvegarde ne sera sélectionnée pour --type=lsn. Pour les autres types de restauration à un instant donné, par exemple xid, l’option --set doit être fournie si le temps cible est antérieur à la dernière sauvegarde. Voir Restauration à un instant donné pour plus de détails et d’exemples.

Les slots de réplication ne sont pas inclus, conformément à la recommandation de PostgreSQL. Consultez Sauvegarde du répertoire de données dans la documentation PostgreSQL pour plus d’informations.

Options de commande

Option Mode archive (--archive-mode)

Conserver ou désactiver l’archivage sur le cluster restauré.

Cette option permet de conserver ou de désactiver l’archivage sur un cluster restauré. Cela est utile lorsque le cluster doit être promu pour effectuer certaines opérations, mais n’est pas destiné à devenir le nouveau principal. Dans ce cas, il n’est pas recommandé d’envoyer les WAL depuis le cluster vers le dépôt.

Les modes suivants sont pris en charge :

  • off - désactiver l’archivage en définissant archive_mode=off.
  • preserve - conserver le paramètre archive_mode actuel.

NOTE : Cette option n’est pas disponible sous PostgreSQL < 12.

default: preserve
example: --archive-mode=off

Option d’exclusion de base de données (--db-exclude)

Restauration en excluant les bases de données spécifiées.

Les bases de données exclues seront restaurées sous forme de fichiers creux, initialisés à zéro, afin de économiser de l’espace, tout en permettant à PostgreSQL de réaliser la récupération. Après la récupération, ces bases de données ne seront pas accessibles, mais pourront être supprimées à l’aide de la commande drop database. L’option --db-exclude peut être spécifiée plusieurs fois afin de préciser plusieurs bases de données à exclure.

Lorsqu’il est utilisé en combinaison avec l’option --db-include, --db-exclude ne s’applique qu’aux bases de données système standard (template0, template1, et postgres).

example: --db-exclude=db_main

Option base de données incluse (--db-include)

Restauration uniquement des bases de données spécifiées.

Cette fonctionnalité permet de ne restaurer que les bases de données sélectionnées. Les bases de données non spécifiquement incluses seront restaurées sous forme de fichiers creux, initialisés à zéro, afin de sauvegarder de l’espace, tout en permettant à PostgreSQL de réaliser la récupération. Après la récupération, les bases de données non incluses ne seront pas accessibles, mais peuvent être supprimées à l’aide de la commande drop database.

NOTE : les bases de données intégrées (template0, template1 et postgres) sont toujours restaurées, sauf si elles sont spécifiquement exclues.

L’option --db-include peut être passée plusieurs fois pour spécifier plus d’une base de données à inclure.

Voir Restauration de bases de données sélectionnées pour plus d’informations et de précautions.

example: --db-include=db_main

Option obligatoire (--force)

Forcer une restauration.

Par elle-même, cette option force la substitution complète des chemins des données PostgreSQL et des espaces de table. En combinaison avec --delta, une comparaison basée sur l’horodatage/taille sera effectuée au lieu d’utiliser les sommes de contrôle.

default: n
example: --force

Restaurez tous les liens symboliques.

Par défaut, les répertoires et fichiers symboliques sont restaurés en tant que répertoires et fichiers normaux dans $PGDATA. Cela est dû au fait qu’il peut ne pas être sécurisé de restaurer les liens symboliques vers leurs destinations d’origine sur un système différent de celui où la sauvegarde d’origine a été effectuée. Cette option restaure tous les liens symboliques exactement comme ils étaient sur le système d’origine où la sauvegarde a été effectuée.

default: n
example: --link-all

Modifier la destination d’un lien symbolique.

Permet de modifier le fichier ou le chemin de destination d’un lien symbolique lors d’une restauration. Cela est utile pour restaurer sur des systèmes ayant une disposition de stockage différente de celle du système d’origine où la sauvegarde a été générée.

example: --link-map=pg_xlog=/data/xlog

Option de récupération (--recovery-option)

Définissez une option dans postgresql.auto.conf ou recovery.conf.

Consultez Configuration du serveur pour obtenir les détails sur les options postgresql.auto.conf ou recovery.conf (assurez-vous de sélectionner votre version de PostgreSQL). Cette option peut être utilisée plusieurs fois.

Pour PostgreSQL >= 12, les options seront écrites dans postgresql.auto.conf. Pour toutes les autres versions, les options seront écrites dans recovery.conf.

NOTE : L’option restore_command sera générée automatiquement, mais peut être remplacée par cette option. Prenez garde à spécifier votre propre restore_command, car pgBackRest est conçu pour gérer cela à votre place. Les options de récupération cible (recovery_target_name, recovery_target_time, etc.) sont générées automatiquement par pgBackRest et ne doivent pas être définies avec cette option.

Comme pgBackRest ne démarre pas PostgreSQL après avoir écrit le fichier postgresql.auto.conf ou recovery.conf, il est toujours possible d’éditionner/vérifier postgresql.auto.conf ou recovery.conf avant de redémarrer manuellement.

example: --recovery-option=primary_conninfo=db.mydomain.com

Définir l’option (--set)

Sauvegarde définie pour la restauration.

Je jeu de sauvegarde à restaurer. latest restaurera la dernière sauvegarde, sinon indiquez le nom de la sauvegarde à restaurer.

default: latest
example: --set=20150131-153358F_20150131-153401I

Option de carte des espaces de table (--tablespace-map)

Restaurez un tablespace dans le répertoire spécifié.

Déplace un tablespace vers un nouvel emplacement pendant la restauration. Cela est utile lorsque les emplacements des tablespaces ne sont pas identiques sur un réplica, ou qu’un système mis à jour dispose de points de montage différents.

Les emplacements des tablespaces ne sont pas stockés dans pg_tablespace, aussi peut-on les déplacer sans risque. Toutefois, déplacer un tablespace vers data_directory n’est pas recommandé et peut entraîner des problèmes. Pour en savoir plus sur le déplacement des tablespaces, http://www.databasesoup.com/2013/11/moving-tablespaces.html constitue une bonne ressource.

example: --tablespace-map=ts_01=/db/ts_01

Option de mappage de tous les espaces de tableaux (--tablespace-map-all)

Restaurez tous les tablespace dans le répertoire spécifié.

Les espaces de table sont restaurés dans leurs emplacements d’origine par défaut. Ce comportement peut être modifié pour chaque espace de table grâce à l’option tablespace-map, mais il peut parfois être préférable de rediriger tous les espaces de table vers un nouveau répertoire d’un coup. Cela est particulièrement utile pour les systèmes de développement ou de préproduction qui peuvent ne pas avoir la même disposition de stockage que le système d’origine où la sauvegarde a été générée.

Le chemin spécifié sera le chemin parent utilisé pour créer tous les espaces de table dans la sauvegarde.

AVERTISSEMENT :

Les espaces de table créés après le début de la sauvegarde ne seront pas mappés. Effectuez une nouvelle sauvegarde après la création d’un espace de table si le mappage est requis.

example: --tablespace-map-all=/data/tablespace

Option cible (--target)

Cible de récupération.

Définit la cible de récupération lorsque --type est égal à lsn, name, xid ou time. Si la cible est antérieure à la dernière sauvegarde et que --type n’est pas time ou lsn, utilisez l’option --set pour préciser l’ensemble de sauvegarde.

example: --target=2015-01-30 14:15:11 EST

Action cible Option (--target-action)

Action à entreprendre lorsque la cible de récupération est atteinte.

Lorsque hot_standby=on, par défaut depuis PostgreSQL 10, cette option contrôle de manière cohérente l’action entreprise par le cluster lorsque la cible est atteinte ou qu’aucun WAL n’est plus présent dans l’archive.

Lorsque hot_standby=off dans PostgreSQL >= 12, pause se comporte comme shutdown. Lorsque hot_standby=off dans PostgreSQL < 12, pause se comporte comme promote.

Les actions suivantes sont prises en charge :

  • pause - met en pause lorsque la cible de récupération est atteinte.
  • promote - promeut et bascule de timeline lorsque la cible de récupération est atteinte.
  • shutdown - arrête le serveur lorsque la cible de récupération est atteinte. (PostgreSQL >= 9.5)
default: pause
example: --target-action=promote

Option cible exclusive (--target-exclusive)

Arrêtez juste avant d’atteindre la cible de récupération.

Définit si la récupération jusqu’à la cible sera exclusive (valeur par défaut : inclusive) et n’est valable que lorsque --type est égal à lsn, time ou xid. Par exemple, utiliser --target-exclusive exclut le contenu de la transaction 1007 lorsque --type=xid et --target=1007. Consultez l’option recovery_target_inclusive dans la documentation PostgreSQL pour plus d’informations.

default: n
example: --no-target-exclusive

Option Timeline cible (--target-timeline)

Restauration selon une chronologie.

Consultez recovery_target_timeline dans la documentation PostgreSQL pour plus d’informations.

example: --target-timeline=3

Type Option (--type)

Type de récupération.

Les types de récupération suivants sont pris en charge :

  • default - restaurer jusqu’à la fin du flux d’archive.
  • immediate - restaurer uniquement jusqu’à ce que la base de données devienne cohérente.
  • lsn - restaurer jusqu’au numéro de séquence de journal (LSN) spécifié dans --target. Cette option n’est prise en charge que sur PostgreSQL >= 10.
  • name - restaurer jusqu’au point de restauration spécifié dans --target.
  • xid - restaurer jusqu’à l’identifiant de transaction spécifié dans --target.
  • time - restaurer jusqu’à l’heure spécifiée dans --target.
  • preserve - conserver le fichier postgresql.auto.conf ou recovery.conf existant.
  • standby - ajouter standby_mode=on au fichier postgresql.auto.conf ou recovery.conf afin que le cluster démarre en mode secondaire.
  • none - aucun fichier postgresql.auto.conf ou recovery.conf n’est écrit, de sorte que PostgreSQL tentera d’atteindre la cohérence à l’aide des segments WAL présents dans pg_xlog/pg_wal. Fournissez les segments WAL requis ou utilisez le paramètre archive-copy pour les inclure dans la sauvegarde.

AVERTISSEMENT :

La récupération type=none doit être évitée, car la timeline ne sera pas incrémentée à la fin de la récupération. Cela peut entraîner, par exemple, une tentative par PostgreSQL d’archiver des WAL en double, qui sera rejetée, et provoquer une saturation du disque, pouvant entraîner une panique de PostgreSQL. En outre, des outils comme pg_rewind peuvent ne pas fonctionner correctement ou causer des corruptions.

Notez que la valeur par défaut de type pour les sauvegardes hors ligne est none car la restauration à un point précis n’est pas possible si wal_level=minimal. Si type est défini explicitement, sa valeur sera respectée, car la restauration à un point précis est possible à partir de sauvegardes hors ligne à condition que wal_level > minimal.

default: default
example: --type=xid

Options générales

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: y
example: --allow-root

Option Taille tampon (--buffer-size)

Taille du tampon pour les opérations d’E/S.

Taille de tampon utilisée pour les opérations de copie, de compression, de chiffrement et autres. Le nombre de tampons utilisés dépend des options, et chaque opération peut utiliser une mémoire supplémentaire, par exemple, la compression gz peut utiliser jusqu’à 256KiB de mémoire supplémentaire.

Les valeurs autorisées sont 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB et 16MiB.

default: 1MiB
example: --buffer-size=2MiB

Option de commande pgBackRest (--cmd)

Commande pgBackRest.

pgBackRest peut générer une chaîne de commande, par exemple lorsque la commande restore génère le paramètre restore_command. Dans ce cas, la commande utilisée pour exécuter le processus pgBackRest sera employée, sauf si l’option cmd est fournie.

AVERTISSEMENT :

Envelopper la commande pgBackRest peut entraîner un comportement imprévisible et n’est pas recommandé.

default: [path of executed pgbackrest binary]
example: --cmd=/var/lib/pgsql/bin/pgbackrest_wrapper.sh

Option de commande client SSH (--cmd-ssh)

Commande cliente SSH.

Utilisez une commande cliente SSH spécifique lorsque vous souhaitez utiliser une alternative ou que la commande ssh n’est pas disponible dans $PATH.

default: ssh
example: --cmd-ssh=/usr/bin/ssh

Option niveau de compression réseau (--compress-level-network)

Niveau de compression du réseau.

Définit le niveau de compression réseau lorsque compress-type=none et la commande ne sont pas exécutées sur le même hôte que le dépôt. La compression est utilisée pour réduire le trafic réseau. Lorsque compress-type est différent de none, le paramètre compress-level-network est ignoré et compress-level est utilisé à la place, afin que le fichier ne soit compressé qu’une seule fois.

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

Option de configuration (--config)

Fichier de configuration pgBackRest.

Utilisez cette option pour spécifier un fichier de configuration différent du fichier par défaut.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

Option Chemin d’inclusion de configuration (--config-include-path)

Chemin vers les fichiers de configuration supplémentaires de pgBackRest.

Les fichiers de configuration se trouvant dans l’emplacement spécifié et ayant l’extension .conf seront concaténés au fichier de configuration de pgBackRest, ce qui donne un seul fichier de configuration.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration (--config-path)

Chemin de base des fichiers de configuration de pgBackRest.

Ce paramètre est utilisé pour remplacer le chemin de base par défaut pour les options --config et --config-include-path, sauf si ces dernières sont explicitement définies en ligne de commande.

Par exemple, passer uniquement --config-path=/conf/pgbackrest fait que la valeur par défaut de --config est définie à /conf/pgbackrest/pgbackrest.conf et que la valeur par défaut de --config-include-path est définie à /conf/pgbackrest/conf.d.

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

Option Delta (--delta)

Restauration ou sauvegarde à l’aide de sommes de contrôle.

Lors d’une restauration, par défaut, les répertoires de données PostgreSQL et les répertoires de tablespace sont supposés exister mais être vides. Cette option effectue une restauration incrémentielle à l’aide des sommes de contrôle.

Pendant une sauvegarde, cette option utilisera les sommes de contrôle au lieu des horodatages pour déterminer si les fichiers seront copiés.

default: n
example: --delta

Option d’expiration I/O (--io-timeout)

Délai d’attente d’E/S dépassé.

Délai d’attente, en secondes, utilisé pour les connexions et les opérations de lecture/écriture.

Notez que l’opération de lecture/écriture entière n’a pas besoin de se terminer dans ce délai d’attente, mais une certaine progression doit être réalisée, même si elle ne concerne qu’un seul octet.

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

Option Chemin verrou (--lock-path)

Chemin où les fichiers verrou sont stockés.

Le chemin de verrouillage fournit un emplacement où pgBackRest peut créer des fichiers de verrouillage afin d’empêcher l’exécution simultanée d’opérations en conflit.

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

Option de masque neutre (--neutral-umask)

Utilisez un umask neutre.

Définit le umask à 0000 afin que les modes du dépôt soient créés de manière cohérente. Le mode par défaut du répertoire est 0750 et le mode par défaut du fichier est 0640.

Pour utiliser le umask de l’utilisateur en cours, spécifiez neutral-umask=n dans le fichier de configuration ou --no-neutral-umask en ligne de commande.

default: y
example: --no-neutral-umask

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: --priority=19

Option de processus maximum (--process-max)

Nombre maximal de processus à utiliser pour la compression ou le transfert.

Chaque processus effectuera une compression et un transfert afin d’accélérer l’exécution de la commande, mais ne définissez pas process-max trop élevé afin de ne pas affecter les performances de la base de données.

default: 1
allowed: [1, 999]
example: --process-max=4

Option délai d’attente du protocole (--protocol-timeout)

Délai d’attente du protocole.

Définit le délai d’attente, en secondes, durant lequel le processus local ou distant attend qu’un nouveau message soit reçu au niveau du protocole. Cela empêche les processus de rester bloqués indéfiniment en attente d’un message.

NOTE : L’option protocol-timeout doit être supérieure à l’option db-timeout.

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

Option Keep Alive (--sck-keep-alive)

Activation du keep-alive.

Active les messages keep-alive sur les connexions socket.

default: y
example: --no-sck-keep-alive

Option stanza (--stanza)

Définit la stanza.

Une stanza est la configuration d’un cluster de base de données PostgreSQL qui définit son emplacement, la manière dont il sera sauvegardé, les options d’archivage, etc. La plupart des serveurs de base de données n’ont qu’un seul cluster PostgreSQL et donc une seule stanza, tandis que les serveurs de sauvegarde ont une stanza pour chaque cluster de base de données à sauvegarder.

Il est tentant de nommer la stanza en fonction du cluster principal, mais un nom plus pertinent décrit les bases de données contenues dans le cluster. Étant donné que le nom de la stanza sera utilisé pour le principal et toutes les répliques, il est préférable de choisir un nom qui décrit la fonction réelle du cluster, par exemple app ou dw, plutôt que le nom local du cluster, comme main ou prod.

example: --stanza=main

Option de nombre de connexions Keep Alive (--tcp-keep-alive-count)

Nombre de maintien de connexion.

Spécifie le nombre de messages TCP keep-alive pouvant être perdus avant que la connexion ne soit considérée comme inactive.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPCNT.

allowed: [1, 32]
example: --tcp-keep-alive-count=3

Option d’idle Keep Alive (--tcp-keep-alive-idle)

Délai d’inactivité pour la maintien de la connexion.

Spécifie la durée (en secondes) pendant laquelle aucune activité réseau ne se produit, après laquelle le système d’exploitation doit envoyer un message de maintien de connexion TCP.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPIDLE.

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

Option Intervalle Keep Alive (--tcp-keep-alive-interval)

Intervalle de temps pour la maintien de la connexion active.

Spécifie la durée (en secondes) après laquelle un message TCP keep-alive non reconnu doit être renvoyé.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPINTVL.

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

Suites de chiffrement TLSv1.2 Option (--tls-cipher-12)

Suites de chiffrement TLSv1.2 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. L’exemple proposé constitue un choix raisonnable sauf si des exigences de sécurité spécifiques s’appliquent. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

Suites de chiffrement TLSv1.3 Option (--tls-cipher-13)

Suites de chiffrement TLSv1.3 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Options de journalisation

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: --log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: --log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: --log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

Option de journalisation des sous-processus (--log-subprocess)

Activer la journalisation dans les sous-processus.

Activez la journalisation des fichiers pour tout sous-processus créé par ce processus, en utilisant le niveau de journalisation spécifié par log-level-file.

default: n
example: --log-subprocess

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: --no-log-timestamp

Options du mainteneur

Option de version PostgreSQL obligatoire (--pg-version-force)

Forcer la version de PostgreSQL.

La version de PostgreSQL spécifiée sera utilisée à la place de la version détectée automatiquement en lisant pg_control ou les en-têtes WAL. Cela est principalement utile pour les forks de PostgreSQL ou les versions de développement où ces valeurs diffèrent de la version de publication. La version rapportée par PostgreSQL via server_version_num doit correspondre à la version forcée.

AVERTISSEMENT :

Faites preuve de prudence en utilisant cette option, car pg_control et les en-têtes WAL seront toujours lus selon le format attendu pour la version spécifiée, c’est-à-dire le format issu de la version open-source officielle de PostgreSQL. Si la version fork ou développée modifie le format des champs sur lesquels pgBackRest dépend, cela entraînera un comportement imprévu. En général, cette option ne fonctionnera correctement que si le fork ajoute tous les membres de structure personnalisés après les membres standard de PostgreSQL.

example: --pg-version-force=15

Options du dépôt

Définir l’option dépôt (--repo)

Définir le dépôt.

Spécifiez le dépôt sur lequel une commande doit s’opérer.

Par exemple, cette option peut être utilisée pour effectuer une restauration à partir d’un dépôt spécifique, plutôt que de laisser pgBackRest choisir.

allowed: [1, 256]
example: --repo=1

Option de conteneur de dépôt Azure (--repo-azure-container)

Conteneur de dépôt Azure.

Conteneur Azure utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés dans la racine du conteneur en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par Azure dans le conteneur.

example: --repo1-azure-container=pg-backup

Type de clé du dépôt Azure (--repo-azure-key-type)

Type de clé du dépôt Azure.

Les types suivants sont pris en charge pour l’autorisation :

  • shared - Clé partagée
  • sas - Signature d’accès partagé
  • auto - Autorisation automatique à l’aide d’identités managées Azure
default: shared
example: --repo1-azure-key-type=sas

Option de style d’URI de dépôt Azure (--repo-azure-uri-style)

Style URI Azure.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte account.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer le compte aux URI.
default: host
example: --repo1-azure-uri-style=path

Type de chiffrement du dépôt (--repo-cipher-type)

Chiffrement utilisé pour chiffrer le dépôt.

Les types de chiffrement suivants sont pris en charge :

  • none - Le dépôt n’est pas chiffré
  • aes-256-cbc - Advanced Encryption Standard avec une longueur de clé de 256 bits

Notez que le chiffrement est toujours effectué côté client, même si le type de dépôt (par exemple S3) prend en charge le chiffrement.

default: none
example: --repo1-cipher-type=aes-256-cbc

Option de bac de dépôt GCS (--repo-gcs-bucket)

Dépôt de bucket GCS.

Dépôt GCS utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par GCS dans le bucket.

example: --repo1-gcs-bucket=/pg-backup

Option de point de terminaison du dépôt GCS (--repo-gcs-endpoint)

Point de terminaison du dépôt GCS.

Point d’accès utilisé pour se connecter au service de stockage. Peut être mis à jour pour utiliser un serveur local GCS ou un point d’accès alternatif.

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

Type de clé du dépôt GCS (--repo-gcs-key-type)

Type de clé du dépôt GCS.

Les types suivants sont pris en charge pour l’autorisation :

  • auto - Autoriser à l’aide du compte de service de l’instance.
  • service - Compte de service à partir d’une clé stockée localement.
  • token - À utiliser pour les tests locaux, par exemple fakegcs.

Lorsque repo-gcs-key-type=service, les identifiants seront rechargés lorsque le jeton d’authentification sera renouvelé.

default: service
example: --repo1-gcs-key-type=auto

Option ID du projet du dépôt GCS (--repo-gcs-user-project)

Identifiant du projet GCS.

ID du projet GCS utilisé pour déterminer la facturation des requêtes.

example: --repo1-gcs-user-project=my-project

Option hôte du dépôt (--repo-host)

Hôte du dépôt lors de l’opération à distance.

Lors de la sauvegarde et de l’archivage vers un système de fichiers monté localement, ce paramètre n’est pas requis.

example: --repo1-host=repo1.domain.com

Nom obsolète : backup-host

Option du fichier de l’autorité de certification hôte du dépôt (--repo-host-ca-file)

Fichier de l’autorité de certification du serveur de dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte du dépôt.

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’autorité de certification du dépôt (--repo-host-ca-path)

Chemin de l’autorité de certification du serveur de dépôt.

Utilisez un chemin de certificat d’autorité (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte du dépôt.

example: --repo1-host-ca-path=/etc/pki/tls/certs

Option de fichier de certificat d’hôte du dépôt (--repo-host-cert-file)

Fichier de certificat d’hôte du dépôt.

Envoyé à l’hôte du dépôt pour prouver l’identité du client.

example: --repo1-host-cert-file=/path/to/client.crt

Option de commande hôte du dépôt (--repo-host-cmd)

Hôte du dépôt commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes local et de dépôt. Si non défini, la commande de dépôt sera définie de la même manière que celle de l’hôte local.

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : backup-cmd

Option de configuration de l’hôte du dépôt (--repo-host-config)

Fichier de configuration du serveur de dépôt pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le fichier de configuration de l’hôte du dépôt se trouve dans un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : sauvegarde-config

Option de chemin d’inclusion de configuration d’hôte de dépôt (--repo-host-config-include-path)

Configuration du serveur de dépôt pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration de l’hôte du dépôt est différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

Chemin de configuration de l’hôte du dépôt (--repo-host-config-path)

Chemin de configuration du serveur de dépôt pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin de configuration de l’hôte du dépôt est différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

Option de fichier de clé hôte du dépôt (--repo-host-key-file)

Fichier de clé hôte du dépôt.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --repo1-host-key-file=/path/to/client.key

Option de port hôte du dépôt (--repo-host-port)

Port de l’hôte du dépôt lorsque repo-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole du serveur du dépôt.

NOTE : Lorsque repo-host-type=ssh, il n’existe pas de valeur par défaut pour repo-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

Nom obsolète : backup-ssh-port

Type de protocole d’hôte de dépôt (--repo-host-type)

Type de protocole d’hôte de dépôt.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --repo1-host-type=tls

Option d’utilisateur hôte de dépôt (--repo-host-user)

Utilisateur hôte du dépôt lorsque repo-host est défini.

Définit l’utilisateur utilisé pour les opérations sur l’hôte du dépôt. Il est préférable que ce ne soit pas l’utilisateur postgres, mais plutôt un autre utilisateur tel que pgbackrest. Si PostgreSQL s’exécute sur l’hôte du dépôt, l’utilisateur postgres peut être ajouté au groupe pgbackrest afin d’avoir des permissions de lecture sur le dépôt sans pouvoir accidentellement le modifier.

default: pgbackrest
example: --repo1-host-user=repo-user

Nom obsolète : backup-user

Option Chemin du dépôt (--repo-path)

Chemin où les sauvegardes et l’archive sont stockées.

Le dépôt est l’emplacement où pgBackRest stocke les sauvegardes et les archives des segments WAL.

Il peut être difficile de prévoir à l’avance l’espace nécessaire. La meilleure approche consiste à effectuer quelques sauvegardes, puis à noter la taille des différents types de sauvegardes (pleines, incrémentielles, différentielles) et à mesurer la quantité de WAL générée par jour. Cela vous donnera une idée générale de l’espace requis, bien que les besoins évoluent probablement au fil du temps avec l’évolution de votre base de données.

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

Option de bac de dépôt S3 (--repo-s3-bucket)

Dépôt S3.

Dépôt S3 utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par AWS dans le bucket.

example: --repo1-s3-bucket=pg-backup

Option de point de terminaison du dépôt S3 (--repo-s3-endpoint)

Point de terminaison du dépôt S3.

Le point de terminaison AWS doit être valide pour la région sélectionnée.

Pour les configurations personnalisées ou les tests, les options repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port, et repo-storage-verify-tls peuvent être utiles.

example: --repo1-s3-endpoint=s3.amazonaws.com

Type de clé du dépôt S3 (--repo-s3-key-type)

Type de clé pour le dépôt S3.

Les types suivants sont pris en charge :

  • shared - Clés partagées
  • auto - Récupérer automatiquement les identifiants temporaires
  • web-id - Récupérer automatiquement les identifiants d’identité web
  • pod-id - Récupérer automatiquement les identifiants d’identité de pod EKS
  • process - Récupérer les identifiants en exécutant un processus
default: shared
example: --repo1-s3-key-type=auto

Option ID de clé KMS pour dépôt S3 (--repo-s3-kms-key-id)

Clé KMS du dépôt S3.

Active le chiffrement côté serveur S3 en utilisant la clé du service de gestion des clés AWS spécifiée.

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

Option de commande du processus d’authentification S3 (--repo-s3-process-cmd)

Commande du processus d’authentification S3.

Commande (et arguments facultatifs) à exécuter pour récupérer les identifiants temporaires S3. Le premier élément de la liste est la commande, les éléments suivants sont passés en tant que paramètres.

Le processus doit produire un JSON contenant les champs AccessKeyId, SecretAccessKey, SessionToken et Expiration. Les identifiants seront automatiquement actualisés avant l’expiration. Voir Process Credential Provider pour les détails du format.

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

Option de région du dépôt S3 (--repo-s3-region)

Région du dépôt S3.

La région AWS où le bucket a été créé.

example: --repo1-s3-region=us-east-1

Option Requesteur Payant pour le dépôt S3 (--repo-s3-requester-pays)

Dépôt S3 payeur de la demande.

Active le paiement par le demandeur S3.

default: n
example: --no-repo1-s3-requester-pays

Option de rôle du dépôt S3 (--repo-s3-role)

Rôle du dépôt S3.

Le nom du rôle AWS (pas le nom ARN complet) utilisé pour récupérer les identifiants temporaires lorsque repo-s3-key-type=auto.

example: --repo1-s3-role=authrole

Option de service de dépôt S3 (--repo-s3-service)

Service de signature S3.

Le service de signature S3 utilisé dans l’authentification SigV4. La valeur par défaut est s3 pour les points d’accès S3 standards. À définir sur s3-outposts lors de l’utilisation d’un point d’accès S3 Outposts.

default: s3
example: --repo1-s3-service=s3-outposts

Option de point de terminaison STS du dépôt S3 (--repo-s3-sts-host)

Point de terminaison STS du dépôt S3.

Point de terminaison STS utilisé pour récupérer des identifiants temporaires lorsque repo-s3-key-type=web-id est configuré. Définissez-le sur un point de terminaison régional (par exemple sts.us-east-1.amazonaws.com) pour utiliser STS régional, ce qui peut être nécessaire pour les régions GovCloud, Chine, ou pour réduire la latence.

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

Option de style d’URI de dépôt S3 (--repo-s3-uri-style)

Style d’URI S3.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte bucket.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer les URI par le répertoire.
default: host
example: --repo1-s3-uri-style=path

Option hôte du dépôt SFTP (--repo-sftp-host)

Hôte du dépôt SFTP.

Hôte SFTP contenant le dépôt.

example: --repo1-sftp-host=sftprepo.domain

Fingerprint de l’hôte du dépôt SFTP (--repo-sftp-host-fingerprint)

Empreinte du serveur hôte du dépôt SFTP.

La génération de l’empreinte d’hôte du dépôt SFTP doit correspondre à repo-sftp-host-key-hash-type. Générez l’empreinte via awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Les clés d’hôte SSH se trouvent normalement dans le répertoire /etc/ssh.

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

Type d’option de vérification de la clé hôte SFTP (--repo-sftp-host-key-check-type)

Type de vérification de la clé hôte SFTP.

Les types de vérification de clé d’hôte SFTP suivants sont pris en charge :

  • strict - pgBackRest n’ajoutera jamais automatiquement les clés d’hôte au fichier ~/.ssh/known_hosts, et refusera de se connecter aux hôtes dont la clé d’hôte a changé ou n’est pas trouvée dans les fichiers known hosts. Cette option oblige l’utilisateur à ajouter manuellement tous les nouveaux hôtes.
  • accept-new - pgBackRest ajoutera automatiquement les nouvelles clés d’hôte au fichier known hosts de l’utilisateur, mais n’autorisera pas les connexions aux hôtes dont la clé d’hôte a changé.
  • fingerprint - pgBackRest vérifiera la clé d’hôte contre l’empreinte spécifiée par l’option repo-sftp-host-fingerprint.
  • none - aucune vérification de clé d’hôte ne sera effectuée.
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

Type de hachage de la clé hôte du dépôt SFTP (--repo-sftp-host-key-hash-type)

Type de hachage de la clé d’hôte du dépôt SFTP.

Type de hachage de la clé hôte du dépôt SFTP. Déclare le type de hachage à utiliser pour calculer le hachage de la clé hôte du système distant au démarrage SSH. Les versions plus récentes de libssh2 prennent en charge sha256 en plus de md5 et sha1.

example: --repo1-sftp-host-key-hash-type=sha256

Option de port hôte du dépôt SFTP (--repo-sftp-host-port)

Port hôte du dépôt SFTP.

Port hôte du dépôt SFTP.

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

Option utilisateur hôte dépôt SFTP (--repo-sftp-host-user)

Utilisateur hôte du dépôt SFTP.

Utilisateur sur l’hôte utilisé pour stocker le dépôt.

example: --repo1-sftp-host-user=pg-backup

Option fichier Hôtes SFTP connus (--repo-sftp-known-host)

Fichier d’hôtes SFTP connus.

Fichier known hosts à consulter pour rechercher une correspondance avec un hôte SFTP lors de l’authentification. Si non spécifié, pgBackRest recherchera par défaut dans ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts et /etc/ssh/ssh_known_hosts2. Si configuré avec un ou plusieurs chemins de fichier, pgBackRest recherchera dans ces fichiers une correspondance. Les chemins de fichier doivent être complets ou commencer par un tilde. L’option repo-sftp-known-host peut être spécifiée plusieurs fois pour indiquer plusieurs fichiers known hosts à consulter. Pour utiliser la vérification du fichier known hosts, l’option repo-sftp-host-fingerprint ne doit pas être définie. Voir également l’option repo-sftp-host-check-type.

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

Option fichier de clé privée du dépôt SFTP (--repo-sftp-private-key-file)

Fichier de clé privée SFTP.

Fichier de clé privée SFTP utilisé pour l’authentification.

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

Option de fichier de clé publique du dépôt SFTP (--repo-sftp-public-key-file)

Fichier de clé publique SFTP.

Fichier de clé publique SFTP utilisé pour l’authentification. Facultatif si compilé contre OpenSSL, obligatoire si compilé contre une autre bibliothèque.

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

Option du fichier CA du dépôt de stockage (--repo-storage-ca-file)

Fichier de certificat d’autorité de certification pour le dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Noms obsolètes : repo-azure-ca-file, repo-s3-ca-file

Option de chemin du certificat CA TLS pour le dépôt (--repo-storage-ca-path)

Chemin du certificat d’autorité de certification du dépôt.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-path=/etc/pki/tls/certs

Noms obsolètes : repo-azure-ca-path, repo-s3-ca-path

Option hôte de stockage du dépôt (--repo-storage-host)

Hôte de stockage du dépôt.

Se connecter à un hôte autre que le point de terminaison de stockage (par exemple S3, Azure). Cela est généralement utilisé pour les tests.

example: --repo1-storage-host=127.0.0.1

Noms obsolètes : repo-azure-host, repo-s3-host

Option de port du stockage du dépôt (--repo-storage-port)

Port du stockage du dépôt.

Port à utiliser lors de la connexion au point de terminaison du stockage (par exemple S3, Azure) ou à l’hôte (le cas échéant).

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

Noms obsolètes : repo-azure-port, repo-s3-port

Option d’étiquette de stockage du dépôt (--repo-storage-tag)

Étiquette(s) de stockage du dépôt.

Spécifiez les balises à ajouter aux objets lorsque le dépôt est un magasin d’objets (par exemple, S3). L’option peut être répétée pour ajouter plusieurs balises.

Il n’existe aucune fonctionnalité dans pgBackRest permettant de modifier ces balises ; veillez donc à les définir correctement avant d’exécuter stanza-create afin d’assurer une cohérence des balises dans l’ensemble du dépôt.

example: --repo1-storage-tag=key1=value1

Option de taille de morceau de chargement du dépôt (--repo-storage-upload-chunk-size)

Taille du morceau de chargement du dépôt.

Les magasins d’objets tels que S3 permettent de télécharger des fichiers par morceaux lorsque le fichier est trop volumineux pour être stocké en mémoire. Même si le fichier peut être stocké en mémoire, il est plus efficace en mémoire de limiter la quantité de mémoire utilisée pour les téléchargements.

Une taille de morceau plus élevée entraîne généralement de meilleures performances, car elle réduit le nombre de requêtes de téléchargement et permet de télécharger plus de fichiers en une seule requête plutôt qu’en morceaux. Le désavantage est que la consommation mémoire sera plus élevée, et comme la mémoire tampon de morceau doit être allouée par processus, des valeurs plus élevées de process-max entraînent une consommation mémoire globale plus importante.

Notez que les tailles de morceau valides varient selon le type de stockage et la plateforme. Par exemple, AWS S3 impose une taille minimale de morceau de 5MiB. La terminologie relative à la taille du morceau varie selon le type de stockage ; utilisez donc « part size » pour AWS S3, « chunk size » pour GCS et « block size » pour Azure lorsque vous recherchez les valeurs minimales ou maximales.

Si un fichier est plus grand que 1GiB (la taille maximale que PostgreSQL crée par défaut), la taille de tranche sera augmentée progressivement jusqu’à la valeur maximale autorisée afin de terminer le téléchargement du fichier.

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

Option de vérification du certificat de stockage du dépôt (--repo-storage-verify-tls)

Vérification du certificat du dépôt de stockage.

Cette option permet d’activer/désactiver la vérification du certificat TLS du serveur de stockage (par exemple, S3, Azure). La désactivation ne doit être utilisée que pour des tests ou d’autres scénarios où un certificat a été auto-signé.

default: y
example: --no-repo1-storage-verify-tls

Noms obsolètes : repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

Heure cible pour l’option dépôt (--repo-target-time)

Heure cible pour le dépôt.

Le temps cible définit l’instant auquel les commandes lisent un dépôt sur un stockage versionné. Cela permet à la commande de lire le dépôt tel qu’il était à un instant donné, afin de récupérer des données supprimées ou corrompues par une erreur utilisateur ou un logiciel malveillant.

Le stockage versionné est pris en charge par S3, GCS et Azure, mais il est généralement désactivé par défaut. En plus d’activer la versioning, il peut être utile d’activer le verrouillage d’objets pour S3, ou la suppression progressive pour GCS ou Azure.

Lorsque l’option repo-target-time est spécifiée, l’option repo doit également être fournie. Il est probable que tous les types de dépôt ne prennent pas en charge la versionning, et il est généralement préférable de cibler un seul dépôt pour la récupération.

Notez que les comparaisons avec l’horodatage de stockage sont <= à l’horodatage fourni et que les millisecondes sont tronquées de l’horodatage lorsqu’elles sont fournies.

example: --repo-target-time=2024-08-08 12:12:12+00

Option de type de dépôt (--repo-type)

Type de stockage utilisé pour le dépôt.

Les types de dépôt suivants sont pris en charge :

  • azure - Service de stockage Blob Azure
  • cifs - Comme posix, mais désactive les liens et les fsyncs de répertoire
  • gcs - Google Cloud Storage
  • posix - Systèmes de fichiers conformes à Posix
  • s3 - AWS Simple Storage Service
  • sftp - Protocole de transfert de fichiers sécurisé

Lorsqu’un montage NFS est utilisé comme dépôt posix, les mêmes règles s’appliquent à pgBackRest qu’indiquées dans la documentation PostgreSQL : Création d’un cluster de base de données - Systèmes de fichiers .

default: posix
example: --repo1-type=cifs

Options de stanza

Option Chemin PostgreSQL (--pg-path)

Répertoire de données PostgreSQL.

Il doit être identique à la valeur data_directory rapportée par PostgreSQL. Même si cette valeur peut être lue à divers endroits, il est prudent de la définir afin de garantir sa disponibilité en cas de restauration ou de sauvegarde hors ligne.

L’option pg-path est vérifiée par rapport à la valeur rapportée par PostgreSQL à chaque sauvegarde en ligne, elle doit donc toujours être à jour.

example: --pg1-path=/data/db

Nom obsolète : db-path

4.12 - Commande serveur (server)

Référence des options et du comportement de la commande pgBackRest server.

Le serveur pgBackRest permet d’accéder aux hôtes distants sans utiliser le protocole SSH.

Options de commande

Option d’adresse serveur TLS (--tls-server-address)

Adresse du serveur TLS.

Adresse IP sur laquelle le serveur écoute les requêtes clients.

default: localhost
example: --tls-server-address=*

Option Clients autorisés du serveur TLS (--tls-server-auth)

Clients autorisés du serveur TLS.

Les clients sont autorisés sur le serveur en vérifiant leur certificat et en comparant leur CN (Nom commun) au moyen d’une liste configurée sur le serveur via l’option tls-server-auth.

Un client CN peut être autorisé pour autant de stanzas que nécessaire en fournissant une liste séparée par des virgules à l’option tls-server-auth ou pour toutes les stanzas en spécifiant tls-server-auth=client-cn=*. Les caractères génériques ne peuvent pas être utilisés pour le CN du client.

example: --tls-server-auth=client-cn=stanza1,stanza2

Option Autorités de certification du serveur TLS (--tls-server-ca-file)

Autorités de certification du certificat serveur TLS.

Vérifie que les certificats client sont signés par une autorité de certification de confiance.

example: --tls-server-ca-file=/path/to/server.ca

Option de certificat serveur TLS (--tls-server-cert-file)

Fichier de certificat serveur TLS.

Envoyé au client pour indiquer l’identité du serveur.

example: --tls-server-cert-file=/path/to/server.crt

Option de clé de serveur TLS (--tls-server-key-file)

Fichier de clé du serveur TLS.

Vérifie que le certificat serveur a été envoyé par son propriétaire.

example: --tls-server-key-file=/path/to/server.key

Option de port serveur TLS (--tls-server-port)

Port du serveur TLS.

Port sur lequel le serveur écoute les requêtes clients.

default: 8432
allowed: [1, 65535]
example: --tls-server-port=8000

Options générales

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: n
example: --allow-root

Option Taille tampon (--buffer-size)

Taille du tampon pour les opérations d’E/S.

Taille de tampon utilisée pour les opérations de copie, de compression, de chiffrement et autres. Le nombre de tampons utilisés dépend des options, et chaque opération peut utiliser une mémoire supplémentaire, par exemple, la compression gz peut utiliser jusqu’à 256KiB de mémoire supplémentaire.

Les valeurs autorisées sont 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB et 16MiB.

default: 1MiB
example: --buffer-size=2MiB

Option de configuration (--config)

Fichier de configuration pgBackRest.

Utilisez cette option pour spécifier un fichier de configuration différent du fichier par défaut.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

Option Chemin d’inclusion de configuration (--config-include-path)

Chemin vers les fichiers de configuration supplémentaires de pgBackRest.

Les fichiers de configuration se trouvant dans l’emplacement spécifié et ayant l’extension .conf seront concaténés au fichier de configuration de pgBackRest, ce qui donne un seul fichier de configuration.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration (--config-path)

Chemin de base des fichiers de configuration de pgBackRest.

Ce paramètre est utilisé pour remplacer le chemin de base par défaut pour les options --config et --config-include-path, sauf si ces dernières sont explicitement définies en ligne de commande.

Par exemple, passer uniquement --config-path=/conf/pgbackrest fait que la valeur par défaut de --config est définie à /conf/pgbackrest/pgbackrest.conf et que la valeur par défaut de --config-include-path est définie à /conf/pgbackrest/conf.d.

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

Option d’expiration I/O (--io-timeout)

Délai d’attente d’E/S dépassé.

Délai d’attente, en secondes, utilisé pour les connexions et les opérations de lecture/écriture.

Notez que l’opération de lecture/écriture entière n’a pas besoin de se terminer dans ce délai d’attente, mais une certaine progression doit être réalisée, même si elle ne concerne qu’un seul octet.

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: --priority=19

Option délai d’attente du protocole (--protocol-timeout)

Délai d’attente du protocole.

Définit le délai d’attente, en secondes, durant lequel le processus local ou distant attend qu’un nouveau message soit reçu au niveau du protocole. Cela empêche les processus de rester bloqués indéfiniment en attente d’un message.

NOTE : L’option protocol-timeout doit être supérieure à l’option db-timeout.

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

Option Keep Alive (--sck-keep-alive)

Activation du keep-alive.

Active les messages keep-alive sur les connexions socket.

default: y
example: --no-sck-keep-alive

Option de nombre de connexions Keep Alive (--tcp-keep-alive-count)

Nombre de maintien de connexion.

Spécifie le nombre de messages TCP keep-alive pouvant être perdus avant que la connexion ne soit considérée comme inactive.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPCNT.

allowed: [1, 32]
example: --tcp-keep-alive-count=3

Option d’idle Keep Alive (--tcp-keep-alive-idle)

Délai d’inactivité pour la maintien de la connexion.

Spécifie la durée (en secondes) pendant laquelle aucune activité réseau ne se produit, après laquelle le système d’exploitation doit envoyer un message de maintien de connexion TCP.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPIDLE.

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

Option Intervalle Keep Alive (--tcp-keep-alive-interval)

Intervalle de temps pour la maintien de la connexion active.

Spécifie la durée (en secondes) après laquelle un message TCP keep-alive non reconnu doit être renvoyé.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPINTVL.

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

Suites de chiffrement TLSv1.2 Option (--tls-cipher-12)

Suites de chiffrement TLSv1.2 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. L’exemple proposé constitue un choix raisonnable sauf si des exigences de sécurité spécifiques s’appliquent. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

Suites de chiffrement TLSv1.3 Option (--tls-cipher-13)

Suites de chiffrement TLSv1.3 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Options de journalisation

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: --log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: --log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: --log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: --no-log-timestamp

4.13 - Commande de ping serveur (server-ping)

Référence des options et du comportement de la commande pgBackRest server-ping.

Pongez un serveur TLS pgBackRest pour vérifier qu’il accepte les connexions. Cette opération ne sert qu’à vérifier la disponibilité, car aucune authentification n’est tentée.

Si aucun hôte n’est spécifié en ligne de commande, l’option tls-server-host sera utilisée.

Options de commande

Option d’adresse serveur TLS (--tls-server-address)

Adresse du serveur TLS.

Adresse IP sur laquelle le serveur écoute les requêtes clients.

default: localhost
example: --tls-server-address=*

Option de port serveur TLS (--tls-server-port)

Port du serveur TLS.

Port sur lequel le serveur écoute les requêtes clients.

default: 8432
allowed: [1, 65535]
example: --tls-server-port=8000

Options générales

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: n
example: --allow-root

Option Taille tampon (--buffer-size)

Taille du tampon pour les opérations d’E/S.

Taille de tampon utilisée pour les opérations de copie, de compression, de chiffrement et autres. Le nombre de tampons utilisés dépend des options, et chaque opération peut utiliser une mémoire supplémentaire, par exemple, la compression gz peut utiliser jusqu’à 256KiB de mémoire supplémentaire.

Les valeurs autorisées sont 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB et 16MiB.

default: 1MiB
example: --buffer-size=2MiB

Option de configuration (--config)

Fichier de configuration pgBackRest.

Utilisez cette option pour spécifier un fichier de configuration différent du fichier par défaut.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

Option Chemin d’inclusion de configuration (--config-include-path)

Chemin vers les fichiers de configuration supplémentaires de pgBackRest.

Les fichiers de configuration se trouvant dans l’emplacement spécifié et ayant l’extension .conf seront concaténés au fichier de configuration de pgBackRest, ce qui donne un seul fichier de configuration.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration (--config-path)

Chemin de base des fichiers de configuration de pgBackRest.

Ce paramètre est utilisé pour remplacer le chemin de base par défaut pour les options --config et --config-include-path, sauf si ces dernières sont explicitement définies en ligne de commande.

Par exemple, passer uniquement --config-path=/conf/pgbackrest fait que la valeur par défaut de --config est définie à /conf/pgbackrest/pgbackrest.conf et que la valeur par défaut de --config-include-path est définie à /conf/pgbackrest/conf.d.

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

Option d’expiration I/O (--io-timeout)

Délai d’attente d’E/S dépassé.

Délai d’attente, en secondes, utilisé pour les connexions et les opérations de lecture/écriture.

Notez que l’opération de lecture/écriture entière n’a pas besoin de se terminer dans ce délai d’attente, mais une certaine progression doit être réalisée, même si elle ne concerne qu’un seul octet.

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: --priority=19

Option Keep Alive (--sck-keep-alive)

Activation du keep-alive.

Active les messages keep-alive sur les connexions socket.

default: y
example: --no-sck-keep-alive

Option de nombre de connexions Keep Alive (--tcp-keep-alive-count)

Nombre de maintien de connexion.

Spécifie le nombre de messages TCP keep-alive pouvant être perdus avant que la connexion ne soit considérée comme inactive.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPCNT.

allowed: [1, 32]
example: --tcp-keep-alive-count=3

Option d’idle Keep Alive (--tcp-keep-alive-idle)

Délai d’inactivité pour la maintien de la connexion.

Spécifie la durée (en secondes) pendant laquelle aucune activité réseau ne se produit, après laquelle le système d’exploitation doit envoyer un message de maintien de connexion TCP.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPIDLE.

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

Option Intervalle Keep Alive (--tcp-keep-alive-interval)

Intervalle de temps pour la maintien de la connexion active.

Spécifie la durée (en secondes) après laquelle un message TCP keep-alive non reconnu doit être renvoyé.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPINTVL.

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

Suites de chiffrement TLSv1.2 Option (--tls-cipher-12)

Suites de chiffrement TLSv1.2 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. L’exemple proposé constitue un choix raisonnable sauf si des exigences de sécurité spécifiques s’appliquent. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

Suites de chiffrement TLSv1.3 Option (--tls-cipher-13)

Suites de chiffrement TLSv1.3 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Options de journalisation

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: --log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: --log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: --log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: --no-log-timestamp

4.14 - Commande de création de stanza (stanza-create)

Référence des options et du comportement de la commande pgBackRest stanza-create.

La commande stanza-create doit être exécutée après la configuration du stanza dans pgbackrest.conf. Si plusieurs dépôts sont configurés, le stanza sera créé sur chacun d’eux. Les stanzas déjà créés seront ignorés, ce qui rend toujours sûr l’exécution de stanza-create, même après la configuration d’un nouveau dépôt.

Consultez Créer une stanza pour plus d’informations et un exemple.

Options de commande

Option en ligne (--online)

Créez sur un cluster en ligne.

Spécifier –no-online empêche pgBackRest de se connecter à PostgreSQL lors de la création de la stanza.

default: y
example: --no-online

Options générales

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: n
example: --allow-root

Option Taille tampon (--buffer-size)

Taille du tampon pour les opérations d’E/S.

Taille de tampon utilisée pour les opérations de copie, de compression, de chiffrement et autres. Le nombre de tampons utilisés dépend des options, et chaque opération peut utiliser une mémoire supplémentaire, par exemple, la compression gz peut utiliser jusqu’à 256KiB de mémoire supplémentaire.

Les valeurs autorisées sont 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB et 16MiB.

default: 1MiB
example: --buffer-size=2MiB

Option de commande client SSH (--cmd-ssh)

Commande cliente SSH.

Utilisez une commande cliente SSH spécifique lorsque vous souhaitez utiliser une alternative ou que la commande ssh n’est pas disponible dans $PATH.

default: ssh
example: --cmd-ssh=/usr/bin/ssh

Option niveau de compression réseau (--compress-level-network)

Niveau de compression du réseau.

Définit le niveau de compression réseau lorsque compress-type=none et la commande ne sont pas exécutées sur le même hôte que le dépôt. La compression est utilisée pour réduire le trafic réseau. Lorsque compress-type est différent de none, le paramètre compress-level-network est ignoré et compress-level est utilisé à la place, afin que le fichier ne soit compressé qu’une seule fois.

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

Option de configuration (--config)

Fichier de configuration pgBackRest.

Utilisez cette option pour spécifier un fichier de configuration différent du fichier par défaut.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

Option Chemin d’inclusion de configuration (--config-include-path)

Chemin vers les fichiers de configuration supplémentaires de pgBackRest.

Les fichiers de configuration se trouvant dans l’emplacement spécifié et ayant l’extension .conf seront concaténés au fichier de configuration de pgBackRest, ce qui donne un seul fichier de configuration.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration (--config-path)

Chemin de base des fichiers de configuration de pgBackRest.

Ce paramètre est utilisé pour remplacer le chemin de base par défaut pour les options --config et --config-include-path, sauf si ces dernières sont explicitement définies en ligne de commande.

Par exemple, passer uniquement --config-path=/conf/pgbackrest fait que la valeur par défaut de --config est définie à /conf/pgbackrest/pgbackrest.conf et que la valeur par défaut de --config-include-path est définie à /conf/pgbackrest/conf.d.

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

Option de délai d’attente de la base de données (--db-timeout)

Délai d’attente dépassé pour la requête de base de données.

Définit le délai d’attente, en secondes, des requêtes effectuées contre la base de données. Cela inclut les fonctions de démarrage et d’arrêt de la sauvegarde, qui peuvent chacune prendre beaucoup de temps. En raison de cela, le délai d’attente doit être maintenu élevé, sauf si vous savez que ces fonctions retourneront rapidement (par exemple, si vous avez défini start-fast=y et que vous savez que le cluster de base de données ne générera pas beaucoup de segments WAL pendant la sauvegarde).

NOTE : L’option db-timeout doit être inférieure à l’option protocol-timeout.

default: 30m
allowed: [100ms, 7d]
example: --db-timeout=600

Option d’expiration I/O (--io-timeout)

Délai d’attente d’E/S dépassé.

Délai d’attente, en secondes, utilisé pour les connexions et les opérations de lecture/écriture.

Notez que l’opération de lecture/écriture entière n’a pas besoin de se terminer dans ce délai d’attente, mais une certaine progression doit être réalisée, même si elle ne concerne qu’un seul octet.

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

Option Chemin verrou (--lock-path)

Chemin où les fichiers verrou sont stockés.

Le chemin de verrouillage fournit un emplacement où pgBackRest peut créer des fichiers de verrouillage afin d’empêcher l’exécution simultanée d’opérations en conflit.

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

Option de masque neutre (--neutral-umask)

Utilisez un umask neutre.

Définit le umask à 0000 afin que les modes du dépôt soient créés de manière cohérente. Le mode par défaut du répertoire est 0750 et le mode par défaut du fichier est 0640.

Pour utiliser le umask de l’utilisateur en cours, spécifiez neutral-umask=n dans le fichier de configuration ou --no-neutral-umask en ligne de commande.

default: y
example: --no-neutral-umask

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: --priority=19

Option délai d’attente du protocole (--protocol-timeout)

Délai d’attente du protocole.

Définit le délai d’attente, en secondes, durant lequel le processus local ou distant attend qu’un nouveau message soit reçu au niveau du protocole. Cela empêche les processus de rester bloqués indéfiniment en attente d’un message.

NOTE : L’option protocol-timeout doit être supérieure à l’option db-timeout.

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

Option Keep Alive (--sck-keep-alive)

Activation du keep-alive.

Active les messages keep-alive sur les connexions socket.

default: y
example: --no-sck-keep-alive

Option stanza (--stanza)

Définit la stanza.

Une stanza est la configuration d’un cluster de base de données PostgreSQL qui définit son emplacement, la manière dont il sera sauvegardé, les options d’archivage, etc. La plupart des serveurs de base de données n’ont qu’un seul cluster PostgreSQL et donc une seule stanza, tandis que les serveurs de sauvegarde ont une stanza pour chaque cluster de base de données à sauvegarder.

Il est tentant de nommer la stanza en fonction du cluster principal, mais un nom plus pertinent décrit les bases de données contenues dans le cluster. Étant donné que le nom de la stanza sera utilisé pour le principal et toutes les répliques, il est préférable de choisir un nom qui décrit la fonction réelle du cluster, par exemple app ou dw, plutôt que le nom local du cluster, comme main ou prod.

example: --stanza=main

Option de nombre de connexions Keep Alive (--tcp-keep-alive-count)

Nombre de maintien de connexion.

Spécifie le nombre de messages TCP keep-alive pouvant être perdus avant que la connexion ne soit considérée comme inactive.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPCNT.

allowed: [1, 32]
example: --tcp-keep-alive-count=3

Option d’idle Keep Alive (--tcp-keep-alive-idle)

Délai d’inactivité pour la maintien de la connexion.

Spécifie la durée (en secondes) pendant laquelle aucune activité réseau ne se produit, après laquelle le système d’exploitation doit envoyer un message de maintien de connexion TCP.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPIDLE.

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

Option Intervalle Keep Alive (--tcp-keep-alive-interval)

Intervalle de temps pour la maintien de la connexion active.

Spécifie la durée (en secondes) après laquelle un message TCP keep-alive non reconnu doit être renvoyé.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPINTVL.

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

Suites de chiffrement TLSv1.2 Option (--tls-cipher-12)

Suites de chiffrement TLSv1.2 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. L’exemple proposé constitue un choix raisonnable sauf si des exigences de sécurité spécifiques s’appliquent. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

Suites de chiffrement TLSv1.3 Option (--tls-cipher-13)

Suites de chiffrement TLSv1.3 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Options de journalisation

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: --log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: --log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: --log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

Option de journalisation des sous-processus (--log-subprocess)

Activer la journalisation dans les sous-processus.

Activez la journalisation des fichiers pour tout sous-processus créé par ce processus, en utilisant le niveau de journalisation spécifié par log-level-file.

default: n
example: --log-subprocess

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: --no-log-timestamp

Options du mainteneur

Option de version PostgreSQL obligatoire (--pg-version-force)

Forcer la version de PostgreSQL.

La version de PostgreSQL spécifiée sera utilisée à la place de la version détectée automatiquement en lisant pg_control ou les en-têtes WAL. Cela est principalement utile pour les forks de PostgreSQL ou les versions de développement où ces valeurs diffèrent de la version de publication. La version rapportée par PostgreSQL via server_version_num doit correspondre à la version forcée.

AVERTISSEMENT :

Faites preuve de prudence en utilisant cette option, car pg_control et les en-têtes WAL seront toujours lus selon le format attendu pour la version spécifiée, c’est-à-dire le format issu de la version open-source officielle de PostgreSQL. Si la version fork ou développée modifie le format des champs sur lesquels pgBackRest dépend, cela entraînera un comportement imprévu. En général, cette option ne fonctionnera correctement que si le fork ajoute tous les membres de structure personnalisés après les membres standard de PostgreSQL.

example: --pg-version-force=15

Options du dépôt

Option de conteneur de dépôt Azure (--repo-azure-container)

Conteneur de dépôt Azure.

Conteneur Azure utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés dans la racine du conteneur en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par Azure dans le conteneur.

example: --repo1-azure-container=pg-backup

Type de clé du dépôt Azure (--repo-azure-key-type)

Type de clé du dépôt Azure.

Les types suivants sont pris en charge pour l’autorisation :

  • shared - Clé partagée
  • sas - Signature d’accès partagé
  • auto - Autorisation automatique à l’aide d’identités managées Azure
default: shared
example: --repo1-azure-key-type=sas

Option de style d’URI de dépôt Azure (--repo-azure-uri-style)

Style URI Azure.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte account.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer le compte aux URI.
default: host
example: --repo1-azure-uri-style=path

Type de chiffrement du dépôt (--repo-cipher-type)

Chiffrement utilisé pour chiffrer le dépôt.

Les types de chiffrement suivants sont pris en charge :

  • none - Le dépôt n’est pas chiffré
  • aes-256-cbc - Advanced Encryption Standard avec une longueur de clé de 256 bits

Notez que le chiffrement est toujours effectué côté client, même si le type de dépôt (par exemple S3) prend en charge le chiffrement.

default: none
example: --repo1-cipher-type=aes-256-cbc

Option de bac de dépôt GCS (--repo-gcs-bucket)

Dépôt de bucket GCS.

Dépôt GCS utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par GCS dans le bucket.

example: --repo1-gcs-bucket=/pg-backup

Option de point de terminaison du dépôt GCS (--repo-gcs-endpoint)

Point de terminaison du dépôt GCS.

Point d’accès utilisé pour se connecter au service de stockage. Peut être mis à jour pour utiliser un serveur local GCS ou un point d’accès alternatif.

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

Type de clé du dépôt GCS (--repo-gcs-key-type)

Type de clé du dépôt GCS.

Les types suivants sont pris en charge pour l’autorisation :

  • auto - Autoriser à l’aide du compte de service de l’instance.
  • service - Compte de service à partir d’une clé stockée localement.
  • token - À utiliser pour les tests locaux, par exemple fakegcs.

Lorsque repo-gcs-key-type=service, les identifiants seront rechargés lorsque le jeton d’authentification sera renouvelé.

default: service
example: --repo1-gcs-key-type=auto

Option ID du projet du dépôt GCS (--repo-gcs-user-project)

Identifiant du projet GCS.

ID du projet GCS utilisé pour déterminer la facturation des requêtes.

example: --repo1-gcs-user-project=my-project

Option hôte du dépôt (--repo-host)

Hôte du dépôt lors de l’opération à distance.

Lors de la sauvegarde et de l’archivage vers un système de fichiers monté localement, ce paramètre n’est pas requis.

example: --repo1-host=repo1.domain.com

Nom obsolète : backup-host

Option du fichier de l’autorité de certification hôte du dépôt (--repo-host-ca-file)

Fichier de l’autorité de certification du serveur de dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte du dépôt.

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’autorité de certification du dépôt (--repo-host-ca-path)

Chemin de l’autorité de certification du serveur de dépôt.

Utilisez un chemin de certificat d’autorité (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte du dépôt.

example: --repo1-host-ca-path=/etc/pki/tls/certs

Option de fichier de certificat d’hôte du dépôt (--repo-host-cert-file)

Fichier de certificat d’hôte du dépôt.

Envoyé à l’hôte du dépôt pour prouver l’identité du client.

example: --repo1-host-cert-file=/path/to/client.crt

Option de commande hôte du dépôt (--repo-host-cmd)

Hôte du dépôt commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes local et de dépôt. Si non défini, la commande de dépôt sera définie de la même manière que celle de l’hôte local.

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : backup-cmd

Option de configuration de l’hôte du dépôt (--repo-host-config)

Fichier de configuration du serveur de dépôt pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le fichier de configuration de l’hôte du dépôt se trouve dans un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : sauvegarde-config

Option de chemin d’inclusion de configuration d’hôte de dépôt (--repo-host-config-include-path)

Configuration du serveur de dépôt pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration de l’hôte du dépôt est différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

Chemin de configuration de l’hôte du dépôt (--repo-host-config-path)

Chemin de configuration du serveur de dépôt pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin de configuration de l’hôte du dépôt est différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

Option de fichier de clé hôte du dépôt (--repo-host-key-file)

Fichier de clé hôte du dépôt.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --repo1-host-key-file=/path/to/client.key

Option de port hôte du dépôt (--repo-host-port)

Port de l’hôte du dépôt lorsque repo-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole du serveur du dépôt.

NOTE : Lorsque repo-host-type=ssh, il n’existe pas de valeur par défaut pour repo-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

Nom obsolète : backup-ssh-port

Type de protocole d’hôte de dépôt (--repo-host-type)

Type de protocole d’hôte de dépôt.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --repo1-host-type=tls

Option d’utilisateur hôte de dépôt (--repo-host-user)

Utilisateur hôte du dépôt lorsque repo-host est défini.

Définit l’utilisateur utilisé pour les opérations sur l’hôte du dépôt. Il est préférable que ce ne soit pas l’utilisateur postgres, mais plutôt un autre utilisateur tel que pgbackrest. Si PostgreSQL s’exécute sur l’hôte du dépôt, l’utilisateur postgres peut être ajouté au groupe pgbackrest afin d’avoir des permissions de lecture sur le dépôt sans pouvoir accidentellement le modifier.

default: pgbackrest
example: --repo1-host-user=repo-user

Nom obsolète : backup-user

Option Chemin du dépôt (--repo-path)

Chemin où les sauvegardes et l’archive sont stockées.

Le dépôt est l’emplacement où pgBackRest stocke les sauvegardes et les archives des segments WAL.

Il peut être difficile de prévoir à l’avance l’espace nécessaire. La meilleure approche consiste à effectuer quelques sauvegardes, puis à noter la taille des différents types de sauvegardes (pleines, incrémentielles, différentielles) et à mesurer la quantité de WAL générée par jour. Cela vous donnera une idée générale de l’espace requis, bien que les besoins évoluent probablement au fil du temps avec l’évolution de votre base de données.

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

Option de bac de dépôt S3 (--repo-s3-bucket)

Dépôt S3.

Dépôt S3 utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par AWS dans le bucket.

example: --repo1-s3-bucket=pg-backup

Option de point de terminaison du dépôt S3 (--repo-s3-endpoint)

Point de terminaison du dépôt S3.

Le point de terminaison AWS doit être valide pour la région sélectionnée.

Pour les configurations personnalisées ou les tests, les options repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port, et repo-storage-verify-tls peuvent être utiles.

example: --repo1-s3-endpoint=s3.amazonaws.com

Type de clé du dépôt S3 (--repo-s3-key-type)

Type de clé pour le dépôt S3.

Les types suivants sont pris en charge :

  • shared - Clés partagées
  • auto - Récupérer automatiquement les identifiants temporaires
  • web-id - Récupérer automatiquement les identifiants d’identité web
  • pod-id - Récupérer automatiquement les identifiants d’identité de pod EKS
  • process - Récupérer les identifiants en exécutant un processus
default: shared
example: --repo1-s3-key-type=auto

Option ID de clé KMS pour dépôt S3 (--repo-s3-kms-key-id)

Clé KMS du dépôt S3.

Active le chiffrement côté serveur S3 en utilisant la clé du service de gestion des clés AWS spécifiée.

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

Option de commande du processus d’authentification S3 (--repo-s3-process-cmd)

Commande du processus d’authentification S3.

Commande (et arguments facultatifs) à exécuter pour récupérer les identifiants temporaires S3. Le premier élément de la liste est la commande, les éléments suivants sont passés en tant que paramètres.

Le processus doit produire un JSON contenant les champs AccessKeyId, SecretAccessKey, SessionToken et Expiration. Les identifiants seront automatiquement actualisés avant l’expiration. Voir Process Credential Provider pour les détails du format.

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

Option de région du dépôt S3 (--repo-s3-region)

Région du dépôt S3.

La région AWS où le bucket a été créé.

example: --repo1-s3-region=us-east-1

Option Requesteur Payant pour le dépôt S3 (--repo-s3-requester-pays)

Dépôt S3 payeur de la demande.

Active le paiement par le demandeur S3.

default: n
example: --no-repo1-s3-requester-pays

Option de rôle du dépôt S3 (--repo-s3-role)

Rôle du dépôt S3.

Le nom du rôle AWS (pas le nom ARN complet) utilisé pour récupérer les identifiants temporaires lorsque repo-s3-key-type=auto.

example: --repo1-s3-role=authrole

Option de service de dépôt S3 (--repo-s3-service)

Service de signature S3.

Le service de signature S3 utilisé dans l’authentification SigV4. La valeur par défaut est s3 pour les points d’accès S3 standards. À définir sur s3-outposts lors de l’utilisation d’un point d’accès S3 Outposts.

default: s3
example: --repo1-s3-service=s3-outposts

Option de point de terminaison STS du dépôt S3 (--repo-s3-sts-host)

Point de terminaison STS du dépôt S3.

Point de terminaison STS utilisé pour récupérer des identifiants temporaires lorsque repo-s3-key-type=web-id est configuré. Définissez-le sur un point de terminaison régional (par exemple sts.us-east-1.amazonaws.com) pour utiliser STS régional, ce qui peut être nécessaire pour les régions GovCloud, Chine, ou pour réduire la latence.

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

Option de style d’URI de dépôt S3 (--repo-s3-uri-style)

Style d’URI S3.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte bucket.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer les URI par le répertoire.
default: host
example: --repo1-s3-uri-style=path

Option hôte du dépôt SFTP (--repo-sftp-host)

Hôte du dépôt SFTP.

Hôte SFTP contenant le dépôt.

example: --repo1-sftp-host=sftprepo.domain

Fingerprint de l’hôte du dépôt SFTP (--repo-sftp-host-fingerprint)

Empreinte du serveur hôte du dépôt SFTP.

La génération de l’empreinte d’hôte du dépôt SFTP doit correspondre à repo-sftp-host-key-hash-type. Générez l’empreinte via awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Les clés d’hôte SSH se trouvent normalement dans le répertoire /etc/ssh.

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

Type d’option de vérification de la clé hôte SFTP (--repo-sftp-host-key-check-type)

Type de vérification de la clé hôte SFTP.

Les types de vérification de clé d’hôte SFTP suivants sont pris en charge :

  • strict - pgBackRest n’ajoutera jamais automatiquement les clés d’hôte au fichier ~/.ssh/known_hosts, et refusera de se connecter aux hôtes dont la clé d’hôte a changé ou n’est pas trouvée dans les fichiers known hosts. Cette option oblige l’utilisateur à ajouter manuellement tous les nouveaux hôtes.
  • accept-new - pgBackRest ajoutera automatiquement les nouvelles clés d’hôte au fichier known hosts de l’utilisateur, mais n’autorisera pas les connexions aux hôtes dont la clé d’hôte a changé.
  • fingerprint - pgBackRest vérifiera la clé d’hôte contre l’empreinte spécifiée par l’option repo-sftp-host-fingerprint.
  • none - aucune vérification de clé d’hôte ne sera effectuée.
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

Type de hachage de la clé hôte du dépôt SFTP (--repo-sftp-host-key-hash-type)

Type de hachage de la clé d’hôte du dépôt SFTP.

Type de hachage de la clé hôte du dépôt SFTP. Déclare le type de hachage à utiliser pour calculer le hachage de la clé hôte du système distant au démarrage SSH. Les versions plus récentes de libssh2 prennent en charge sha256 en plus de md5 et sha1.

example: --repo1-sftp-host-key-hash-type=sha256

Option de port hôte du dépôt SFTP (--repo-sftp-host-port)

Port hôte du dépôt SFTP.

Port hôte du dépôt SFTP.

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

Option utilisateur hôte dépôt SFTP (--repo-sftp-host-user)

Utilisateur hôte du dépôt SFTP.

Utilisateur sur l’hôte utilisé pour stocker le dépôt.

example: --repo1-sftp-host-user=pg-backup

Option fichier Hôtes SFTP connus (--repo-sftp-known-host)

Fichier d’hôtes SFTP connus.

Fichier known hosts à consulter pour rechercher une correspondance avec un hôte SFTP lors de l’authentification. Si non spécifié, pgBackRest recherchera par défaut dans ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts et /etc/ssh/ssh_known_hosts2. Si configuré avec un ou plusieurs chemins de fichier, pgBackRest recherchera dans ces fichiers une correspondance. Les chemins de fichier doivent être complets ou commencer par un tilde. L’option repo-sftp-known-host peut être spécifiée plusieurs fois pour indiquer plusieurs fichiers known hosts à consulter. Pour utiliser la vérification du fichier known hosts, l’option repo-sftp-host-fingerprint ne doit pas être définie. Voir également l’option repo-sftp-host-check-type.

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

Option fichier de clé privée du dépôt SFTP (--repo-sftp-private-key-file)

Fichier de clé privée SFTP.

Fichier de clé privée SFTP utilisé pour l’authentification.

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

Option de fichier de clé publique du dépôt SFTP (--repo-sftp-public-key-file)

Fichier de clé publique SFTP.

Fichier de clé publique SFTP utilisé pour l’authentification. Facultatif si compilé contre OpenSSL, obligatoire si compilé contre une autre bibliothèque.

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

Option du fichier CA du dépôt de stockage (--repo-storage-ca-file)

Fichier de certificat d’autorité de certification pour le dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Noms obsolètes : repo-azure-ca-file, repo-s3-ca-file

Option de chemin du certificat CA TLS pour le dépôt (--repo-storage-ca-path)

Chemin du certificat d’autorité de certification du dépôt.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-path=/etc/pki/tls/certs

Noms obsolètes : repo-azure-ca-path, repo-s3-ca-path

Option hôte de stockage du dépôt (--repo-storage-host)

Hôte de stockage du dépôt.

Se connecter à un hôte autre que le point de terminaison de stockage (par exemple S3, Azure). Cela est généralement utilisé pour les tests.

example: --repo1-storage-host=127.0.0.1

Noms obsolètes : repo-azure-host, repo-s3-host

Option de port du stockage du dépôt (--repo-storage-port)

Port du stockage du dépôt.

Port à utiliser lors de la connexion au point de terminaison du stockage (par exemple S3, Azure) ou à l’hôte (le cas échéant).

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

Noms obsolètes : repo-azure-port, repo-s3-port

Option d’étiquette de stockage du dépôt (--repo-storage-tag)

Étiquette(s) de stockage du dépôt.

Spécifiez les balises à ajouter aux objets lorsque le dépôt est un magasin d’objets (par exemple, S3). L’option peut être répétée pour ajouter plusieurs balises.

Il n’existe aucune fonctionnalité dans pgBackRest permettant de modifier ces balises ; veillez donc à les définir correctement avant d’exécuter stanza-create afin d’assurer une cohérence des balises dans l’ensemble du dépôt.

example: --repo1-storage-tag=key1=value1

Option de taille de morceau de chargement du dépôt (--repo-storage-upload-chunk-size)

Taille du morceau de chargement du dépôt.

Les magasins d’objets tels que S3 permettent de télécharger des fichiers par morceaux lorsque le fichier est trop volumineux pour être stocké en mémoire. Même si le fichier peut être stocké en mémoire, il est plus efficace en mémoire de limiter la quantité de mémoire utilisée pour les téléchargements.

Une taille de morceau plus élevée entraîne généralement de meilleures performances, car elle réduit le nombre de requêtes de téléchargement et permet de télécharger plus de fichiers en une seule requête plutôt qu’en morceaux. Le désavantage est que la consommation mémoire sera plus élevée, et comme la mémoire tampon de morceau doit être allouée par processus, des valeurs plus élevées de process-max entraînent une consommation mémoire globale plus importante.

Notez que les tailles de morceau valides varient selon le type de stockage et la plateforme. Par exemple, AWS S3 impose une taille minimale de morceau de 5MiB. La terminologie relative à la taille du morceau varie selon le type de stockage ; utilisez donc « part size » pour AWS S3, « chunk size » pour GCS et « block size » pour Azure lorsque vous recherchez les valeurs minimales ou maximales.

Si un fichier est plus grand que 1GiB (la taille maximale que PostgreSQL crée par défaut), la taille de tranche sera augmentée progressivement jusqu’à la valeur maximale autorisée afin de terminer le téléchargement du fichier.

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

Option de vérification du certificat de stockage du dépôt (--repo-storage-verify-tls)

Vérification du certificat du dépôt de stockage.

Cette option permet d’activer/désactiver la vérification du certificat TLS du serveur de stockage (par exemple, S3, Azure). La désactivation ne doit être utilisée que pour des tests ou d’autres scénarios où un certificat a été auto-signé.

default: y
example: --no-repo1-storage-verify-tls

Noms obsolètes : repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

Option de type de dépôt (--repo-type)

Type de stockage utilisé pour le dépôt.

Les types de dépôt suivants sont pris en charge :

  • azure - Service de stockage Blob Azure
  • cifs - Comme posix, mais désactive les liens et les fsyncs de répertoire
  • gcs - Google Cloud Storage
  • posix - Systèmes de fichiers conformes à Posix
  • s3 - AWS Simple Storage Service
  • sftp - Protocole de transfert de fichiers sécurisé

Lorsqu’un montage NFS est utilisé comme dépôt posix, les mêmes règles s’appliquent à pgBackRest qu’indiquées dans la documentation PostgreSQL : Création d’un cluster de base de données - Systèmes de fichiers .

default: posix
example: --repo1-type=cifs

Options de stanza

Option base de données PostgreSQL (--pg-database)

Base de données PostgreSQL.

Le nom de la base de données utilisé lors de la connexion à PostgreSQL. La valeur par défaut est généralement la meilleure option, mais certaines installations peuvent ne pas contenir cette base de données.

Notez que, pour des raisons historiques, le paramétrage de la variable d’environnement PGDATABASE sera ignoré.

default: postgres
example: --pg1-database=backupdb

Option Hôte PostgreSQL (--pg-host)

Hôte PostgreSQL pour une opération à distance.

Utilisé pour les sauvegardes où l’hôte PostgreSQL est différent de l’hôte du dépôt.

example: --pg1-host=db.domain.com

Nom obsolète : db-host

Option Fichier de l’Autorité de certification du serveur PostgreSQL (--pg-host-ca-file)

Fichier de l’autorité de certification du serveur PostgreSQL.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte PostgreSQL.

example: --pg1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’Autorité de certification du serveur PostgreSQL (--pg-host-ca-path)

Chemin de l’autorité de certification du serveur PostgreSQL.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte PostgreSQL.

example: --pg1-host-ca-path=/etc/pki/tls/certs

Option Fichier de certificat d’hôte PostgreSQL (--pg-host-cert-file)

Fichier de certificat d’hôte PostgreSQL.

Envoyé à l’hôte PostgreSQL pour prouver l’identité du client.

example: --pg1-host-cert-file=/path/to/client.crt

Option de commande hôte PostgreSQL (--pg-host-cmd)

Hôte PostgreSQL : commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes locaux et PostgreSQL. Si ce n’est pas défini, la commande sur l’hôte PostgreSQL sera définie de la même manière que celle sur l’hôte local.

default: [path of executed pgbackrest binary]
example: --pg1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : db-cmd

Option de configuration hôte PostgreSQL (--pg-host-config)

Fichier de configuration du serveur de base de données pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte PostgreSQL. Cette option est nécessaire uniquement si le fichier de configuration PostgreSQL est situé à un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --pg1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : db-config

Chemin d’inclusion de la configuration hôte PostgreSQL (--pg-host-config-include-path)

Configuration de l’hôte de base de données pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte PostgreSQL. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration PostgreSQL se trouve dans un emplacement différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --pg1-host-config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration de l’hôte PostgreSQL (--pg-host-config-path)

Chemin de configuration de l’hôte de base de données pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte PostgreSQL. Cette option est nécessaire uniquement si le chemin de configuration PostgreSQL se trouve dans un emplacement différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --pg1-host-config-path=/conf/pgbackrest

Option fichier clé hôte PostgreSQL (--pg-host-key-file)

Fichier de clé hôte PostgreSQL.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --pg1-host-key-file=/path/to/client.key

Option Port hôte PostgreSQL (--pg-host-port)

Port de l’hôte PostgreSQL lorsque pg-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole d’hôte PostgreSQL.

NOTE : Lorsque pg-host-type=ssh, il n’existe pas de valeur par défaut pour pg-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on pg-host-type):
    tls - 8432

allowed: [0, 65535]
example: --pg1-host-port=25

Nom obsolète : db-ssh-port

Type de protocole d’hôte PostgreSQL (--pg-host-type)

Type de protocole hôte PostgreSQL.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --pg1-host-type=tls

Option utilisateur hôte PostgreSQL (--pg-host-user)

Utilisateur de connexion au serveur PostgreSQL lorsqu’pg-host est défini.

Cet utilisateur possédera également le processus pgBackRest distant et initiera les connexions à PostgreSQL. Pour que cela fonctionne correctement, l’utilisateur doit être le propriétaire du cluster de base de données PostgreSQL, ce qui correspond généralement à postgres, la valeur par défaut.

default: postgres
example: --pg1-host-user=db_owner

Nom obsolète : db-user

Option Chemin PostgreSQL (--pg-path)

Répertoire de données PostgreSQL.

Il doit être identique à la valeur data_directory rapportée par PostgreSQL. Même si cette valeur peut être lue à divers endroits, il est prudent de la définir afin de garantir sa disponibilité en cas de restauration ou de sauvegarde hors ligne.

L’option pg-path est vérifiée par rapport à la valeur rapportée par PostgreSQL à chaque sauvegarde en ligne, elle doit donc toujours être à jour.

example: --pg1-path=/data/db

Nom obsolète : db-path

Option de port PostgreSQL (--pg-port)

Port PostgreSQL.

Port sur lequel PostgreSQL est en cours d’exécution. Ce paramètre n’a généralement pas besoin d’être spécifié, car la plupart des clusters PostgreSQL s’exécutent sur le port par défaut.

default: 5432
allowed: [0, 65535]
example: --pg1-port=6543

Nom obsolète : db-port

Option Chemin du socket PostgreSQL (--pg-socket-path)

Chemin du socket Unix de PostgreSQL.

Répertoire du socket Unix spécifié lors du démarrage de PostgreSQL. pgBackRest recherche automatiquement dans l’emplacement standard de votre système d’exploitation, aussi il est généralement inutile de préciser ce paramètre, sauf si le répertoire du socket a été explicitement modifié à l’aide du paramètre unix_socket_directories dans postgresql.conf.

example: --pg1-socket-path=/var/run/postgresql

Nom obsolète : db-socket-path

Option utilisateur de base de données PostgreSQL (--pg-user)

Utilisateur de base de données PostgreSQL.

Le nom d’utilisateur de la base de données utilisé lors de la connexion à PostgreSQL. Si non spécifié, pgBackRest se connectera avec l’utilisateur système local ou PGUSER.

example: --pg1-user=backupuser

4.15 - Commande de suppression de stanza (stanza-delete)

Référence des options et du comportement de la commande pgBackRest stanza-delete.

La commande stanza-delete supprime les données du dépôt associées à un stanza.

AVERTISSEMENT :

Utilisez cette commande avec précaution — elle supprimera définitivement toutes les sauvegardes et archives du dépôt pgBackRest pour le stanza spécifié.

Pour supprimer une stanza :

  • Arrêtez le cluster PostgreSQL associé à la stanza (ou utilisez –force pour l’ignorer).
  • Exécutez la commande stop sur l’hôte où la commande stanza-delete sera exécutée.
  • Exécutez la commande stanza-delete.

Une fois la commande exécutée avec succès, il incombe à l’utilisateur de supprimer la stanza de tous les fichiers de configuration pgBackRest et/ou des variables d’environnement.

Un stanza ne peut être supprimé que d’un dépôt à la fois. Pour supprimer le stanza de plusieurs dépôts, répétez la commande stanza-delete pour chaque dépôt tout en spécifiant l’option --repo.

Options de commande

Option obligatoire (--force)

Forcer la suppression d’une stanza.

Si PostgreSQL est toujours en cours d’exécution pour le stanza, cette option peut être utilisée pour forcer la suppression du stanza depuis le dépôt.

default: n
example: --no-force

Options générales

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: n
example: --allow-root

Option Taille tampon (--buffer-size)

Taille du tampon pour les opérations d’E/S.

Taille de tampon utilisée pour les opérations de copie, de compression, de chiffrement et autres. Le nombre de tampons utilisés dépend des options, et chaque opération peut utiliser une mémoire supplémentaire, par exemple, la compression gz peut utiliser jusqu’à 256KiB de mémoire supplémentaire.

Les valeurs autorisées sont 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB et 16MiB.

default: 1MiB
example: --buffer-size=2MiB

Option de commande client SSH (--cmd-ssh)

Commande cliente SSH.

Utilisez une commande cliente SSH spécifique lorsque vous souhaitez utiliser une alternative ou que la commande ssh n’est pas disponible dans $PATH.

default: ssh
example: --cmd-ssh=/usr/bin/ssh

Option niveau de compression réseau (--compress-level-network)

Niveau de compression du réseau.

Définit le niveau de compression réseau lorsque compress-type=none et la commande ne sont pas exécutées sur le même hôte que le dépôt. La compression est utilisée pour réduire le trafic réseau. Lorsque compress-type est différent de none, le paramètre compress-level-network est ignoré et compress-level est utilisé à la place, afin que le fichier ne soit compressé qu’une seule fois.

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

Option de configuration (--config)

Fichier de configuration pgBackRest.

Utilisez cette option pour spécifier un fichier de configuration différent du fichier par défaut.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

Option Chemin d’inclusion de configuration (--config-include-path)

Chemin vers les fichiers de configuration supplémentaires de pgBackRest.

Les fichiers de configuration se trouvant dans l’emplacement spécifié et ayant l’extension .conf seront concaténés au fichier de configuration de pgBackRest, ce qui donne un seul fichier de configuration.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration (--config-path)

Chemin de base des fichiers de configuration de pgBackRest.

Ce paramètre est utilisé pour remplacer le chemin de base par défaut pour les options --config et --config-include-path, sauf si ces dernières sont explicitement définies en ligne de commande.

Par exemple, passer uniquement --config-path=/conf/pgbackrest fait que la valeur par défaut de --config est définie à /conf/pgbackrest/pgbackrest.conf et que la valeur par défaut de --config-include-path est définie à /conf/pgbackrest/conf.d.

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

Option de délai d’attente de la base de données (--db-timeout)

Délai d’attente dépassé pour la requête de base de données.

Définit le délai d’attente, en secondes, des requêtes effectuées contre la base de données. Cela inclut les fonctions de démarrage et d’arrêt de la sauvegarde, qui peuvent chacune prendre beaucoup de temps. En raison de cela, le délai d’attente doit être maintenu élevé, sauf si vous savez que ces fonctions retourneront rapidement (par exemple, si vous avez défini start-fast=y et que vous savez que le cluster de base de données ne générera pas beaucoup de segments WAL pendant la sauvegarde).

NOTE : L’option db-timeout doit être inférieure à l’option protocol-timeout.

default: 30m
allowed: [100ms, 7d]
example: --db-timeout=600

Option d’expiration I/O (--io-timeout)

Délai d’attente d’E/S dépassé.

Délai d’attente, en secondes, utilisé pour les connexions et les opérations de lecture/écriture.

Notez que l’opération de lecture/écriture entière n’a pas besoin de se terminer dans ce délai d’attente, mais une certaine progression doit être réalisée, même si elle ne concerne qu’un seul octet.

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

Option Chemin verrou (--lock-path)

Chemin où les fichiers verrou sont stockés.

Le chemin de verrouillage fournit un emplacement où pgBackRest peut créer des fichiers de verrouillage afin d’empêcher l’exécution simultanée d’opérations en conflit.

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

Option de masque neutre (--neutral-umask)

Utilisez un umask neutre.

Définit le umask à 0000 afin que les modes du dépôt soient créés de manière cohérente. Le mode par défaut du répertoire est 0750 et le mode par défaut du fichier est 0640.

Pour utiliser le umask de l’utilisateur en cours, spécifiez neutral-umask=n dans le fichier de configuration ou --no-neutral-umask en ligne de commande.

default: y
example: --no-neutral-umask

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: --priority=19

Option délai d’attente du protocole (--protocol-timeout)

Délai d’attente du protocole.

Définit le délai d’attente, en secondes, durant lequel le processus local ou distant attend qu’un nouveau message soit reçu au niveau du protocole. Cela empêche les processus de rester bloqués indéfiniment en attente d’un message.

NOTE : L’option protocol-timeout doit être supérieure à l’option db-timeout.

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

Option Keep Alive (--sck-keep-alive)

Activation du keep-alive.

Active les messages keep-alive sur les connexions socket.

default: y
example: --no-sck-keep-alive

Option stanza (--stanza)

Définit la stanza.

Une stanza est la configuration d’un cluster de base de données PostgreSQL qui définit son emplacement, la manière dont il sera sauvegardé, les options d’archivage, etc. La plupart des serveurs de base de données n’ont qu’un seul cluster PostgreSQL et donc une seule stanza, tandis que les serveurs de sauvegarde ont une stanza pour chaque cluster de base de données à sauvegarder.

Il est tentant de nommer la stanza en fonction du cluster principal, mais un nom plus pertinent décrit les bases de données contenues dans le cluster. Étant donné que le nom de la stanza sera utilisé pour le principal et toutes les répliques, il est préférable de choisir un nom qui décrit la fonction réelle du cluster, par exemple app ou dw, plutôt que le nom local du cluster, comme main ou prod.

example: --stanza=main

Option de nombre de connexions Keep Alive (--tcp-keep-alive-count)

Nombre de maintien de connexion.

Spécifie le nombre de messages TCP keep-alive pouvant être perdus avant que la connexion ne soit considérée comme inactive.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPCNT.

allowed: [1, 32]
example: --tcp-keep-alive-count=3

Option d’idle Keep Alive (--tcp-keep-alive-idle)

Délai d’inactivité pour la maintien de la connexion.

Spécifie la durée (en secondes) pendant laquelle aucune activité réseau ne se produit, après laquelle le système d’exploitation doit envoyer un message de maintien de connexion TCP.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPIDLE.

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

Option Intervalle Keep Alive (--tcp-keep-alive-interval)

Intervalle de temps pour la maintien de la connexion active.

Spécifie la durée (en secondes) après laquelle un message TCP keep-alive non reconnu doit être renvoyé.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPINTVL.

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

Suites de chiffrement TLSv1.2 Option (--tls-cipher-12)

Suites de chiffrement TLSv1.2 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. L’exemple proposé constitue un choix raisonnable sauf si des exigences de sécurité spécifiques s’appliquent. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

Suites de chiffrement TLSv1.3 Option (--tls-cipher-13)

Suites de chiffrement TLSv1.3 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Options de journalisation

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: --log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: --log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: --log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

Option de journalisation des sous-processus (--log-subprocess)

Activer la journalisation dans les sous-processus.

Activez la journalisation des fichiers pour tout sous-processus créé par ce processus, en utilisant le niveau de journalisation spécifié par log-level-file.

default: n
example: --log-subprocess

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: --no-log-timestamp

Options du mainteneur

Option de version PostgreSQL obligatoire (--pg-version-force)

Forcer la version de PostgreSQL.

La version de PostgreSQL spécifiée sera utilisée à la place de la version détectée automatiquement en lisant pg_control ou les en-têtes WAL. Cela est principalement utile pour les forks de PostgreSQL ou les versions de développement où ces valeurs diffèrent de la version de publication. La version rapportée par PostgreSQL via server_version_num doit correspondre à la version forcée.

AVERTISSEMENT :

Faites preuve de prudence en utilisant cette option, car pg_control et les en-têtes WAL seront toujours lus selon le format attendu pour la version spécifiée, c’est-à-dire le format issu de la version open-source officielle de PostgreSQL. Si la version fork ou développée modifie le format des champs sur lesquels pgBackRest dépend, cela entraînera un comportement imprévu. En général, cette option ne fonctionnera correctement que si le fork ajoute tous les membres de structure personnalisés après les membres standard de PostgreSQL.

example: --pg-version-force=15

Options du dépôt

Définir l’option dépôt (--repo)

Définir le dépôt.

Spécifiez le dépôt sur lequel une commande doit s’opérer.

Par exemple, cette option peut être utilisée pour effectuer une restauration à partir d’un dépôt spécifique, plutôt que de laisser pgBackRest choisir.

allowed: [1, 256]
example: --repo=1

Option de conteneur de dépôt Azure (--repo-azure-container)

Conteneur de dépôt Azure.

Conteneur Azure utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés dans la racine du conteneur en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par Azure dans le conteneur.

example: --repo1-azure-container=pg-backup

Type de clé du dépôt Azure (--repo-azure-key-type)

Type de clé du dépôt Azure.

Les types suivants sont pris en charge pour l’autorisation :

  • shared - Clé partagée
  • sas - Signature d’accès partagé
  • auto - Autorisation automatique à l’aide d’identités managées Azure
default: shared
example: --repo1-azure-key-type=sas

Option de style d’URI de dépôt Azure (--repo-azure-uri-style)

Style URI Azure.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte account.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer le compte aux URI.
default: host
example: --repo1-azure-uri-style=path

Type de chiffrement du dépôt (--repo-cipher-type)

Chiffrement utilisé pour chiffrer le dépôt.

Les types de chiffrement suivants sont pris en charge :

  • none - Le dépôt n’est pas chiffré
  • aes-256-cbc - Advanced Encryption Standard avec une longueur de clé de 256 bits

Notez que le chiffrement est toujours effectué côté client, même si le type de dépôt (par exemple S3) prend en charge le chiffrement.

default: none
example: --repo1-cipher-type=aes-256-cbc

Option de bac de dépôt GCS (--repo-gcs-bucket)

Dépôt de bucket GCS.

Dépôt GCS utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par GCS dans le bucket.

example: --repo1-gcs-bucket=/pg-backup

Option de point de terminaison du dépôt GCS (--repo-gcs-endpoint)

Point de terminaison du dépôt GCS.

Point d’accès utilisé pour se connecter au service de stockage. Peut être mis à jour pour utiliser un serveur local GCS ou un point d’accès alternatif.

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

Type de clé du dépôt GCS (--repo-gcs-key-type)

Type de clé du dépôt GCS.

Les types suivants sont pris en charge pour l’autorisation :

  • auto - Autoriser à l’aide du compte de service de l’instance.
  • service - Compte de service à partir d’une clé stockée localement.
  • token - À utiliser pour les tests locaux, par exemple fakegcs.

Lorsque repo-gcs-key-type=service, les identifiants seront rechargés lorsque le jeton d’authentification sera renouvelé.

default: service
example: --repo1-gcs-key-type=auto

Option ID du projet du dépôt GCS (--repo-gcs-user-project)

Identifiant du projet GCS.

ID du projet GCS utilisé pour déterminer la facturation des requêtes.

example: --repo1-gcs-user-project=my-project

Option hôte du dépôt (--repo-host)

Hôte du dépôt lors de l’opération à distance.

Lors de la sauvegarde et de l’archivage vers un système de fichiers monté localement, ce paramètre n’est pas requis.

example: --repo1-host=repo1.domain.com

Nom obsolète : backup-host

Option du fichier de l’autorité de certification hôte du dépôt (--repo-host-ca-file)

Fichier de l’autorité de certification du serveur de dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte du dépôt.

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’autorité de certification du dépôt (--repo-host-ca-path)

Chemin de l’autorité de certification du serveur de dépôt.

Utilisez un chemin de certificat d’autorité (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte du dépôt.

example: --repo1-host-ca-path=/etc/pki/tls/certs

Option de fichier de certificat d’hôte du dépôt (--repo-host-cert-file)

Fichier de certificat d’hôte du dépôt.

Envoyé à l’hôte du dépôt pour prouver l’identité du client.

example: --repo1-host-cert-file=/path/to/client.crt

Option de commande hôte du dépôt (--repo-host-cmd)

Hôte du dépôt commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes local et de dépôt. Si non défini, la commande de dépôt sera définie de la même manière que celle de l’hôte local.

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : backup-cmd

Option de configuration de l’hôte du dépôt (--repo-host-config)

Fichier de configuration du serveur de dépôt pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le fichier de configuration de l’hôte du dépôt se trouve dans un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : sauvegarde-config

Option de chemin d’inclusion de configuration d’hôte de dépôt (--repo-host-config-include-path)

Configuration du serveur de dépôt pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration de l’hôte du dépôt est différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

Chemin de configuration de l’hôte du dépôt (--repo-host-config-path)

Chemin de configuration du serveur de dépôt pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin de configuration de l’hôte du dépôt est différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

Option de fichier de clé hôte du dépôt (--repo-host-key-file)

Fichier de clé hôte du dépôt.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --repo1-host-key-file=/path/to/client.key

Option de port hôte du dépôt (--repo-host-port)

Port de l’hôte du dépôt lorsque repo-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole du serveur du dépôt.

NOTE : Lorsque repo-host-type=ssh, il n’existe pas de valeur par défaut pour repo-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

Nom obsolète : backup-ssh-port

Type de protocole d’hôte de dépôt (--repo-host-type)

Type de protocole d’hôte de dépôt.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --repo1-host-type=tls

Option d’utilisateur hôte de dépôt (--repo-host-user)

Utilisateur hôte du dépôt lorsque repo-host est défini.

Définit l’utilisateur utilisé pour les opérations sur l’hôte du dépôt. Il est préférable que ce ne soit pas l’utilisateur postgres, mais plutôt un autre utilisateur tel que pgbackrest. Si PostgreSQL s’exécute sur l’hôte du dépôt, l’utilisateur postgres peut être ajouté au groupe pgbackrest afin d’avoir des permissions de lecture sur le dépôt sans pouvoir accidentellement le modifier.

default: pgbackrest
example: --repo1-host-user=repo-user

Nom obsolète : backup-user

Option Chemin du dépôt (--repo-path)

Chemin où les sauvegardes et l’archive sont stockées.

Le dépôt est l’emplacement où pgBackRest stocke les sauvegardes et les archives des segments WAL.

Il peut être difficile de prévoir à l’avance l’espace nécessaire. La meilleure approche consiste à effectuer quelques sauvegardes, puis à noter la taille des différents types de sauvegardes (pleines, incrémentielles, différentielles) et à mesurer la quantité de WAL générée par jour. Cela vous donnera une idée générale de l’espace requis, bien que les besoins évoluent probablement au fil du temps avec l’évolution de votre base de données.

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

Option de bac de dépôt S3 (--repo-s3-bucket)

Dépôt S3.

Dépôt S3 utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par AWS dans le bucket.

example: --repo1-s3-bucket=pg-backup

Option de point de terminaison du dépôt S3 (--repo-s3-endpoint)

Point de terminaison du dépôt S3.

Le point de terminaison AWS doit être valide pour la région sélectionnée.

Pour les configurations personnalisées ou les tests, les options repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port, et repo-storage-verify-tls peuvent être utiles.

example: --repo1-s3-endpoint=s3.amazonaws.com

Type de clé du dépôt S3 (--repo-s3-key-type)

Type de clé pour le dépôt S3.

Les types suivants sont pris en charge :

  • shared - Clés partagées
  • auto - Récupérer automatiquement les identifiants temporaires
  • web-id - Récupérer automatiquement les identifiants d’identité web
  • pod-id - Récupérer automatiquement les identifiants d’identité de pod EKS
  • process - Récupérer les identifiants en exécutant un processus
default: shared
example: --repo1-s3-key-type=auto

Option ID de clé KMS pour dépôt S3 (--repo-s3-kms-key-id)

Clé KMS du dépôt S3.

Active le chiffrement côté serveur S3 en utilisant la clé du service de gestion des clés AWS spécifiée.

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

Option de commande du processus d’authentification S3 (--repo-s3-process-cmd)

Commande du processus d’authentification S3.

Commande (et arguments facultatifs) à exécuter pour récupérer les identifiants temporaires S3. Le premier élément de la liste est la commande, les éléments suivants sont passés en tant que paramètres.

Le processus doit produire un JSON contenant les champs AccessKeyId, SecretAccessKey, SessionToken et Expiration. Les identifiants seront automatiquement actualisés avant l’expiration. Voir Process Credential Provider pour les détails du format.

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

Option de région du dépôt S3 (--repo-s3-region)

Région du dépôt S3.

La région AWS où le bucket a été créé.

example: --repo1-s3-region=us-east-1

Option Requesteur Payant pour le dépôt S3 (--repo-s3-requester-pays)

Dépôt S3 payeur de la demande.

Active le paiement par le demandeur S3.

default: n
example: --no-repo1-s3-requester-pays

Option de rôle du dépôt S3 (--repo-s3-role)

Rôle du dépôt S3.

Le nom du rôle AWS (pas le nom ARN complet) utilisé pour récupérer les identifiants temporaires lorsque repo-s3-key-type=auto.

example: --repo1-s3-role=authrole

Option de service de dépôt S3 (--repo-s3-service)

Service de signature S3.

Le service de signature S3 utilisé dans l’authentification SigV4. La valeur par défaut est s3 pour les points d’accès S3 standards. À définir sur s3-outposts lors de l’utilisation d’un point d’accès S3 Outposts.

default: s3
example: --repo1-s3-service=s3-outposts

Option de point de terminaison STS du dépôt S3 (--repo-s3-sts-host)

Point de terminaison STS du dépôt S3.

Point de terminaison STS utilisé pour récupérer des identifiants temporaires lorsque repo-s3-key-type=web-id est configuré. Définissez-le sur un point de terminaison régional (par exemple sts.us-east-1.amazonaws.com) pour utiliser STS régional, ce qui peut être nécessaire pour les régions GovCloud, Chine, ou pour réduire la latence.

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

Option de style d’URI de dépôt S3 (--repo-s3-uri-style)

Style d’URI S3.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte bucket.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer les URI par le répertoire.
default: host
example: --repo1-s3-uri-style=path

Option hôte du dépôt SFTP (--repo-sftp-host)

Hôte du dépôt SFTP.

Hôte SFTP contenant le dépôt.

example: --repo1-sftp-host=sftprepo.domain

Fingerprint de l’hôte du dépôt SFTP (--repo-sftp-host-fingerprint)

Empreinte du serveur hôte du dépôt SFTP.

La génération de l’empreinte d’hôte du dépôt SFTP doit correspondre à repo-sftp-host-key-hash-type. Générez l’empreinte via awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Les clés d’hôte SSH se trouvent normalement dans le répertoire /etc/ssh.

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

Type d’option de vérification de la clé hôte SFTP (--repo-sftp-host-key-check-type)

Type de vérification de la clé hôte SFTP.

Les types de vérification de clé d’hôte SFTP suivants sont pris en charge :

  • strict - pgBackRest n’ajoutera jamais automatiquement les clés d’hôte au fichier ~/.ssh/known_hosts, et refusera de se connecter aux hôtes dont la clé d’hôte a changé ou n’est pas trouvée dans les fichiers known hosts. Cette option oblige l’utilisateur à ajouter manuellement tous les nouveaux hôtes.
  • accept-new - pgBackRest ajoutera automatiquement les nouvelles clés d’hôte au fichier known hosts de l’utilisateur, mais n’autorisera pas les connexions aux hôtes dont la clé d’hôte a changé.
  • fingerprint - pgBackRest vérifiera la clé d’hôte contre l’empreinte spécifiée par l’option repo-sftp-host-fingerprint.
  • none - aucune vérification de clé d’hôte ne sera effectuée.
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

Type de hachage de la clé hôte du dépôt SFTP (--repo-sftp-host-key-hash-type)

Type de hachage de la clé d’hôte du dépôt SFTP.

Type de hachage de la clé hôte du dépôt SFTP. Déclare le type de hachage à utiliser pour calculer le hachage de la clé hôte du système distant au démarrage SSH. Les versions plus récentes de libssh2 prennent en charge sha256 en plus de md5 et sha1.

example: --repo1-sftp-host-key-hash-type=sha256

Option de port hôte du dépôt SFTP (--repo-sftp-host-port)

Port hôte du dépôt SFTP.

Port hôte du dépôt SFTP.

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

Option utilisateur hôte dépôt SFTP (--repo-sftp-host-user)

Utilisateur hôte du dépôt SFTP.

Utilisateur sur l’hôte utilisé pour stocker le dépôt.

example: --repo1-sftp-host-user=pg-backup

Option fichier Hôtes SFTP connus (--repo-sftp-known-host)

Fichier d’hôtes SFTP connus.

Fichier known hosts à consulter pour rechercher une correspondance avec un hôte SFTP lors de l’authentification. Si non spécifié, pgBackRest recherchera par défaut dans ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts et /etc/ssh/ssh_known_hosts2. Si configuré avec un ou plusieurs chemins de fichier, pgBackRest recherchera dans ces fichiers une correspondance. Les chemins de fichier doivent être complets ou commencer par un tilde. L’option repo-sftp-known-host peut être spécifiée plusieurs fois pour indiquer plusieurs fichiers known hosts à consulter. Pour utiliser la vérification du fichier known hosts, l’option repo-sftp-host-fingerprint ne doit pas être définie. Voir également l’option repo-sftp-host-check-type.

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

Option fichier de clé privée du dépôt SFTP (--repo-sftp-private-key-file)

Fichier de clé privée SFTP.

Fichier de clé privée SFTP utilisé pour l’authentification.

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

Option de fichier de clé publique du dépôt SFTP (--repo-sftp-public-key-file)

Fichier de clé publique SFTP.

Fichier de clé publique SFTP utilisé pour l’authentification. Facultatif si compilé contre OpenSSL, obligatoire si compilé contre une autre bibliothèque.

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

Option du fichier CA du dépôt de stockage (--repo-storage-ca-file)

Fichier de certificat d’autorité de certification pour le dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Noms obsolètes : repo-azure-ca-file, repo-s3-ca-file

Option de chemin du certificat CA TLS pour le dépôt (--repo-storage-ca-path)

Chemin du certificat d’autorité de certification du dépôt.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-path=/etc/pki/tls/certs

Noms obsolètes : repo-azure-ca-path, repo-s3-ca-path

Option hôte de stockage du dépôt (--repo-storage-host)

Hôte de stockage du dépôt.

Se connecter à un hôte autre que le point de terminaison de stockage (par exemple S3, Azure). Cela est généralement utilisé pour les tests.

example: --repo1-storage-host=127.0.0.1

Noms obsolètes : repo-azure-host, repo-s3-host

Option de port du stockage du dépôt (--repo-storage-port)

Port du stockage du dépôt.

Port à utiliser lors de la connexion au point de terminaison du stockage (par exemple S3, Azure) ou à l’hôte (le cas échéant).

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

Noms obsolètes : repo-azure-port, repo-s3-port

Option d’étiquette de stockage du dépôt (--repo-storage-tag)

Étiquette(s) de stockage du dépôt.

Spécifiez les balises à ajouter aux objets lorsque le dépôt est un magasin d’objets (par exemple, S3). L’option peut être répétée pour ajouter plusieurs balises.

Il n’existe aucune fonctionnalité dans pgBackRest permettant de modifier ces balises ; veillez donc à les définir correctement avant d’exécuter stanza-create afin d’assurer une cohérence des balises dans l’ensemble du dépôt.

example: --repo1-storage-tag=key1=value1

Option de taille de morceau de chargement du dépôt (--repo-storage-upload-chunk-size)

Taille du morceau de chargement du dépôt.

Les magasins d’objets tels que S3 permettent de télécharger des fichiers par morceaux lorsque le fichier est trop volumineux pour être stocké en mémoire. Même si le fichier peut être stocké en mémoire, il est plus efficace en mémoire de limiter la quantité de mémoire utilisée pour les téléchargements.

Une taille de morceau plus élevée entraîne généralement de meilleures performances, car elle réduit le nombre de requêtes de téléchargement et permet de télécharger plus de fichiers en une seule requête plutôt qu’en morceaux. Le désavantage est que la consommation mémoire sera plus élevée, et comme la mémoire tampon de morceau doit être allouée par processus, des valeurs plus élevées de process-max entraînent une consommation mémoire globale plus importante.

Notez que les tailles de morceau valides varient selon le type de stockage et la plateforme. Par exemple, AWS S3 impose une taille minimale de morceau de 5MiB. La terminologie relative à la taille du morceau varie selon le type de stockage ; utilisez donc « part size » pour AWS S3, « chunk size » pour GCS et « block size » pour Azure lorsque vous recherchez les valeurs minimales ou maximales.

Si un fichier est plus grand que 1GiB (la taille maximale que PostgreSQL crée par défaut), la taille de tranche sera augmentée progressivement jusqu’à la valeur maximale autorisée afin de terminer le téléchargement du fichier.

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

Option de vérification du certificat de stockage du dépôt (--repo-storage-verify-tls)

Vérification du certificat du dépôt de stockage.

Cette option permet d’activer/désactiver la vérification du certificat TLS du serveur de stockage (par exemple, S3, Azure). La désactivation ne doit être utilisée que pour des tests ou d’autres scénarios où un certificat a été auto-signé.

default: y
example: --no-repo1-storage-verify-tls

Noms obsolètes : repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

Option de type de dépôt (--repo-type)

Type de stockage utilisé pour le dépôt.

Les types de dépôt suivants sont pris en charge :

  • azure - Service de stockage Blob Azure
  • cifs - Comme posix, mais désactive les liens et les fsyncs de répertoire
  • gcs - Google Cloud Storage
  • posix - Systèmes de fichiers conformes à Posix
  • s3 - AWS Simple Storage Service
  • sftp - Protocole de transfert de fichiers sécurisé

Lorsqu’un montage NFS est utilisé comme dépôt posix, les mêmes règles s’appliquent à pgBackRest qu’indiquées dans la documentation PostgreSQL : Création d’un cluster de base de données - Systèmes de fichiers .

default: posix
example: --repo1-type=cifs

Options de stanza

Option base de données PostgreSQL (--pg-database)

Base de données PostgreSQL.

Le nom de la base de données utilisé lors de la connexion à PostgreSQL. La valeur par défaut est généralement la meilleure option, mais certaines installations peuvent ne pas contenir cette base de données.

Notez que, pour des raisons historiques, le paramétrage de la variable d’environnement PGDATABASE sera ignoré.

default: postgres
example: --pg1-database=backupdb

Option Hôte PostgreSQL (--pg-host)

Hôte PostgreSQL pour une opération à distance.

Utilisé pour les sauvegardes où l’hôte PostgreSQL est différent de l’hôte du dépôt.

example: --pg1-host=db.domain.com

Nom obsolète : db-host

Option Fichier de l’Autorité de certification du serveur PostgreSQL (--pg-host-ca-file)

Fichier de l’autorité de certification du serveur PostgreSQL.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte PostgreSQL.

example: --pg1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’Autorité de certification du serveur PostgreSQL (--pg-host-ca-path)

Chemin de l’autorité de certification du serveur PostgreSQL.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte PostgreSQL.

example: --pg1-host-ca-path=/etc/pki/tls/certs

Option Fichier de certificat d’hôte PostgreSQL (--pg-host-cert-file)

Fichier de certificat d’hôte PostgreSQL.

Envoyé à l’hôte PostgreSQL pour prouver l’identité du client.

example: --pg1-host-cert-file=/path/to/client.crt

Option de commande hôte PostgreSQL (--pg-host-cmd)

Hôte PostgreSQL : commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes locaux et PostgreSQL. Si ce n’est pas défini, la commande sur l’hôte PostgreSQL sera définie de la même manière que celle sur l’hôte local.

default: [path of executed pgbackrest binary]
example: --pg1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : db-cmd

Option de configuration hôte PostgreSQL (--pg-host-config)

Fichier de configuration du serveur de base de données pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte PostgreSQL. Cette option est nécessaire uniquement si le fichier de configuration PostgreSQL est situé à un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --pg1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : db-config

Chemin d’inclusion de la configuration hôte PostgreSQL (--pg-host-config-include-path)

Configuration de l’hôte de base de données pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte PostgreSQL. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration PostgreSQL se trouve dans un emplacement différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --pg1-host-config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration de l’hôte PostgreSQL (--pg-host-config-path)

Chemin de configuration de l’hôte de base de données pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte PostgreSQL. Cette option est nécessaire uniquement si le chemin de configuration PostgreSQL se trouve dans un emplacement différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --pg1-host-config-path=/conf/pgbackrest

Option fichier clé hôte PostgreSQL (--pg-host-key-file)

Fichier de clé hôte PostgreSQL.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --pg1-host-key-file=/path/to/client.key

Option Port hôte PostgreSQL (--pg-host-port)

Port de l’hôte PostgreSQL lorsque pg-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole d’hôte PostgreSQL.

NOTE : Lorsque pg-host-type=ssh, il n’existe pas de valeur par défaut pour pg-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on pg-host-type):
    tls - 8432

allowed: [0, 65535]
example: --pg1-host-port=25

Nom obsolète : db-ssh-port

Type de protocole d’hôte PostgreSQL (--pg-host-type)

Type de protocole hôte PostgreSQL.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --pg1-host-type=tls

Option utilisateur hôte PostgreSQL (--pg-host-user)

Utilisateur de connexion au serveur PostgreSQL lorsqu’pg-host est défini.

Cet utilisateur possédera également le processus pgBackRest distant et initiera les connexions à PostgreSQL. Pour que cela fonctionne correctement, l’utilisateur doit être le propriétaire du cluster de base de données PostgreSQL, ce qui correspond généralement à postgres, la valeur par défaut.

default: postgres
example: --pg1-host-user=db_owner

Nom obsolète : db-user

Option Chemin PostgreSQL (--pg-path)

Répertoire de données PostgreSQL.

Il doit être identique à la valeur data_directory rapportée par PostgreSQL. Même si cette valeur peut être lue à divers endroits, il est prudent de la définir afin de garantir sa disponibilité en cas de restauration ou de sauvegarde hors ligne.

L’option pg-path est vérifiée par rapport à la valeur rapportée par PostgreSQL à chaque sauvegarde en ligne, elle doit donc toujours être à jour.

example: --pg1-path=/data/db

Nom obsolète : db-path

Option de port PostgreSQL (--pg-port)

Port PostgreSQL.

Port sur lequel PostgreSQL est en cours d’exécution. Ce paramètre n’a généralement pas besoin d’être spécifié, car la plupart des clusters PostgreSQL s’exécutent sur le port par défaut.

default: 5432
allowed: [0, 65535]
example: --pg1-port=6543

Nom obsolète : db-port

Option Chemin du socket PostgreSQL (--pg-socket-path)

Chemin du socket Unix de PostgreSQL.

Répertoire du socket Unix spécifié lors du démarrage de PostgreSQL. pgBackRest recherche automatiquement dans l’emplacement standard de votre système d’exploitation, aussi il est généralement inutile de préciser ce paramètre, sauf si le répertoire du socket a été explicitement modifié à l’aide du paramètre unix_socket_directories dans postgresql.conf.

example: --pg1-socket-path=/var/run/postgresql

Nom obsolète : db-socket-path

Option utilisateur de base de données PostgreSQL (--pg-user)

Utilisateur de base de données PostgreSQL.

Le nom d’utilisateur de la base de données utilisé lors de la connexion à PostgreSQL. Si non spécifié, pgBackRest se connectera avec l’utilisateur système local ou PGUSER.

example: --pg1-user=backupuser

4.16 - Commande de mise à jour de stanza (stanza-upgrade)

Référence des options et du comportement de la commande pgBackRest stanza-upgrade.

Immédiatement après la mise à niveau de PostgreSQL vers une nouvelle version majeure, le pg-path de toutes les configurations pgBackRest doit être défini sur le nouveau emplacement de la base de données, puis la commande stanza-upgrade doit être exécutée. Si plusieurs dépôts sont configurés sur l’hôte, le stanza sera mis à niveau sur chacun. Si la base de données est hors ligne, utilisez l’option --no-online.

Options de commande

Option en ligne (--online)

Mettre à jour un cluster en ligne.

Spécifier –no-online empêche pgBackRest de se connecter à PostgreSQL lors de la mise à jour de la stanza.

default: y
example: --no-online

Options générales

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: n
example: --allow-root

Option Taille tampon (--buffer-size)

Taille du tampon pour les opérations d’E/S.

Taille de tampon utilisée pour les opérations de copie, de compression, de chiffrement et autres. Le nombre de tampons utilisés dépend des options, et chaque opération peut utiliser une mémoire supplémentaire, par exemple, la compression gz peut utiliser jusqu’à 256KiB de mémoire supplémentaire.

Les valeurs autorisées sont 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB et 16MiB.

default: 1MiB
example: --buffer-size=2MiB

Option de commande client SSH (--cmd-ssh)

Commande cliente SSH.

Utilisez une commande cliente SSH spécifique lorsque vous souhaitez utiliser une alternative ou que la commande ssh n’est pas disponible dans $PATH.

default: ssh
example: --cmd-ssh=/usr/bin/ssh

Option niveau de compression réseau (--compress-level-network)

Niveau de compression du réseau.

Définit le niveau de compression réseau lorsque compress-type=none et la commande ne sont pas exécutées sur le même hôte que le dépôt. La compression est utilisée pour réduire le trafic réseau. Lorsque compress-type est différent de none, le paramètre compress-level-network est ignoré et compress-level est utilisé à la place, afin que le fichier ne soit compressé qu’une seule fois.

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

Option de configuration (--config)

Fichier de configuration pgBackRest.

Utilisez cette option pour spécifier un fichier de configuration différent du fichier par défaut.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

Option Chemin d’inclusion de configuration (--config-include-path)

Chemin vers les fichiers de configuration supplémentaires de pgBackRest.

Les fichiers de configuration se trouvant dans l’emplacement spécifié et ayant l’extension .conf seront concaténés au fichier de configuration de pgBackRest, ce qui donne un seul fichier de configuration.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration (--config-path)

Chemin de base des fichiers de configuration de pgBackRest.

Ce paramètre est utilisé pour remplacer le chemin de base par défaut pour les options --config et --config-include-path, sauf si ces dernières sont explicitement définies en ligne de commande.

Par exemple, passer uniquement --config-path=/conf/pgbackrest fait que la valeur par défaut de --config est définie à /conf/pgbackrest/pgbackrest.conf et que la valeur par défaut de --config-include-path est définie à /conf/pgbackrest/conf.d.

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

Option de délai d’attente de la base de données (--db-timeout)

Délai d’attente dépassé pour la requête de base de données.

Définit le délai d’attente, en secondes, des requêtes effectuées contre la base de données. Cela inclut les fonctions de démarrage et d’arrêt de la sauvegarde, qui peuvent chacune prendre beaucoup de temps. En raison de cela, le délai d’attente doit être maintenu élevé, sauf si vous savez que ces fonctions retourneront rapidement (par exemple, si vous avez défini start-fast=y et que vous savez que le cluster de base de données ne générera pas beaucoup de segments WAL pendant la sauvegarde).

NOTE : L’option db-timeout doit être inférieure à l’option protocol-timeout.

default: 30m
allowed: [100ms, 7d]
example: --db-timeout=600

Option d’expiration I/O (--io-timeout)

Délai d’attente d’E/S dépassé.

Délai d’attente, en secondes, utilisé pour les connexions et les opérations de lecture/écriture.

Notez que l’opération de lecture/écriture entière n’a pas besoin de se terminer dans ce délai d’attente, mais une certaine progression doit être réalisée, même si elle ne concerne qu’un seul octet.

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

Option Chemin verrou (--lock-path)

Chemin où les fichiers verrou sont stockés.

Le chemin de verrouillage fournit un emplacement où pgBackRest peut créer des fichiers de verrouillage afin d’empêcher l’exécution simultanée d’opérations en conflit.

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

Option de masque neutre (--neutral-umask)

Utilisez un umask neutre.

Définit le umask à 0000 afin que les modes du dépôt soient créés de manière cohérente. Le mode par défaut du répertoire est 0750 et le mode par défaut du fichier est 0640.

Pour utiliser le umask de l’utilisateur en cours, spécifiez neutral-umask=n dans le fichier de configuration ou --no-neutral-umask en ligne de commande.

default: y
example: --no-neutral-umask

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: --priority=19

Option délai d’attente du protocole (--protocol-timeout)

Délai d’attente du protocole.

Définit le délai d’attente, en secondes, durant lequel le processus local ou distant attend qu’un nouveau message soit reçu au niveau du protocole. Cela empêche les processus de rester bloqués indéfiniment en attente d’un message.

NOTE : L’option protocol-timeout doit être supérieure à l’option db-timeout.

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

Option Keep Alive (--sck-keep-alive)

Activation du keep-alive.

Active les messages keep-alive sur les connexions socket.

default: y
example: --no-sck-keep-alive

Option stanza (--stanza)

Définit la stanza.

Une stanza est la configuration d’un cluster de base de données PostgreSQL qui définit son emplacement, la manière dont il sera sauvegardé, les options d’archivage, etc. La plupart des serveurs de base de données n’ont qu’un seul cluster PostgreSQL et donc une seule stanza, tandis que les serveurs de sauvegarde ont une stanza pour chaque cluster de base de données à sauvegarder.

Il est tentant de nommer la stanza en fonction du cluster principal, mais un nom plus pertinent décrit les bases de données contenues dans le cluster. Étant donné que le nom de la stanza sera utilisé pour le principal et toutes les répliques, il est préférable de choisir un nom qui décrit la fonction réelle du cluster, par exemple app ou dw, plutôt que le nom local du cluster, comme main ou prod.

example: --stanza=main

Option de nombre de connexions Keep Alive (--tcp-keep-alive-count)

Nombre de maintien de connexion.

Spécifie le nombre de messages TCP keep-alive pouvant être perdus avant que la connexion ne soit considérée comme inactive.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPCNT.

allowed: [1, 32]
example: --tcp-keep-alive-count=3

Option d’idle Keep Alive (--tcp-keep-alive-idle)

Délai d’inactivité pour la maintien de la connexion.

Spécifie la durée (en secondes) pendant laquelle aucune activité réseau ne se produit, après laquelle le système d’exploitation doit envoyer un message de maintien de connexion TCP.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPIDLE.

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

Option Intervalle Keep Alive (--tcp-keep-alive-interval)

Intervalle de temps pour la maintien de la connexion active.

Spécifie la durée (en secondes) après laquelle un message TCP keep-alive non reconnu doit être renvoyé.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPINTVL.

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

Suites de chiffrement TLSv1.2 Option (--tls-cipher-12)

Suites de chiffrement TLSv1.2 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. L’exemple proposé constitue un choix raisonnable sauf si des exigences de sécurité spécifiques s’appliquent. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

Suites de chiffrement TLSv1.3 Option (--tls-cipher-13)

Suites de chiffrement TLSv1.3 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Options de journalisation

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: --log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: --log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: --log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

Option de journalisation des sous-processus (--log-subprocess)

Activer la journalisation dans les sous-processus.

Activez la journalisation des fichiers pour tout sous-processus créé par ce processus, en utilisant le niveau de journalisation spécifié par log-level-file.

default: n
example: --log-subprocess

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: --no-log-timestamp

Options du mainteneur

Option de version PostgreSQL obligatoire (--pg-version-force)

Forcer la version de PostgreSQL.

La version de PostgreSQL spécifiée sera utilisée à la place de la version détectée automatiquement en lisant pg_control ou les en-têtes WAL. Cela est principalement utile pour les forks de PostgreSQL ou les versions de développement où ces valeurs diffèrent de la version de publication. La version rapportée par PostgreSQL via server_version_num doit correspondre à la version forcée.

AVERTISSEMENT :

Faites preuve de prudence en utilisant cette option, car pg_control et les en-têtes WAL seront toujours lus selon le format attendu pour la version spécifiée, c’est-à-dire le format issu de la version open-source officielle de PostgreSQL. Si la version fork ou développée modifie le format des champs sur lesquels pgBackRest dépend, cela entraînera un comportement imprévu. En général, cette option ne fonctionnera correctement que si le fork ajoute tous les membres de structure personnalisés après les membres standard de PostgreSQL.

example: --pg-version-force=15

Options du dépôt

Option de conteneur de dépôt Azure (--repo-azure-container)

Conteneur de dépôt Azure.

Conteneur Azure utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés dans la racine du conteneur en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par Azure dans le conteneur.

example: --repo1-azure-container=pg-backup

Type de clé du dépôt Azure (--repo-azure-key-type)

Type de clé du dépôt Azure.

Les types suivants sont pris en charge pour l’autorisation :

  • shared - Clé partagée
  • sas - Signature d’accès partagé
  • auto - Autorisation automatique à l’aide d’identités managées Azure
default: shared
example: --repo1-azure-key-type=sas

Option de style d’URI de dépôt Azure (--repo-azure-uri-style)

Style URI Azure.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte account.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer le compte aux URI.
default: host
example: --repo1-azure-uri-style=path

Type de chiffrement du dépôt (--repo-cipher-type)

Chiffrement utilisé pour chiffrer le dépôt.

Les types de chiffrement suivants sont pris en charge :

  • none - Le dépôt n’est pas chiffré
  • aes-256-cbc - Advanced Encryption Standard avec une longueur de clé de 256 bits

Notez que le chiffrement est toujours effectué côté client, même si le type de dépôt (par exemple S3) prend en charge le chiffrement.

default: none
example: --repo1-cipher-type=aes-256-cbc

Option de bac de dépôt GCS (--repo-gcs-bucket)

Dépôt de bucket GCS.

Dépôt GCS utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par GCS dans le bucket.

example: --repo1-gcs-bucket=/pg-backup

Option de point de terminaison du dépôt GCS (--repo-gcs-endpoint)

Point de terminaison du dépôt GCS.

Point d’accès utilisé pour se connecter au service de stockage. Peut être mis à jour pour utiliser un serveur local GCS ou un point d’accès alternatif.

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

Type de clé du dépôt GCS (--repo-gcs-key-type)

Type de clé du dépôt GCS.

Les types suivants sont pris en charge pour l’autorisation :

  • auto - Autoriser à l’aide du compte de service de l’instance.
  • service - Compte de service à partir d’une clé stockée localement.
  • token - À utiliser pour les tests locaux, par exemple fakegcs.

Lorsque repo-gcs-key-type=service, les identifiants seront rechargés lorsque le jeton d’authentification sera renouvelé.

default: service
example: --repo1-gcs-key-type=auto

Option ID du projet du dépôt GCS (--repo-gcs-user-project)

Identifiant du projet GCS.

ID du projet GCS utilisé pour déterminer la facturation des requêtes.

example: --repo1-gcs-user-project=my-project

Option hôte du dépôt (--repo-host)

Hôte du dépôt lors de l’opération à distance.

Lors de la sauvegarde et de l’archivage vers un système de fichiers monté localement, ce paramètre n’est pas requis.

example: --repo1-host=repo1.domain.com

Nom obsolète : backup-host

Option du fichier de l’autorité de certification hôte du dépôt (--repo-host-ca-file)

Fichier de l’autorité de certification du serveur de dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte du dépôt.

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’autorité de certification du dépôt (--repo-host-ca-path)

Chemin de l’autorité de certification du serveur de dépôt.

Utilisez un chemin de certificat d’autorité (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte du dépôt.

example: --repo1-host-ca-path=/etc/pki/tls/certs

Option de fichier de certificat d’hôte du dépôt (--repo-host-cert-file)

Fichier de certificat d’hôte du dépôt.

Envoyé à l’hôte du dépôt pour prouver l’identité du client.

example: --repo1-host-cert-file=/path/to/client.crt

Option de commande hôte du dépôt (--repo-host-cmd)

Hôte du dépôt commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes local et de dépôt. Si non défini, la commande de dépôt sera définie de la même manière que celle de l’hôte local.

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : backup-cmd

Option de configuration de l’hôte du dépôt (--repo-host-config)

Fichier de configuration du serveur de dépôt pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le fichier de configuration de l’hôte du dépôt se trouve dans un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : sauvegarde-config

Option de chemin d’inclusion de configuration d’hôte de dépôt (--repo-host-config-include-path)

Configuration du serveur de dépôt pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration de l’hôte du dépôt est différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

Chemin de configuration de l’hôte du dépôt (--repo-host-config-path)

Chemin de configuration du serveur de dépôt pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin de configuration de l’hôte du dépôt est différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

Option de fichier de clé hôte du dépôt (--repo-host-key-file)

Fichier de clé hôte du dépôt.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --repo1-host-key-file=/path/to/client.key

Option de port hôte du dépôt (--repo-host-port)

Port de l’hôte du dépôt lorsque repo-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole du serveur du dépôt.

NOTE : Lorsque repo-host-type=ssh, il n’existe pas de valeur par défaut pour repo-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

Nom obsolète : backup-ssh-port

Type de protocole d’hôte de dépôt (--repo-host-type)

Type de protocole d’hôte de dépôt.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --repo1-host-type=tls

Option d’utilisateur hôte de dépôt (--repo-host-user)

Utilisateur hôte du dépôt lorsque repo-host est défini.

Définit l’utilisateur utilisé pour les opérations sur l’hôte du dépôt. Il est préférable que ce ne soit pas l’utilisateur postgres, mais plutôt un autre utilisateur tel que pgbackrest. Si PostgreSQL s’exécute sur l’hôte du dépôt, l’utilisateur postgres peut être ajouté au groupe pgbackrest afin d’avoir des permissions de lecture sur le dépôt sans pouvoir accidentellement le modifier.

default: pgbackrest
example: --repo1-host-user=repo-user

Nom obsolète : backup-user

Option Chemin du dépôt (--repo-path)

Chemin où les sauvegardes et l’archive sont stockées.

Le dépôt est l’emplacement où pgBackRest stocke les sauvegardes et les archives des segments WAL.

Il peut être difficile de prévoir à l’avance l’espace nécessaire. La meilleure approche consiste à effectuer quelques sauvegardes, puis à noter la taille des différents types de sauvegardes (pleines, incrémentielles, différentielles) et à mesurer la quantité de WAL générée par jour. Cela vous donnera une idée générale de l’espace requis, bien que les besoins évoluent probablement au fil du temps avec l’évolution de votre base de données.

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

Option de bac de dépôt S3 (--repo-s3-bucket)

Dépôt S3.

Dépôt S3 utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par AWS dans le bucket.

example: --repo1-s3-bucket=pg-backup

Option de point de terminaison du dépôt S3 (--repo-s3-endpoint)

Point de terminaison du dépôt S3.

Le point de terminaison AWS doit être valide pour la région sélectionnée.

Pour les configurations personnalisées ou les tests, les options repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port, et repo-storage-verify-tls peuvent être utiles.

example: --repo1-s3-endpoint=s3.amazonaws.com

Type de clé du dépôt S3 (--repo-s3-key-type)

Type de clé pour le dépôt S3.

Les types suivants sont pris en charge :

  • shared - Clés partagées
  • auto - Récupérer automatiquement les identifiants temporaires
  • web-id - Récupérer automatiquement les identifiants d’identité web
  • pod-id - Récupérer automatiquement les identifiants d’identité de pod EKS
  • process - Récupérer les identifiants en exécutant un processus
default: shared
example: --repo1-s3-key-type=auto

Option ID de clé KMS pour dépôt S3 (--repo-s3-kms-key-id)

Clé KMS du dépôt S3.

Active le chiffrement côté serveur S3 en utilisant la clé du service de gestion des clés AWS spécifiée.

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

Option de commande du processus d’authentification S3 (--repo-s3-process-cmd)

Commande du processus d’authentification S3.

Commande (et arguments facultatifs) à exécuter pour récupérer les identifiants temporaires S3. Le premier élément de la liste est la commande, les éléments suivants sont passés en tant que paramètres.

Le processus doit produire un JSON contenant les champs AccessKeyId, SecretAccessKey, SessionToken et Expiration. Les identifiants seront automatiquement actualisés avant l’expiration. Voir Process Credential Provider pour les détails du format.

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

Option de région du dépôt S3 (--repo-s3-region)

Région du dépôt S3.

La région AWS où le bucket a été créé.

example: --repo1-s3-region=us-east-1

Option Requesteur Payant pour le dépôt S3 (--repo-s3-requester-pays)

Dépôt S3 payeur de la demande.

Active le paiement par le demandeur S3.

default: n
example: --no-repo1-s3-requester-pays

Option de rôle du dépôt S3 (--repo-s3-role)

Rôle du dépôt S3.

Le nom du rôle AWS (pas le nom ARN complet) utilisé pour récupérer les identifiants temporaires lorsque repo-s3-key-type=auto.

example: --repo1-s3-role=authrole

Option de service de dépôt S3 (--repo-s3-service)

Service de signature S3.

Le service de signature S3 utilisé dans l’authentification SigV4. La valeur par défaut est s3 pour les points d’accès S3 standards. À définir sur s3-outposts lors de l’utilisation d’un point d’accès S3 Outposts.

default: s3
example: --repo1-s3-service=s3-outposts

Option de point de terminaison STS du dépôt S3 (--repo-s3-sts-host)

Point de terminaison STS du dépôt S3.

Point de terminaison STS utilisé pour récupérer des identifiants temporaires lorsque repo-s3-key-type=web-id est configuré. Définissez-le sur un point de terminaison régional (par exemple sts.us-east-1.amazonaws.com) pour utiliser STS régional, ce qui peut être nécessaire pour les régions GovCloud, Chine, ou pour réduire la latence.

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

Option de style d’URI de dépôt S3 (--repo-s3-uri-style)

Style d’URI S3.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte bucket.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer les URI par le répertoire.
default: host
example: --repo1-s3-uri-style=path

Option hôte du dépôt SFTP (--repo-sftp-host)

Hôte du dépôt SFTP.

Hôte SFTP contenant le dépôt.

example: --repo1-sftp-host=sftprepo.domain

Fingerprint de l’hôte du dépôt SFTP (--repo-sftp-host-fingerprint)

Empreinte du serveur hôte du dépôt SFTP.

La génération de l’empreinte d’hôte du dépôt SFTP doit correspondre à repo-sftp-host-key-hash-type. Générez l’empreinte via awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Les clés d’hôte SSH se trouvent normalement dans le répertoire /etc/ssh.

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

Type d’option de vérification de la clé hôte SFTP (--repo-sftp-host-key-check-type)

Type de vérification de la clé hôte SFTP.

Les types de vérification de clé d’hôte SFTP suivants sont pris en charge :

  • strict - pgBackRest n’ajoutera jamais automatiquement les clés d’hôte au fichier ~/.ssh/known_hosts, et refusera de se connecter aux hôtes dont la clé d’hôte a changé ou n’est pas trouvée dans les fichiers known hosts. Cette option oblige l’utilisateur à ajouter manuellement tous les nouveaux hôtes.
  • accept-new - pgBackRest ajoutera automatiquement les nouvelles clés d’hôte au fichier known hosts de l’utilisateur, mais n’autorisera pas les connexions aux hôtes dont la clé d’hôte a changé.
  • fingerprint - pgBackRest vérifiera la clé d’hôte contre l’empreinte spécifiée par l’option repo-sftp-host-fingerprint.
  • none - aucune vérification de clé d’hôte ne sera effectuée.
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

Type de hachage de la clé hôte du dépôt SFTP (--repo-sftp-host-key-hash-type)

Type de hachage de la clé d’hôte du dépôt SFTP.

Type de hachage de la clé hôte du dépôt SFTP. Déclare le type de hachage à utiliser pour calculer le hachage de la clé hôte du système distant au démarrage SSH. Les versions plus récentes de libssh2 prennent en charge sha256 en plus de md5 et sha1.

example: --repo1-sftp-host-key-hash-type=sha256

Option de port hôte du dépôt SFTP (--repo-sftp-host-port)

Port hôte du dépôt SFTP.

Port hôte du dépôt SFTP.

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

Option utilisateur hôte dépôt SFTP (--repo-sftp-host-user)

Utilisateur hôte du dépôt SFTP.

Utilisateur sur l’hôte utilisé pour stocker le dépôt.

example: --repo1-sftp-host-user=pg-backup

Option fichier Hôtes SFTP connus (--repo-sftp-known-host)

Fichier d’hôtes SFTP connus.

Fichier known hosts à consulter pour rechercher une correspondance avec un hôte SFTP lors de l’authentification. Si non spécifié, pgBackRest recherchera par défaut dans ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts et /etc/ssh/ssh_known_hosts2. Si configuré avec un ou plusieurs chemins de fichier, pgBackRest recherchera dans ces fichiers une correspondance. Les chemins de fichier doivent être complets ou commencer par un tilde. L’option repo-sftp-known-host peut être spécifiée plusieurs fois pour indiquer plusieurs fichiers known hosts à consulter. Pour utiliser la vérification du fichier known hosts, l’option repo-sftp-host-fingerprint ne doit pas être définie. Voir également l’option repo-sftp-host-check-type.

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

Option fichier de clé privée du dépôt SFTP (--repo-sftp-private-key-file)

Fichier de clé privée SFTP.

Fichier de clé privée SFTP utilisé pour l’authentification.

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

Option de fichier de clé publique du dépôt SFTP (--repo-sftp-public-key-file)

Fichier de clé publique SFTP.

Fichier de clé publique SFTP utilisé pour l’authentification. Facultatif si compilé contre OpenSSL, obligatoire si compilé contre une autre bibliothèque.

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

Option du fichier CA du dépôt de stockage (--repo-storage-ca-file)

Fichier de certificat d’autorité de certification pour le dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Noms obsolètes : repo-azure-ca-file, repo-s3-ca-file

Option de chemin du certificat CA TLS pour le dépôt (--repo-storage-ca-path)

Chemin du certificat d’autorité de certification du dépôt.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-path=/etc/pki/tls/certs

Noms obsolètes : repo-azure-ca-path, repo-s3-ca-path

Option hôte de stockage du dépôt (--repo-storage-host)

Hôte de stockage du dépôt.

Se connecter à un hôte autre que le point de terminaison de stockage (par exemple S3, Azure). Cela est généralement utilisé pour les tests.

example: --repo1-storage-host=127.0.0.1

Noms obsolètes : repo-azure-host, repo-s3-host

Option de port du stockage du dépôt (--repo-storage-port)

Port du stockage du dépôt.

Port à utiliser lors de la connexion au point de terminaison du stockage (par exemple S3, Azure) ou à l’hôte (le cas échéant).

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

Noms obsolètes : repo-azure-port, repo-s3-port

Option d’étiquette de stockage du dépôt (--repo-storage-tag)

Étiquette(s) de stockage du dépôt.

Spécifiez les balises à ajouter aux objets lorsque le dépôt est un magasin d’objets (par exemple, S3). L’option peut être répétée pour ajouter plusieurs balises.

Il n’existe aucune fonctionnalité dans pgBackRest permettant de modifier ces balises ; veillez donc à les définir correctement avant d’exécuter stanza-create afin d’assurer une cohérence des balises dans l’ensemble du dépôt.

example: --repo1-storage-tag=key1=value1

Option de taille de morceau de chargement du dépôt (--repo-storage-upload-chunk-size)

Taille du morceau de chargement du dépôt.

Les magasins d’objets tels que S3 permettent de télécharger des fichiers par morceaux lorsque le fichier est trop volumineux pour être stocké en mémoire. Même si le fichier peut être stocké en mémoire, il est plus efficace en mémoire de limiter la quantité de mémoire utilisée pour les téléchargements.

Une taille de morceau plus élevée entraîne généralement de meilleures performances, car elle réduit le nombre de requêtes de téléchargement et permet de télécharger plus de fichiers en une seule requête plutôt qu’en morceaux. Le désavantage est que la consommation mémoire sera plus élevée, et comme la mémoire tampon de morceau doit être allouée par processus, des valeurs plus élevées de process-max entraînent une consommation mémoire globale plus importante.

Notez que les tailles de morceau valides varient selon le type de stockage et la plateforme. Par exemple, AWS S3 impose une taille minimale de morceau de 5MiB. La terminologie relative à la taille du morceau varie selon le type de stockage ; utilisez donc « part size » pour AWS S3, « chunk size » pour GCS et « block size » pour Azure lorsque vous recherchez les valeurs minimales ou maximales.

Si un fichier est plus grand que 1GiB (la taille maximale que PostgreSQL crée par défaut), la taille de tranche sera augmentée progressivement jusqu’à la valeur maximale autorisée afin de terminer le téléchargement du fichier.

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

Option de vérification du certificat de stockage du dépôt (--repo-storage-verify-tls)

Vérification du certificat du dépôt de stockage.

Cette option permet d’activer/désactiver la vérification du certificat TLS du serveur de stockage (par exemple, S3, Azure). La désactivation ne doit être utilisée que pour des tests ou d’autres scénarios où un certificat a été auto-signé.

default: y
example: --no-repo1-storage-verify-tls

Noms obsolètes : repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

Option de type de dépôt (--repo-type)

Type de stockage utilisé pour le dépôt.

Les types de dépôt suivants sont pris en charge :

  • azure - Service de stockage Blob Azure
  • cifs - Comme posix, mais désactive les liens et les fsyncs de répertoire
  • gcs - Google Cloud Storage
  • posix - Systèmes de fichiers conformes à Posix
  • s3 - AWS Simple Storage Service
  • sftp - Protocole de transfert de fichiers sécurisé

Lorsqu’un montage NFS est utilisé comme dépôt posix, les mêmes règles s’appliquent à pgBackRest qu’indiquées dans la documentation PostgreSQL : Création d’un cluster de base de données - Systèmes de fichiers .

default: posix
example: --repo1-type=cifs

Options de stanza

Option base de données PostgreSQL (--pg-database)

Base de données PostgreSQL.

Le nom de la base de données utilisé lors de la connexion à PostgreSQL. La valeur par défaut est généralement la meilleure option, mais certaines installations peuvent ne pas contenir cette base de données.

Notez que, pour des raisons historiques, le paramétrage de la variable d’environnement PGDATABASE sera ignoré.

default: postgres
example: --pg1-database=backupdb

Option Hôte PostgreSQL (--pg-host)

Hôte PostgreSQL pour une opération à distance.

Utilisé pour les sauvegardes où l’hôte PostgreSQL est différent de l’hôte du dépôt.

example: --pg1-host=db.domain.com

Nom obsolète : db-host

Option Fichier de l’Autorité de certification du serveur PostgreSQL (--pg-host-ca-file)

Fichier de l’autorité de certification du serveur PostgreSQL.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte PostgreSQL.

example: --pg1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’Autorité de certification du serveur PostgreSQL (--pg-host-ca-path)

Chemin de l’autorité de certification du serveur PostgreSQL.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte PostgreSQL.

example: --pg1-host-ca-path=/etc/pki/tls/certs

Option Fichier de certificat d’hôte PostgreSQL (--pg-host-cert-file)

Fichier de certificat d’hôte PostgreSQL.

Envoyé à l’hôte PostgreSQL pour prouver l’identité du client.

example: --pg1-host-cert-file=/path/to/client.crt

Option de commande hôte PostgreSQL (--pg-host-cmd)

Hôte PostgreSQL : commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes locaux et PostgreSQL. Si ce n’est pas défini, la commande sur l’hôte PostgreSQL sera définie de la même manière que celle sur l’hôte local.

default: [path of executed pgbackrest binary]
example: --pg1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : db-cmd

Option de configuration hôte PostgreSQL (--pg-host-config)

Fichier de configuration du serveur de base de données pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte PostgreSQL. Cette option est nécessaire uniquement si le fichier de configuration PostgreSQL est situé à un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --pg1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : db-config

Chemin d’inclusion de la configuration hôte PostgreSQL (--pg-host-config-include-path)

Configuration de l’hôte de base de données pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte PostgreSQL. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration PostgreSQL se trouve dans un emplacement différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --pg1-host-config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration de l’hôte PostgreSQL (--pg-host-config-path)

Chemin de configuration de l’hôte de base de données pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte PostgreSQL. Cette option est nécessaire uniquement si le chemin de configuration PostgreSQL se trouve dans un emplacement différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --pg1-host-config-path=/conf/pgbackrest

Option fichier clé hôte PostgreSQL (--pg-host-key-file)

Fichier de clé hôte PostgreSQL.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --pg1-host-key-file=/path/to/client.key

Option Port hôte PostgreSQL (--pg-host-port)

Port de l’hôte PostgreSQL lorsque pg-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole d’hôte PostgreSQL.

NOTE : Lorsque pg-host-type=ssh, il n’existe pas de valeur par défaut pour pg-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on pg-host-type):
    tls - 8432

allowed: [0, 65535]
example: --pg1-host-port=25

Nom obsolète : db-ssh-port

Type de protocole d’hôte PostgreSQL (--pg-host-type)

Type de protocole hôte PostgreSQL.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --pg1-host-type=tls

Option utilisateur hôte PostgreSQL (--pg-host-user)

Utilisateur de connexion au serveur PostgreSQL lorsqu’pg-host est défini.

Cet utilisateur possédera également le processus pgBackRest distant et initiera les connexions à PostgreSQL. Pour que cela fonctionne correctement, l’utilisateur doit être le propriétaire du cluster de base de données PostgreSQL, ce qui correspond généralement à postgres, la valeur par défaut.

default: postgres
example: --pg1-host-user=db_owner

Nom obsolète : db-user

Option Chemin PostgreSQL (--pg-path)

Répertoire de données PostgreSQL.

Il doit être identique à la valeur data_directory rapportée par PostgreSQL. Même si cette valeur peut être lue à divers endroits, il est prudent de la définir afin de garantir sa disponibilité en cas de restauration ou de sauvegarde hors ligne.

L’option pg-path est vérifiée par rapport à la valeur rapportée par PostgreSQL à chaque sauvegarde en ligne, elle doit donc toujours être à jour.

example: --pg1-path=/data/db

Nom obsolète : db-path

Option de port PostgreSQL (--pg-port)

Port PostgreSQL.

Port sur lequel PostgreSQL est en cours d’exécution. Ce paramètre n’a généralement pas besoin d’être spécifié, car la plupart des clusters PostgreSQL s’exécutent sur le port par défaut.

default: 5432
allowed: [0, 65535]
example: --pg1-port=6543

Nom obsolète : db-port

Option Chemin du socket PostgreSQL (--pg-socket-path)

Chemin du socket Unix de PostgreSQL.

Répertoire du socket Unix spécifié lors du démarrage de PostgreSQL. pgBackRest recherche automatiquement dans l’emplacement standard de votre système d’exploitation, aussi il est généralement inutile de préciser ce paramètre, sauf si le répertoire du socket a été explicitement modifié à l’aide du paramètre unix_socket_directories dans postgresql.conf.

example: --pg1-socket-path=/var/run/postgresql

Nom obsolète : db-socket-path

Option utilisateur de base de données PostgreSQL (--pg-user)

Utilisateur de base de données PostgreSQL.

Le nom d’utilisateur de la base de données utilisé lors de la connexion à PostgreSQL. Si non spécifié, pgBackRest se connectera avec l’utilisateur système local ou PGUSER.

example: --pg1-user=backupuser

4.17 - Commande de démarrage (start)

Référence des options et du comportement de la commande pgBackRest start.

Si les processus pgBackRest ont été précédemment arrêtés à l’aide de la commande stop, ils peuvent être redémarrés à l’aide de la commande start. Notez qu’il ne s’agit pas d’un démarrage immédiat des processus pgBackRest, mais qu’ils sont autorisés à s’exécuter. Voir Démarrage et arrêt pour plus d’informations et d’exemples.

Options générales

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: n
example: --allow-root

Option de configuration (--config)

Fichier de configuration pgBackRest.

Utilisez cette option pour spécifier un fichier de configuration différent du fichier par défaut.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

Option Chemin d’inclusion de configuration (--config-include-path)

Chemin vers les fichiers de configuration supplémentaires de pgBackRest.

Les fichiers de configuration se trouvant dans l’emplacement spécifié et ayant l’extension .conf seront concaténés au fichier de configuration de pgBackRest, ce qui donne un seul fichier de configuration.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration (--config-path)

Chemin de base des fichiers de configuration de pgBackRest.

Ce paramètre est utilisé pour remplacer le chemin de base par défaut pour les options --config et --config-include-path, sauf si ces dernières sont explicitement définies en ligne de commande.

Par exemple, passer uniquement --config-path=/conf/pgbackrest fait que la valeur par défaut de --config est définie à /conf/pgbackrest/pgbackrest.conf et que la valeur par défaut de --config-include-path est définie à /conf/pgbackrest/conf.d.

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

Option Chemin verrou (--lock-path)

Chemin où les fichiers verrou sont stockés.

Le chemin de verrouillage fournit un emplacement où pgBackRest peut créer des fichiers de verrouillage afin d’empêcher l’exécution simultanée d’opérations en conflit.

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

Option de masque neutre (--neutral-umask)

Utilisez un umask neutre.

Définit le umask à 0000 afin que les modes du dépôt soient créés de manière cohérente. Le mode par défaut du répertoire est 0750 et le mode par défaut du fichier est 0640.

Pour utiliser le umask de l’utilisateur en cours, spécifiez neutral-umask=n dans le fichier de configuration ou --no-neutral-umask en ligne de commande.

default: y
example: --no-neutral-umask

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: --priority=19

Option stanza (--stanza)

Définit la stanza.

Une stanza est la configuration d’un cluster de base de données PostgreSQL qui définit son emplacement, la manière dont il sera sauvegardé, les options d’archivage, etc. La plupart des serveurs de base de données n’ont qu’un seul cluster PostgreSQL et donc une seule stanza, tandis que les serveurs de sauvegarde ont une stanza pour chaque cluster de base de données à sauvegarder.

Il est tentant de nommer la stanza en fonction du cluster principal, mais un nom plus pertinent décrit les bases de données contenues dans le cluster. Étant donné que le nom de la stanza sera utilisé pour le principal et toutes les répliques, il est préférable de choisir un nom qui décrit la fonction réelle du cluster, par exemple app ou dw, plutôt que le nom local du cluster, comme main ou prod.

example: --stanza=main

Options de journalisation

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: --log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: --log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: --log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: --no-log-timestamp

4.18 - Commande d'arrêt (stop)

Référence des options et du comportement de la commande pgBackRest stop.

N’autorise aucun nouveau processus pgBackRest à s’exécuter. Par défaut, les processus en cours d’exécution sont autorisés à se terminer correctement. Utilisez l’option --force pour terminer les processus en cours.

Les processus pgBackRest retourneront une erreur s’ils sont exécutés après la fin de la commande d’arrêt. Consultez Démarrage et arrêt pour plus d’informations et d’exemples.

Options de commande

Option obligatoire (--force)

Forcer l’arrêt de tous les processus pgBackRest.

Cette option enverra des signaux TERM à tous les processus pgBackRest en cours d’exécution afin d’effectuer une fermeture correcte mais immédiate. Notez qu’elle arrêtera également les processus lancés depuis un autre système mais dont les processus distants s’exécutent sur le système actuel. Par exemple, si une sauvegarde a été lancée depuis le serveur de sauvegarde, l’exécution de stop --force sur le serveur de base de données arrêtera le processus de sauvegarde sur le serveur de sauvegarde.

default: n
example: --force

Options générales

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: n
example: --allow-root

Option de configuration (--config)

Fichier de configuration pgBackRest.

Utilisez cette option pour spécifier un fichier de configuration différent du fichier par défaut.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

Option Chemin d’inclusion de configuration (--config-include-path)

Chemin vers les fichiers de configuration supplémentaires de pgBackRest.

Les fichiers de configuration se trouvant dans l’emplacement spécifié et ayant l’extension .conf seront concaténés au fichier de configuration de pgBackRest, ce qui donne un seul fichier de configuration.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration (--config-path)

Chemin de base des fichiers de configuration de pgBackRest.

Ce paramètre est utilisé pour remplacer le chemin de base par défaut pour les options --config et --config-include-path, sauf si ces dernières sont explicitement définies en ligne de commande.

Par exemple, passer uniquement --config-path=/conf/pgbackrest fait que la valeur par défaut de --config est définie à /conf/pgbackrest/pgbackrest.conf et que la valeur par défaut de --config-include-path est définie à /conf/pgbackrest/conf.d.

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

Option Chemin verrou (--lock-path)

Chemin où les fichiers verrou sont stockés.

Le chemin de verrouillage fournit un emplacement où pgBackRest peut créer des fichiers de verrouillage afin d’empêcher l’exécution simultanée d’opérations en conflit.

default: /tmp/pgbackrest
example: --lock-path=/backup/db/lock

Option de masque neutre (--neutral-umask)

Utilisez un umask neutre.

Définit le umask à 0000 afin que les modes du dépôt soient créés de manière cohérente. Le mode par défaut du répertoire est 0750 et le mode par défaut du fichier est 0640.

Pour utiliser le umask de l’utilisateur en cours, spécifiez neutral-umask=n dans le fichier de configuration ou --no-neutral-umask en ligne de commande.

default: y
example: --no-neutral-umask

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: --priority=19

Option stanza (--stanza)

Définit la stanza.

Une stanza est la configuration d’un cluster de base de données PostgreSQL qui définit son emplacement, la manière dont il sera sauvegardé, les options d’archivage, etc. La plupart des serveurs de base de données n’ont qu’un seul cluster PostgreSQL et donc une seule stanza, tandis que les serveurs de sauvegarde ont une stanza pour chaque cluster de base de données à sauvegarder.

Il est tentant de nommer la stanza en fonction du cluster principal, mais un nom plus pertinent décrit les bases de données contenues dans le cluster. Étant donné que le nom de la stanza sera utilisé pour le principal et toutes les répliques, il est préférable de choisir un nom qui décrit la fonction réelle du cluster, par exemple app ou dw, plutôt que le nom local du cluster, comme main ou prod.

example: --stanza=main

Options de journalisation

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: --log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: --log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: --log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: --no-log-timestamp

4.19 - Commande de vérification (verify)

Référence des options et du comportement de la commande pgBackRest verify.

Verify détermine si les sauvegardes et les archives présentes dans un dépôt sont valides.

Options de commande

Option de sortie (--output)

Type de sortie.

Les types de sortie suivants sont pris en charge :

  • none - Aucune vérification de sortie.
  • text - Informations de vérification de sortie affichées sur stdout.
default: none
example: --output=text

Définir l’option (--set)

Sauvegarde configurée pour vérification.

Vérifiez tous les fichiers de base de données et d’archive associés à l’ensemble de sauvegarde spécifié.

example: --set=20150131-153358F_20150131-153401I

Option verbeuse (--verbose)

Affichage détaillé.

L’option Verbose vaut par défaut false, ce qui fournit une réponse minimale contenant uniquement des informations importantes sur les erreurs dans le dépôt. La spécification de true fournit davantage d’informations sur ce qui a été vérifié avec succès.

default: n
example: --verbose

Options générales

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: n
example: --allow-root

Option Taille tampon (--buffer-size)

Taille du tampon pour les opérations d’E/S.

Taille de tampon utilisée pour les opérations de copie, de compression, de chiffrement et autres. Le nombre de tampons utilisés dépend des options, et chaque opération peut utiliser une mémoire supplémentaire, par exemple, la compression gz peut utiliser jusqu’à 256KiB de mémoire supplémentaire.

Les valeurs autorisées sont 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB et 16MiB.

default: 1MiB
example: --buffer-size=2MiB

Option de commande pgBackRest (--cmd)

Commande pgBackRest.

pgBackRest peut générer une chaîne de commande, par exemple lorsque la commande restore génère le paramètre restore_command. Dans ce cas, la commande utilisée pour exécuter le processus pgBackRest sera employée, sauf si l’option cmd est fournie.

AVERTISSEMENT :

Envelopper la commande pgBackRest peut entraîner un comportement imprévisible et n’est pas recommandé.

default: [path of executed pgbackrest binary]
example: --cmd=/var/lib/pgsql/bin/pgbackrest_wrapper.sh

Option de commande client SSH (--cmd-ssh)

Commande cliente SSH.

Utilisez une commande cliente SSH spécifique lorsque vous souhaitez utiliser une alternative ou que la commande ssh n’est pas disponible dans $PATH.

default: ssh
example: --cmd-ssh=/usr/bin/ssh

Option niveau de compression réseau (--compress-level-network)

Niveau de compression du réseau.

Définit le niveau de compression réseau lorsque compress-type=none et la commande ne sont pas exécutées sur le même hôte que le dépôt. La compression est utilisée pour réduire le trafic réseau. Lorsque compress-type est différent de none, le paramètre compress-level-network est ignoré et compress-level est utilisé à la place, afin que le fichier ne soit compressé qu’une seule fois.

default: 1
allowed: [-5, 12]
example: --compress-level-network=1

Option de configuration (--config)

Fichier de configuration pgBackRest.

Utilisez cette option pour spécifier un fichier de configuration différent du fichier par défaut.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --config=/conf/pgbackrest/pgbackrest.conf

Option Chemin d’inclusion de configuration (--config-include-path)

Chemin vers les fichiers de configuration supplémentaires de pgBackRest.

Les fichiers de configuration se trouvant dans l’emplacement spécifié et ayant l’extension .conf seront concaténés au fichier de configuration de pgBackRest, ce qui donne un seul fichier de configuration.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration (--config-path)

Chemin de base des fichiers de configuration de pgBackRest.

Ce paramètre est utilisé pour remplacer le chemin de base par défaut pour les options --config et --config-include-path, sauf si ces dernières sont explicitement définies en ligne de commande.

Par exemple, passer uniquement --config-path=/conf/pgbackrest fait que la valeur par défaut de --config est définie à /conf/pgbackrest/pgbackrest.conf et que la valeur par défaut de --config-include-path est définie à /conf/pgbackrest/conf.d.

default: CFGOPTDEF_CONFIG_PATH
example: --config-path=/conf/pgbackrest

Option d’expiration I/O (--io-timeout)

Délai d’attente d’E/S dépassé.

Délai d’attente, en secondes, utilisé pour les connexions et les opérations de lecture/écriture.

Notez que l’opération de lecture/écriture entière n’a pas besoin de se terminer dans ce délai d’attente, mais une certaine progression doit être réalisée, même si elle ne concerne qu’un seul octet.

default: 1m
allowed: [100ms, 1h]
example: --io-timeout=120

Option de masque neutre (--neutral-umask)

Utilisez un umask neutre.

Définit le umask à 0000 afin que les modes du dépôt soient créés de manière cohérente. Le mode par défaut du répertoire est 0750 et le mode par défaut du fichier est 0640.

Pour utiliser le umask de l’utilisateur en cours, spécifiez neutral-umask=n dans le fichier de configuration ou --no-neutral-umask en ligne de commande.

default: y
example: --no-neutral-umask

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: --priority=19

Option de processus maximum (--process-max)

Nombre maximal de processus à utiliser pour la compression ou le transfert.

Chaque processus effectuera une compression et un transfert afin d’accélérer l’exécution de la commande, mais ne définissez pas process-max trop élevé afin de ne pas affecter les performances de la base de données.

default: 1
allowed: [1, 999]
example: --process-max=4

Option délai d’attente du protocole (--protocol-timeout)

Délai d’attente du protocole.

Définit le délai d’attente, en secondes, durant lequel le processus local ou distant attend qu’un nouveau message soit reçu au niveau du protocole. Cela empêche les processus de rester bloqués indéfiniment en attente d’un message.

NOTE : L’option protocol-timeout doit être supérieure à l’option db-timeout.

default: 31m
allowed: [100ms, 7d]
example: --protocol-timeout=630

Option Keep Alive (--sck-keep-alive)

Activation du keep-alive.

Active les messages keep-alive sur les connexions socket.

default: y
example: --no-sck-keep-alive

Option stanza (--stanza)

Définit la stanza.

Une stanza est la configuration d’un cluster de base de données PostgreSQL qui définit son emplacement, la manière dont il sera sauvegardé, les options d’archivage, etc. La plupart des serveurs de base de données n’ont qu’un seul cluster PostgreSQL et donc une seule stanza, tandis que les serveurs de sauvegarde ont une stanza pour chaque cluster de base de données à sauvegarder.

Il est tentant de nommer la stanza en fonction du cluster principal, mais un nom plus pertinent décrit les bases de données contenues dans le cluster. Étant donné que le nom de la stanza sera utilisé pour le principal et toutes les répliques, il est préférable de choisir un nom qui décrit la fonction réelle du cluster, par exemple app ou dw, plutôt que le nom local du cluster, comme main ou prod.

example: --stanza=main

Option de nombre de connexions Keep Alive (--tcp-keep-alive-count)

Nombre de maintien de connexion.

Spécifie le nombre de messages TCP keep-alive pouvant être perdus avant que la connexion ne soit considérée comme inactive.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPCNT.

allowed: [1, 32]
example: --tcp-keep-alive-count=3

Option d’idle Keep Alive (--tcp-keep-alive-idle)

Délai d’inactivité pour la maintien de la connexion.

Spécifie la durée (en secondes) pendant laquelle aucune activité réseau ne se produit, après laquelle le système d’exploitation doit envoyer un message de maintien de connexion TCP.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPIDLE.

allowed: [1, 3600]
example: --tcp-keep-alive-idle=60

Option Intervalle Keep Alive (--tcp-keep-alive-interval)

Intervalle de temps pour la maintien de la connexion active.

Spécifie la durée (en secondes) après laquelle un message TCP keep-alive non reconnu doit être renvoyé.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPINTVL.

allowed: [1, 900]
example: --tcp-keep-alive-interval=30

Suites de chiffrement TLSv1.2 Option (--tls-cipher-12)

Suites de chiffrement TLSv1.2 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. L’exemple proposé constitue un choix raisonnable sauf si des exigences de sécurité spécifiques s’appliquent. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

Suites de chiffrement TLSv1.3 Option (--tls-cipher-13)

Suites de chiffrement TLSv1.3 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE : Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: --tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Options de journalisation

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: --log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: --log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: --log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: --log-path=/backup/db/log

Option de journalisation des sous-processus (--log-subprocess)

Activer la journalisation dans les sous-processus.

Activez la journalisation des fichiers pour tout sous-processus créé par ce processus, en utilisant le niveau de journalisation spécifié par log-level-file.

default: n
example: --log-subprocess

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: --no-log-timestamp

Options du mainteneur

Option de version PostgreSQL obligatoire (--pg-version-force)

Forcer la version de PostgreSQL.

La version de PostgreSQL spécifiée sera utilisée à la place de la version détectée automatiquement en lisant pg_control ou les en-têtes WAL. Cela est principalement utile pour les forks de PostgreSQL ou les versions de développement où ces valeurs diffèrent de la version de publication. La version rapportée par PostgreSQL via server_version_num doit correspondre à la version forcée.

AVERTISSEMENT :

Faites preuve de prudence en utilisant cette option, car pg_control et les en-têtes WAL seront toujours lus selon le format attendu pour la version spécifiée, c’est-à-dire le format issu de la version open-source officielle de PostgreSQL. Si la version fork ou développée modifie le format des champs sur lesquels pgBackRest dépend, cela entraînera un comportement imprévu. En général, cette option ne fonctionnera correctement que si le fork ajoute tous les membres de structure personnalisés après les membres standard de PostgreSQL.

example: --pg-version-force=15

Options du dépôt

Définir l’option dépôt (--repo)

Définir le dépôt.

Spécifiez le dépôt sur lequel une commande doit s’opérer.

Par exemple, cette option peut être utilisée pour effectuer une restauration à partir d’un dépôt spécifique, plutôt que de laisser pgBackRest choisir.

allowed: [1, 256]
example: --repo=1

Option de conteneur de dépôt Azure (--repo-azure-container)

Conteneur de dépôt Azure.

Conteneur Azure utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés dans la racine du conteneur en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par Azure dans le conteneur.

example: --repo1-azure-container=pg-backup

Type de clé du dépôt Azure (--repo-azure-key-type)

Type de clé du dépôt Azure.

Les types suivants sont pris en charge pour l’autorisation :

  • shared - Clé partagée
  • sas - Signature d’accès partagé
  • auto - Autorisation automatique à l’aide d’identités managées Azure
default: shared
example: --repo1-azure-key-type=sas

Option de style d’URI de dépôt Azure (--repo-azure-uri-style)

Style URI Azure.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte account.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer le compte aux URI.
default: host
example: --repo1-azure-uri-style=path

Type de chiffrement du dépôt (--repo-cipher-type)

Chiffrement utilisé pour chiffrer le dépôt.

Les types de chiffrement suivants sont pris en charge :

  • none - Le dépôt n’est pas chiffré
  • aes-256-cbc - Advanced Encryption Standard avec une longueur de clé de 256 bits

Notez que le chiffrement est toujours effectué côté client, même si le type de dépôt (par exemple S3) prend en charge le chiffrement.

default: none
example: --repo1-cipher-type=aes-256-cbc

Option de bac de dépôt GCS (--repo-gcs-bucket)

Dépôt de bucket GCS.

Dépôt GCS utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par GCS dans le bucket.

example: --repo1-gcs-bucket=/pg-backup

Option de point de terminaison du dépôt GCS (--repo-gcs-endpoint)

Point de terminaison du dépôt GCS.

Point d’accès utilisé pour se connecter au service de stockage. Peut être mis à jour pour utiliser un serveur local GCS ou un point d’accès alternatif.

default: storage.googleapis.com
example: --repo1-gcs-endpoint=localhost

Type de clé du dépôt GCS (--repo-gcs-key-type)

Type de clé du dépôt GCS.

Les types suivants sont pris en charge pour l’autorisation :

  • auto - Autoriser à l’aide du compte de service de l’instance.
  • service - Compte de service à partir d’une clé stockée localement.
  • token - À utiliser pour les tests locaux, par exemple fakegcs.

Lorsque repo-gcs-key-type=service, les identifiants seront rechargés lorsque le jeton d’authentification sera renouvelé.

default: service
example: --repo1-gcs-key-type=auto

Option ID du projet du dépôt GCS (--repo-gcs-user-project)

Identifiant du projet GCS.

ID du projet GCS utilisé pour déterminer la facturation des requêtes.

example: --repo1-gcs-user-project=my-project

Option hôte du dépôt (--repo-host)

Hôte du dépôt lors de l’opération à distance.

Lors de la sauvegarde et de l’archivage vers un système de fichiers monté localement, ce paramètre n’est pas requis.

example: --repo1-host=repo1.domain.com

Nom obsolète : backup-host

Option du fichier de l’autorité de certification hôte du dépôt (--repo-host-ca-file)

Fichier de l’autorité de certification du serveur de dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte du dépôt.

example: --repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’autorité de certification du dépôt (--repo-host-ca-path)

Chemin de l’autorité de certification du serveur de dépôt.

Utilisez un chemin de certificat d’autorité (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte du dépôt.

example: --repo1-host-ca-path=/etc/pki/tls/certs

Option de fichier de certificat d’hôte du dépôt (--repo-host-cert-file)

Fichier de certificat d’hôte du dépôt.

Envoyé à l’hôte du dépôt pour prouver l’identité du client.

example: --repo1-host-cert-file=/path/to/client.crt

Option de commande hôte du dépôt (--repo-host-cmd)

Hôte du dépôt commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes local et de dépôt. Si non défini, la commande de dépôt sera définie de la même manière que celle de l’hôte local.

default: [path of executed pgbackrest binary]
example: --repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : backup-cmd

Option de configuration de l’hôte du dépôt (--repo-host-config)

Fichier de configuration du serveur de dépôt pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le fichier de configuration de l’hôte du dépôt se trouve dans un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: --repo1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : sauvegarde-config

Option de chemin d’inclusion de configuration d’hôte de dépôt (--repo-host-config-include-path)

Configuration du serveur de dépôt pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration de l’hôte du dépôt est différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: --repo1-host-config-include-path=/conf/pgbackrest/conf.d

Chemin de configuration de l’hôte du dépôt (--repo-host-config-path)

Chemin de configuration du serveur de dépôt pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin de configuration de l’hôte du dépôt est différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: --repo1-host-config-path=/conf/pgbackrest

Option de fichier de clé hôte du dépôt (--repo-host-key-file)

Fichier de clé hôte du dépôt.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: --repo1-host-key-file=/path/to/client.key

Option de port hôte du dépôt (--repo-host-port)

Port de l’hôte du dépôt lorsque repo-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole du serveur du dépôt.

NOTE : Lorsque repo-host-type=ssh, il n’existe pas de valeur par défaut pour repo-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: --repo1-host-port=25

Nom obsolète : backup-ssh-port

Type de protocole d’hôte de dépôt (--repo-host-type)

Type de protocole d’hôte de dépôt.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: --repo1-host-type=tls

Option d’utilisateur hôte de dépôt (--repo-host-user)

Utilisateur hôte du dépôt lorsque repo-host est défini.

Définit l’utilisateur utilisé pour les opérations sur l’hôte du dépôt. Il est préférable que ce ne soit pas l’utilisateur postgres, mais plutôt un autre utilisateur tel que pgbackrest. Si PostgreSQL s’exécute sur l’hôte du dépôt, l’utilisateur postgres peut être ajouté au groupe pgbackrest afin d’avoir des permissions de lecture sur le dépôt sans pouvoir accidentellement le modifier.

default: pgbackrest
example: --repo1-host-user=repo-user

Nom obsolète : backup-user

Option Chemin du dépôt (--repo-path)

Chemin où les sauvegardes et l’archive sont stockées.

Le dépôt est l’emplacement où pgBackRest stocke les sauvegardes et les archives des segments WAL.

Il peut être difficile de prévoir à l’avance l’espace nécessaire. La meilleure approche consiste à effectuer quelques sauvegardes, puis à noter la taille des différents types de sauvegardes (pleines, incrémentielles, différentielles) et à mesurer la quantité de WAL générée par jour. Cela vous donnera une idée générale de l’espace requis, bien que les besoins évoluent probablement au fil du temps avec l’évolution de votre base de données.

default: /var/lib/pgbackrest
example: --repo1-path=/backup/db/backrest

Option de bac de dépôt S3 (--repo-s3-bucket)

Dépôt S3.

Dépôt S3 utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par AWS dans le bucket.

example: --repo1-s3-bucket=pg-backup

Option de point de terminaison du dépôt S3 (--repo-s3-endpoint)

Point de terminaison du dépôt S3.

Le point de terminaison AWS doit être valide pour la région sélectionnée.

Pour les configurations personnalisées ou les tests, les options repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port, et repo-storage-verify-tls peuvent être utiles.

example: --repo1-s3-endpoint=s3.amazonaws.com

Type de clé du dépôt S3 (--repo-s3-key-type)

Type de clé pour le dépôt S3.

Les types suivants sont pris en charge :

  • shared - Clés partagées
  • auto - Récupérer automatiquement les identifiants temporaires
  • web-id - Récupérer automatiquement les identifiants d’identité web
  • pod-id - Récupérer automatiquement les identifiants d’identité de pod EKS
  • process - Récupérer les identifiants en exécutant un processus
default: shared
example: --repo1-s3-key-type=auto

Option ID de clé KMS pour dépôt S3 (--repo-s3-kms-key-id)

Clé KMS du dépôt S3.

Active le chiffrement côté serveur S3 en utilisant la clé du service de gestion des clés AWS spécifiée.

example: --repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

Option de commande du processus d’authentification S3 (--repo-s3-process-cmd)

Commande du processus d’authentification S3.

Commande (et arguments facultatifs) à exécuter pour récupérer les identifiants temporaires S3. Le premier élément de la liste est la commande, les éléments suivants sont passés en tant que paramètres.

Le processus doit produire un JSON contenant les champs AccessKeyId, SecretAccessKey, SessionToken et Expiration. Les identifiants seront automatiquement actualisés avant l’expiration. Voir Process Credential Provider pour les détails du format.

example: --repo1-s3-process-cmd=/usr/local/bin/get-credentials --repo1-s3-process-cmd=--role --repo1-s3-process-cmd=my-role

Option de région du dépôt S3 (--repo-s3-region)

Région du dépôt S3.

La région AWS où le bucket a été créé.

example: --repo1-s3-region=us-east-1

Option Requesteur Payant pour le dépôt S3 (--repo-s3-requester-pays)

Dépôt S3 payeur de la demande.

Active le paiement par le demandeur S3.

default: n
example: --no-repo1-s3-requester-pays

Option de rôle du dépôt S3 (--repo-s3-role)

Rôle du dépôt S3.

Le nom du rôle AWS (pas le nom ARN complet) utilisé pour récupérer les identifiants temporaires lorsque repo-s3-key-type=auto.

example: --repo1-s3-role=authrole

Option de service de dépôt S3 (--repo-s3-service)

Service de signature S3.

Le service de signature S3 utilisé dans l’authentification SigV4. La valeur par défaut est s3 pour les points d’accès S3 standards. À définir sur s3-outposts lors de l’utilisation d’un point d’accès S3 Outposts.

default: s3
example: --repo1-s3-service=s3-outposts

Option de point de terminaison STS du dépôt S3 (--repo-s3-sts-host)

Point de terminaison STS du dépôt S3.

Point de terminaison STS utilisé pour récupérer des identifiants temporaires lorsque repo-s3-key-type=web-id est configuré. Définissez-le sur un point de terminaison régional (par exemple sts.us-east-1.amazonaws.com) pour utiliser STS régional, ce qui peut être nécessaire pour les régions GovCloud, Chine, ou pour réduire la latence.

default: sts.amazonaws.com
example: --repo1-s3-sts-host=sts.us-east-1.amazonaws.com

Option de style d’URI de dépôt S3 (--repo-s3-uri-style)

Style d’URI S3.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte bucket.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer les URI par le répertoire.
default: host
example: --repo1-s3-uri-style=path

Option hôte du dépôt SFTP (--repo-sftp-host)

Hôte du dépôt SFTP.

Hôte SFTP contenant le dépôt.

example: --repo1-sftp-host=sftprepo.domain

Fingerprint de l’hôte du dépôt SFTP (--repo-sftp-host-fingerprint)

Empreinte du serveur hôte du dépôt SFTP.

La génération de l’empreinte d’hôte du dépôt SFTP doit correspondre à repo-sftp-host-key-hash-type. Générez l’empreinte via awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Les clés d’hôte SSH se trouvent normalement dans le répertoire /etc/ssh.

example: --repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

Type d’option de vérification de la clé hôte SFTP (--repo-sftp-host-key-check-type)

Type de vérification de la clé hôte SFTP.

Les types de vérification de clé d’hôte SFTP suivants sont pris en charge :

  • strict - pgBackRest n’ajoutera jamais automatiquement les clés d’hôte au fichier ~/.ssh/known_hosts, et refusera de se connecter aux hôtes dont la clé d’hôte a changé ou n’est pas trouvée dans les fichiers known hosts. Cette option oblige l’utilisateur à ajouter manuellement tous les nouveaux hôtes.
  • accept-new - pgBackRest ajoutera automatiquement les nouvelles clés d’hôte au fichier known hosts de l’utilisateur, mais n’autorisera pas les connexions aux hôtes dont la clé d’hôte a changé.
  • fingerprint - pgBackRest vérifiera la clé d’hôte contre l’empreinte spécifiée par l’option repo-sftp-host-fingerprint.
  • none - aucune vérification de clé d’hôte ne sera effectuée.
default: strict
example: --repo1-sftp-host-key-check-type=accept-new

Type de hachage de la clé hôte du dépôt SFTP (--repo-sftp-host-key-hash-type)

Type de hachage de la clé d’hôte du dépôt SFTP.

Type de hachage de la clé hôte du dépôt SFTP. Déclare le type de hachage à utiliser pour calculer le hachage de la clé hôte du système distant au démarrage SSH. Les versions plus récentes de libssh2 prennent en charge sha256 en plus de md5 et sha1.

example: --repo1-sftp-host-key-hash-type=sha256

Option de port hôte du dépôt SFTP (--repo-sftp-host-port)

Port hôte du dépôt SFTP.

Port hôte du dépôt SFTP.

default: 22
allowed: [1, 65535]
example: --repo1-sftp-host-port=22

Option utilisateur hôte dépôt SFTP (--repo-sftp-host-user)

Utilisateur hôte du dépôt SFTP.

Utilisateur sur l’hôte utilisé pour stocker le dépôt.

example: --repo1-sftp-host-user=pg-backup

Option fichier Hôtes SFTP connus (--repo-sftp-known-host)

Fichier d’hôtes SFTP connus.

Fichier known hosts à consulter pour rechercher une correspondance avec un hôte SFTP lors de l’authentification. Si non spécifié, pgBackRest recherchera par défaut dans ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts et /etc/ssh/ssh_known_hosts2. Si configuré avec un ou plusieurs chemins de fichier, pgBackRest recherchera dans ces fichiers une correspondance. Les chemins de fichier doivent être complets ou commencer par un tilde. L’option repo-sftp-known-host peut être spécifiée plusieurs fois pour indiquer plusieurs fichiers known hosts à consulter. Pour utiliser la vérification du fichier known hosts, l’option repo-sftp-host-fingerprint ne doit pas être définie. Voir également l’option repo-sftp-host-check-type.

example: --repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

Option fichier de clé privée du dépôt SFTP (--repo-sftp-private-key-file)

Fichier de clé privée SFTP.

Fichier de clé privée SFTP utilisé pour l’authentification.

example: --repo1-sftp-private-key-file=~/.ssh/id_ed25519

Option de fichier de clé publique du dépôt SFTP (--repo-sftp-public-key-file)

Fichier de clé publique SFTP.

Fichier de clé publique SFTP utilisé pour l’authentification. Facultatif si compilé contre OpenSSL, obligatoire si compilé contre une autre bibliothèque.

example: --repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

Option du fichier CA du dépôt de stockage (--repo-storage-ca-file)

Fichier de certificat d’autorité de certification pour le dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Noms obsolètes : repo-azure-ca-file, repo-s3-ca-file

Option de chemin du certificat CA TLS pour le dépôt (--repo-storage-ca-path)

Chemin du certificat d’autorité de certification du dépôt.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: --repo1-storage-ca-path=/etc/pki/tls/certs

Noms obsolètes : repo-azure-ca-path, repo-s3-ca-path

Option hôte de stockage du dépôt (--repo-storage-host)

Hôte de stockage du dépôt.

Se connecter à un hôte autre que le point de terminaison de stockage (par exemple S3, Azure). Cela est généralement utilisé pour les tests.

example: --repo1-storage-host=127.0.0.1

Noms obsolètes : repo-azure-host, repo-s3-host

Option de port du stockage du dépôt (--repo-storage-port)

Port du stockage du dépôt.

Port à utiliser lors de la connexion au point de terminaison du stockage (par exemple S3, Azure) ou à l’hôte (le cas échéant).

default: 443
allowed: [1, 65535]
example: --repo1-storage-port=9000

Noms obsolètes : repo-azure-port, repo-s3-port

Option d’étiquette de stockage du dépôt (--repo-storage-tag)

Étiquette(s) de stockage du dépôt.

Spécifiez les balises à ajouter aux objets lorsque le dépôt est un magasin d’objets (par exemple, S3). L’option peut être répétée pour ajouter plusieurs balises.

Il n’existe aucune fonctionnalité dans pgBackRest permettant de modifier ces balises ; veillez donc à les définir correctement avant d’exécuter stanza-create afin d’assurer une cohérence des balises dans l’ensemble du dépôt.

example: --repo1-storage-tag=key1=value1

Option de taille de morceau de chargement du dépôt (--repo-storage-upload-chunk-size)

Taille du morceau de chargement du dépôt.

Les magasins d’objets tels que S3 permettent de télécharger des fichiers par morceaux lorsque le fichier est trop volumineux pour être stocké en mémoire. Même si le fichier peut être stocké en mémoire, il est plus efficace en mémoire de limiter la quantité de mémoire utilisée pour les téléchargements.

Une taille de morceau plus élevée entraîne généralement de meilleures performances, car elle réduit le nombre de requêtes de téléchargement et permet de télécharger plus de fichiers en une seule requête plutôt qu’en morceaux. Le désavantage est que la consommation mémoire sera plus élevée, et comme la mémoire tampon de morceau doit être allouée par processus, des valeurs plus élevées de process-max entraînent une consommation mémoire globale plus importante.

Notez que les tailles de morceau valides varient selon le type de stockage et la plateforme. Par exemple, AWS S3 impose une taille minimale de morceau de 5MiB. La terminologie relative à la taille du morceau varie selon le type de stockage ; utilisez donc « part size » pour AWS S3, « chunk size » pour GCS et « block size » pour Azure lorsque vous recherchez les valeurs minimales ou maximales.

Si un fichier est plus grand que 1GiB (la taille maximale que PostgreSQL crée par défaut), la taille de tranche sera augmentée progressivement jusqu’à la valeur maximale autorisée afin de terminer le téléchargement du fichier.

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: --repo1-storage-upload-chunk-size=16MiB

Option de vérification du certificat de stockage du dépôt (--repo-storage-verify-tls)

Vérification du certificat du dépôt de stockage.

Cette option permet d’activer/désactiver la vérification du certificat TLS du serveur de stockage (par exemple, S3, Azure). La désactivation ne doit être utilisée que pour des tests ou d’autres scénarios où un certificat a été auto-signé.

default: y
example: --no-repo1-storage-verify-tls

Noms obsolètes : repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

Heure cible pour l’option dépôt (--repo-target-time)

Heure cible pour le dépôt.

Le temps cible définit l’instant auquel les commandes lisent un dépôt sur un stockage versionné. Cela permet à la commande de lire le dépôt tel qu’il était à un instant donné, afin de récupérer des données supprimées ou corrompues par une erreur utilisateur ou un logiciel malveillant.

Le stockage versionné est pris en charge par S3, GCS et Azure, mais il est généralement désactivé par défaut. En plus d’activer la versioning, il peut être utile d’activer le verrouillage d’objets pour S3, ou la suppression progressive pour GCS ou Azure.

Lorsque l’option repo-target-time est spécifiée, l’option repo doit également être fournie. Il est probable que tous les types de dépôt ne prennent pas en charge la versionning, et il est généralement préférable de cibler un seul dépôt pour la récupération.

Notez que les comparaisons avec l’horodatage de stockage sont <= à l’horodatage fourni et que les millisecondes sont tronquées de l’horodatage lorsqu’elles sont fournies.

example: --repo-target-time=2024-08-08 12:12:12+00

Option de type de dépôt (--repo-type)

Type de stockage utilisé pour le dépôt.

Les types de dépôt suivants sont pris en charge :

  • azure - Service de stockage Blob Azure
  • cifs - Comme posix, mais désactive les liens et les fsyncs de répertoire
  • gcs - Google Cloud Storage
  • posix - Systèmes de fichiers conformes à Posix
  • s3 - AWS Simple Storage Service
  • sftp - Protocole de transfert de fichiers sécurisé

Lorsqu’un montage NFS est utilisé comme dépôt posix, les mêmes règles s’appliquent à pgBackRest qu’indiquées dans la documentation PostgreSQL : Création d’un cluster de base de données - Systèmes de fichiers .

default: posix
example: --repo1-type=cifs

4.20 - Commande Version (version)

Référence des options et du comportement de la commande pgBackRest version.

Affiche la version de pgBackRest installée.

Options de commande

Option de sortie (--output)

Type de sortie.

Les types de sortie suivants sont pris en charge :

  • text - Affiche la version installée de pgBackRest sous forme de texte.
  • num - Affiche la version installée de pgBackRest sous forme d’entier.
default: text
example: --output=num

5 - Référence de configuration

Référence complète de configuration pgBackRest pour toutes les options, y compris l’archive, la sauvegarde, le dépôt et les options de stockage cloud.

Introduction

pgBackRest peut être utilisé entièrement à l’aide de paramètres en ligne de commande, mais un fichier de configuration est plus pratique pour les installations complexes ou celles qui définissent de nombreux paramètres. L’emplacement par défaut du fichier de configuration est /etc/pgbackrest/pgbackrest.conf. Si aucun fichier n’existe à cet emplacement, l’ancien emplacement par défaut de /etc/pgbackrest.conf sera vérifié.

Les types d’option suivants sont utilisés :

Chaîne : Une chaîne de texte, couramment utilisée comme identifiant, mot de passe, etc.

Exemple de ligne de commande : --stanza=demo
Exemple de fichier de configuration : repo1-cipher-pass=zWaf6XtpjIVZC5444yXB...

Chemin : Utilisé pour identifier de manière unique un emplacement dans une structure de répertoires. Les chemins doivent commencer par /, la double occurrence de // n’est pas autorisée, et aucun / final n’est attendu.

Exemple de ligne de commande : --repo1-path=/var/lib/pgbackrest
Exemple de fichier de configuration : repo1-path=/var/lib/pgbackrest

Booléen : Active ou désactive l’option. Seules les valeurs y/n sont autorisées.

Exemples de ligne de commande : --start-fast, --no-start-fast, --start-fast=y, --start-fast=n
Exemples de fichier de configuration : start-fast=y, start-fast=n

Entier : Utilisé pour les ports, les nombres de rétention ou de réessais, le nombre de processus parallèles autorisés, etc.

Exemple de ligne de commande : --compress-level=3
Exemple de fichier de configuration : pg1-port=5432

Taille : Utilisée pour les tailles de tampon, l’utilisation du disque, etc. La taille peut être spécifiée en octets (par défaut) ou en KiB, MiB, GiB, TiB ou PiB, où le multiplicateur est une puissance de 1024. Par exemple, la valeur insensible à la casse 5GiB (ou 5GB, 5g) peut être utilisée à la place de 5368709120. Les valeurs fractionnaires telles que 2,5GiB ne sont pas autorisées ; utilisez 2560MiB à la place.

Exemple de ligne de commande : --archive-get-queue-max=1GiB
Exemple de fichier de configuration : buffer-size=2MiB

Temps : Durée en secondes.

Exemple de ligne de commande : --io-timeout=90
Exemple de fichier de configuration : db-timeout=600

Liste : L’option peut être fournie plusieurs fois.

Exemple de ligne de commande : --db-exclude=db1 --db-exclude=db2 --db-exclude=db5
Exemple de fichier de configuration, chacun sur sa propre ligne : db-exclude=db1 db-exclude=db2 db-exclude=db5

Clé/Valeur : L’option peut être fournie plusieurs fois au format key=value.

Exemple de ligne de commande : --tablespace-map=ts_01=/db/ts_01 --tablespace-map=ts_02=/db/ts_02
Exemple de fichier de configuration, chacun sur sa propre ligne : tablespace-map=ts_01=/db/ts_01 tablespace-map=ts_02=/db/ts_02


Options d’archive

La section archive définit les options pour les commandes archive-push et archive-get.

Option d’archivage asynchrone (--archive-async)

Envoyer/récupérer les segments WAL de manière asynchrone.

Active l’exécution asynchrone pour les commandes archive-push et archive-get.

L’opération asynchrone est plus efficace car elle permet de réutiliser les connexions et de tirer parti de la parallélisation. Consultez les options spool-path, archive-get-queue-max et archive-push-queue-max pour plus d’informations.

default: n
example: archive-async=y

Taille maximale de la file d’attente de récupération d’archive (--archive-get-queue-max)

Taille maximale de la file d’attente archive-get de pgBackRest.

Spécifie la taille maximale de la file d’attente archive-get lorsque archive-async est activé. La file est stockée dans spool-path et sert à accélérer la fourniture des WAL à PostgreSQL.

default: 128MiB
allowed: [0B, 4PiB]
example: archive-get-queue-max=1GiB

Option de réessai du segment WAL manquant (--archive-missing-retry)

Réessayer le segment WAL manquant

Réessayer un segment WAL précédemment signalé comme manquant par la commande archive-get en mode asynchrone. Cela empêche l’utilisation de notifications provenant d’une restauration antérieure dans le répertoire de stockage temporaire, qui pourrait entraîner une défaillance de récupération si la cohérence n’a pas été atteinte.

Désactiver cette option permet à PostgreSQL de reconnaître plus fiablement l’arrivée à la fin du WAL dans l’archive, ce qui permet de passer au streaming depuis le principal. Avec les réessais activés, un flux continu de WAL archivé fait que PostgreSQL continue de récupérer le WAL depuis l’archive au lieu de basculer vers le streaming.

Lorsque cette option est désactivée, il est important de s’assurer que le chemin d’épissage de la stanza est vide. La commande restore effectue automatiquement cette opération si le chemin d’épissage est configuré au moment de la restauration. Sinon, il incombe à l’utilisateur de s’assurer que le chemin d’épissage est vide.

default: y
example: archive-missing-retry=n

Option taille lot de poussée d’archive (--archive-push-batch-size)

Quantité maximale de WAL à transférer par exécution asynchrone.

En mode asynchrone, le processus archive-push transmet tous les segments WAL prêts en une seule exécution. Comme archive-push-queue-max n’est vérifié qu’au début de chaque exécution, une exécution traitant un très grand nombre de segments peut faire croître la file d’attente bien au-delà de la limite avant qu’elle ne soit à nouveau vérifiée.

Cette option limite la quantité de WAL traitée par exécution, afin que le processus se termine et soit relancé par le prochain archive-push, qui vérifie à nouveau la file d’attente. Des valeurs plus faibles entraînent une vérification plus fréquente de la file d’attente, au prix d’un démarrage plus fréquent du processus asynchrone. La valeur est arrondie vers le bas à un nombre entier de segments WAL, mais au moins un segment est toujours traité.

default: 16GiB
allowed: [1MiB, 4PiB]
example: archive-push-batch-size=1GiB

Taille maximale de la file d’attente d’archivage en écriture (--archive-push-queue-max)

Taille maximale de la file d’attente d’archive PostgreSQL.

Une fois la limite atteinte, les actions suivantes se produiront :

  • pgBackRest notifiera PostgreSQL que le WAL a été correctement archivé, puis LE SUPPRIMERA.
  • Un avertissement sera affiché dans le journal de PostgreSQL.

Si cela se produit, le flux des journaux d’archive sera interrompu et la restauration à un point précis (PITR) ne sera plus possible au-delà de ce point. Une nouvelle sauvegarde sera nécessaire pour rétablir la capacité de restauration complète.

En mode asynchrone, toute la file d’attente sera supprimée afin d’éviter que des segments de WAL ne passent avant que la limite de file ne soit à nouveau dépassée.

En mode asynchrone, cette limite n’est vérifiée qu’au démarrage de chaque exécution de archive-push, de sorte que la file d’attente puisse dépasser cette limite au cours d’une même exécution. Réduisez archive-push-batch-size afin de vérifier la file d’attente plus fréquemment.

Ce mécanisme a pour but d’éviter que le volume de journalisation ne soit saturé, ce qui fermerait complètement PostgreSQL. Il est préférable de perdre une sauvegarde que de faire tomber PostgreSQL.

allowed: [0B, 4PiB]
example: archive-push-queue-max=1TiB

Nom obsolète : archive-queue-max

Option délai d’archivage (--archive-timeout)

Délai d’attente de l’archive.

Définir le délai maximal, en secondes, d’attente pour chaque segment WAL afin qu’il atteigne le dépôt d’archive pgBackRest. Ce délai s’applique aux commandes check et backup lors de l’attente des segments WAL nécessaires à la cohérence de la sauvegarde.

default: 1m
allowed: [100ms, 1d]
example: archive-timeout=30

Options de sauvegarde

La section backup définit les paramètres liés à la sauvegarde.

Option d’annotation de sauvegarde (--annotation)

Ajoutez des paires clé/valeur définies par l’utilisateur à la sauvegarde.

Les utilisateurs peuvent attacher des paires clé/valeur explicatives à la sauvegarde. Cette option peut être utilisée plusieurs fois pour attacher plusieurs annotations.

Les annotations sont produites par la sortie texte de la commande info lorsque une sauvegarde est spécifiée avec --set, et apparaissent toujours dans la sortie JSON.

example: annotation=source="Sunday backup for website database"

Option de vérification de l’archive (--archive-check)

Vérifiez que les segments WAL sont présents dans l’archive avant la fin de la sauvegarde.

Vérifie que tous les segments WAL nécessaires pour rendre la sauvegarde cohérente sont présents dans l’archive WAL. Il est recommandé de laisser cette option par défaut, sauf si vous utilisez une autre méthode d’archivage.

Cette option doit être activée si archive-copy est activé.

default: y
example: archive-check=n

Option de copie d’archive (--archive-copy)

Copiez les segments WAL nécessaires à la cohérence vers la sauvegarde.

Cette option, légèrement paranoïaque, protège contre les corruption dans l’archive des segments WAL en stockant directement dans la sauvegarde les segments WAL nécessaires à la cohérence. Les segments WAL sont toujours stockés dans l’archive, donc cette option utilise un espace supplémentaire.

Il est préférable que les commandes archive-push et backup utilisent le même compress-type (par exemple lz4) lors de l’utilisation de cette option. Sinon, les segments WAL devront être récompressés avec le compress-type utilisé par la sauvegarde, ce qui peut s’avérer assez coûteux selon la quantité de WAL générée pendant la sauvegarde.

Lors d’une restauration, les segments WAL seront présents dans pg_xlog/pg_wal et PostgreSQL les utilisera en priorité plutôt que d’appeler restore_command.

L’option archive-check doit être activée si archive-copy est activé.

default: n
example: archive-copy=y

Vérifier l’option Mode archive (--archive-mode-check)

Vérifiez le paramètre PostgreSQL archive_mode.

Activé par défaut, cette option interdit PostgreSQL archive_mode=always.

Les segments WAL poussés depuis un serveur de secours peuvent être logiquement identiques aux segments WAL poussés depuis le principal, mais présenter des sommes de contrôle différentes. Il est recommandé de désactiver l’archivage depuis plusieurs sources afin d’éviter les conflits.

AVERTISSEMENT :

Si cette option est désactivée, il est essentiel de s’assurer qu’un seul archivage écrit dans le dépôt via la commande archive-push.

default: y
example: archive-mode-check=n

Option de sauvegarde depuis une instance de secours (--backup-standby)

Sauvegarde à partir du cluster de secours.

Activez la sauvegarde depuis le serveur de secours afin de réduire la charge sur le cluster principal. Cette option nécessite que les hôtes principal et de secours soient configurés.

Les modes suivants sont pris en charge :

  • y - un serveur standby est obligatoire pour la sauvegarde.
  • prefer - effectuer la sauvegarde depuis le serveur standby s’il est disponible, sinon depuis le primaire.
  • n - effectuer la sauvegarde uniquement depuis le primaire.
default: n
example: backup-standby=y

Option sommes de contrôle (--checksum-page)

Valider les sommes de contrôle des pages de données.

Active la validation de toutes les sommes de contrôle des pages de données lors de la sauvegarde d’un cluster. Cette option est activée automatiquement lorsque les sommes de contrôle des pages de données sont activées sur le cluster.

Les échecs de validation de la somme de contrôle n’interrompent pas une sauvegarde. En revanche, des avertissements sont émis dans le journal (et sur la console avec les paramètres par défaut) et la liste des pages invalides est stockée dans le manifeste de sauvegarde.

example: checksum-page=n

Option d’exclusion de chemins/fichiers (--exclude)

Exclure les chemins ou fichiers de la sauvegarde.

Toutes les exclusions sont relatives à $PGDATA. Si l’exclusion se termine par /, seuls les fichiers du répertoire spécifié seront exclus, par exemple --exclude=junk/ exclura tous les fichiers du répertoire $PGDATA/junk tout en conservant le répertoire lui-même. Si l’exclusion ne se termine pas par /, le fichier peut correspondre exactement à l’exclusion ou correspondre à l’exclusion suivie de /, par exemple --exclude=junk exclura le répertoire $PGDATA/junk ainsi que tous les fichiers qu’il contient.

Faites attention à utiliser cette fonctionnalité — il est très facile d’exclure quelque chose de crucial qui rendra la sauvegarde inconsistante. Assurez-vous de tester vos restaurations !

Tous les fichiers exclus seront journalisés au niveau info ainsi que la règle d’exclusion. Vérifiez soigneusement la liste des fichiers exclus afin de vous assurer qu’aucun fichier inattendu n’est exclu.

NOTE :

Les exclusions ne sont pas prises en compte lors d’une restauration incrémentielle. Tous les fichiers/répertoires exclus lors de la sauvegarde seront supprimés lors de la restauration incrémentielle.

Cette option ne doit pas être utilisée pour exclure les journaux PostgreSQL d’une sauvegarde. Les journaux peuvent être déplacés hors du répertoire PGDATA à l’aide de la configuration PostgreSQL log_directory, ce qui permet de conserver les journaux après une restauration.

Plusieurs exclusions peuvent être spécifiées en ligne de commande ou dans un fichier de configuration.

example: exclude=junk/

Option d’expiration automatique (--expire-auto)

Exécuter automatiquement la commande expire après une sauvegarde réussie.

L’option est activée par défaut. Faites preuve de prudence en la désactivant, car cela entraînera le maintien indéfini de toutes les sauvegardes et archives, ce qui pourrait faire épuiser l’espace disponible dans le dépôt. La commande expire devra être exécutée régulièrement afin d’éviter ce problème.

Lorsque expire est exécuté automatiquement après une sauvegarde réussie, il utilise la configuration de la commande backup, de sorte que les options définies uniquement dans une section de commande expire (par exemple [global:expire]) ne sont pas prises en compte. Pour appliquer une configuration spécifique à expire, désactivez cette option et exécutez la commande expire séparément.

default: y
example: expire-auto=y

Option seuil d’enregistrement du manifeste (--manifest-save-threshold)

Seuil de sauvegarde manifeste pendant la sauvegarde.

Définit la fréquence à laquelle le manifeste sera enregistré pendant une sauvegarde. Enregistrer le manifeste est important car il stocke les sommes de contrôle et permet au fonctionnement de la reprise d’être efficace. La seuil réel utilisé est le plus élevé entre 1 % de la taille de la sauvegarde et manifest-save-threshold.

default: 1GiB
allowed: [1B, 1TiB]
example: manifest-save-threshold=8GiB

Option Résumé (--resume)

Permet la reprise d’une sauvegarde interrompue.

Définit si la fonction de reprise est activée. La reprise peut réduire considérablement le temps nécessaire pour exécuter une sauvegarde après un échec précédent de la même nature. Toutefois, elle ajoute de la complexité, aussi peut-il être souhaitable de la désactiver dans les environnements qui n’en ont pas besoin.

default: y
example: resume=n

Option Démarrage rapide (--start-fast)

Forcer un checkpoint pour démarrer la sauvegarde plus rapidement.

Force un checkpoint (en passant y au paramètre fast de la fonction de démarrage de la sauvegarde) afin que la sauvegarde commence immédiatement. Sinon, la sauvegarde commencera après le prochain checkpoint régulier.

default: n
example: start-fast=y

Options générales

La section general définit les options communes à de nombreux commandes.

Autoriser l’exécution en tant qu’utilisateur root (--allow-root)

Permettre à la commande de s’exécuter en tant qu’utilisateur root.

Par défaut, seul la commande restore peut être exécutée en tant qu’utilisateur root, car elle est conçue pour gérer soigneusement les propriétés des fichiers. Exécuter d’autres commandes en tant que root risque de créer des fichiers (par exemple dans le dépôt) dont le propriétaire est root, rendant ces fichiers inaccessibles à l’utilisateur PostgreSQL, ce qui entraîne l’échec des commandes ultérieures.

Activez cette option pour exécuter une commande en tant qu’utilisateur root malgré tout. Toutefois, il est bien préférable d’exécuter pgBackRest en tant qu’utilisateur propriétaire du dépôt et du cluster PostgreSQL.

default: n
example: allow-root=y

Option Taille tampon (--buffer-size)

Taille du tampon pour les opérations d’E/S.

Taille de tampon utilisée pour les opérations de copie, de compression, de chiffrement et autres. Le nombre de tampons utilisés dépend des options, et chaque opération peut utiliser une mémoire supplémentaire, par exemple, la compression gz peut utiliser jusqu’à 256KiB de mémoire supplémentaire.

Les valeurs autorisées sont 16KiB, 32KiB, 64KiB, 128KiB, 256KiB, 512KiB, 1MiB, 2MiB, 4MiB, 8MiB et 16MiB.

default: 1MiB
example: buffer-size=2MiB

Option de commande pgBackRest (--cmd)

Commande pgBackRest.

pgBackRest peut générer une chaîne de commande, par exemple lorsque la commande restore génère le paramètre restore_command. Dans ce cas, la commande utilisée pour exécuter le processus pgBackRest sera employée, sauf si l’option cmd est fournie.

AVERTISSEMENT :

Envelopper la commande pgBackRest peut entraîner un comportement imprévisible et n’est pas recommandé.

default: [path of executed pgbackrest binary]
example: cmd=/var/lib/pgsql/bin/pgbackrest_wrapper.sh

Option de commande client SSH (--cmd-ssh)

Commande cliente SSH.

Utilisez une commande cliente SSH spécifique lorsque vous souhaitez utiliser une alternative ou que la commande ssh n’est pas disponible dans $PATH.

default: ssh
example: cmd-ssh=/usr/bin/ssh

Option de compression (--compress)

Utilisez la compression des fichiers.

Les fichiers de sauvegarde sont compatibles avec les outils de compression en ligne de commande.

Cette option est désormais obsolète. L’option compress-type doit être utilisée à la place.

default: y
example: compress=n

Option niveau de compression (--compress-level)

Niveau de compression du fichier.

Définit le niveau à utiliser pour la compression des fichiers lorsque compress-type est différent de none ou compress=y (obsolète).

default (depending on compress-type):
    bz2 - 9
    gz - 6
    lz4 - 1
    zst - 3

allow range (depending on compress-type):
    bz2 - [1, 9]
    gz - [-1, 9]
    lz4 - [-5, 12]
    zst - [-7, 22]

example: compress-level=9

Option niveau de compression réseau (--compress-level-network)

Niveau de compression du réseau.

Définit le niveau de compression réseau lorsque compress-type=none et la commande ne sont pas exécutées sur le même hôte que le dépôt. La compression est utilisée pour réduire le trafic réseau. Lorsque compress-type est différent de none, le paramètre compress-level-network est ignoré et compress-level est utilisé à la place, afin que le fichier ne soit compressé qu’une seule fois.

default: 1
allowed: [-5, 12]
example: compress-level-network=1

Option de type de compression (--compress-type)

Type de compression des fichiers.

Les types de compression suivants sont pris en charge :

  • none - pas de compression
  • bz2 - format de compression bzip2
  • gz - format de compression gzip
  • lz4 - format de compression lz4 (non disponible sur toutes les plates-formes)
  • zst - format de compression Zstandard (non disponible sur toutes les plates-formes)
default: gz
example: compress-type=none

Option de délai d’attente de la base de données (--db-timeout)

Délai d’attente dépassé pour la requête de base de données.

Définit le délai d’attente, en secondes, des requêtes effectuées contre la base de données. Cela inclut les fonctions de démarrage et d’arrêt de la sauvegarde, qui peuvent chacune prendre beaucoup de temps. En raison de cela, le délai d’attente doit être maintenu élevé, sauf si vous savez que ces fonctions retourneront rapidement (par exemple, si vous avez défini start-fast=y et que vous savez que le cluster de base de données ne générera pas beaucoup de segments WAL pendant la sauvegarde).

NOTE :

L’option db-timeout doit être inférieure à l’option protocol-timeout.

default: 30m
allowed: [100ms, 7d]
example: db-timeout=600

Option Delta (--delta)

Restauration ou sauvegarde à l’aide de sommes de contrôle.

Lors d’une restauration, par défaut, les répertoires de données PostgreSQL et les répertoires de tablespace sont supposés exister mais être vides. Cette option effectue une restauration incrémentielle à l’aide des sommes de contrôle.

Pendant une sauvegarde, cette option utilisera les sommes de contrôle au lieu des horodatages pour déterminer si les fichiers seront copiés.

default: n
example: delta=y

Option d’expiration I/O (--io-timeout)

Délai d’attente d’E/S dépassé.

Délai d’attente, en secondes, utilisé pour les connexions et les opérations de lecture/écriture.

Notez que l’opération de lecture/écriture entière n’a pas besoin de se terminer dans ce délai d’attente, mais une certaine progression doit être réalisée, même si elle ne concerne qu’un seul octet.

default: 1m
allowed: [100ms, 1h]
example: io-timeout=120

Option Chemin verrou (--lock-path)

Chemin où les fichiers verrou sont stockés.

Le chemin de verrouillage fournit un emplacement où pgBackRest peut créer des fichiers de verrouillage afin d’empêcher l’exécution simultanée d’opérations en conflit.

default: /tmp/pgbackrest
example: lock-path=/backup/db/lock

Option de masque neutre (--neutral-umask)

Utilisez un umask neutre.

Définit le umask à 0000 afin que les modes du dépôt soient créés de manière cohérente. Le mode par défaut du répertoire est 0750 et le mode par défaut du fichier est 0640.

Pour utiliser le umask de l’utilisateur en cours, spécifiez neutral-umask=n dans le fichier de configuration ou --no-neutral-umask en ligne de commande.

default: y
example: neutral-umask=n

Définir l’option de priorité du processus (--priority)

Définir la priorité du processus.

Définit la priorité (c’est-à-dire la valeur de niceness) accordée au processus par l’ordonnanceur du noyau. Les valeurs positives réduisent la priorité, tandis que les valeurs négatives l’augmentent. Dans la plupart des cas, les processus ne disposent pas des autorisations nécessaires pour augmenter leur priorité.

allowed: [-20, 19]
example: priority=19

Option de processus maximum (--process-max)

Nombre maximal de processus à utiliser pour la compression ou le transfert.

Chaque processus effectuera une compression et un transfert afin d’accélérer l’exécution de la commande, mais ne définissez pas process-max trop élevé afin de ne pas affecter les performances de la base de données.

default: 1
allowed: [1, 999]
example: process-max=4

Option délai d’attente du protocole (--protocol-timeout)

Délai d’attente du protocole.

Définit le délai d’attente, en secondes, durant lequel le processus local ou distant attend qu’un nouveau message soit reçu au niveau du protocole. Cela empêche les processus de rester bloqués indéfiniment en attente d’un message.

NOTE :

L’option protocol-timeout doit être supérieure à l’option db-timeout.

default: 31m
allowed: [100ms, 7d]
example: protocol-timeout=630

Option Keep Alive (--sck-keep-alive)

Activation du keep-alive.

Active les messages keep-alive sur les connexions socket.

default: y
example: sck-keep-alive=n

Option Chemin de répertoire d’attente (--spool-path)

Chemin où les données transitoires sont stockées.

Ce chemin est utilisé pour stocker les données de la commande asynchrone archive-push et archive-get.

La commande asynchrone archive-push écrit des accusés de réception dans le répertoire de spool après avoir correctement stocké le WAL dans l’archive, ou une erreur en cas d’échec, afin que le processus au premier plan puisse informer rapidement PostgreSQL. Ces fichiers sont très petits : vides en cas de succès et de quelques centaines d’octets en cas d’erreur.

La commande asynchrone archive-get met en file d’attente les fichiers WAL dans le répertoire de stockage provisoire afin de pouvoir les fournir très rapidement lorsque PostgreSQL les demande. Le déplacement des fichiers vers PostgreSQL est le plus efficace lorsque le répertoire de stockage provisoire se trouve sur le même système de fichiers que pg_xlog/pg_wal. Toutefois, il n’est pas recommandé de placer le répertoire de stockage provisoire à l’intérieur du répertoire pg_xlog/pg_wal, car cela pourrait entraîner des problèmes pour les utilitaires PostgreSQL tels que pg_rewind.

Les données stockées dans le chemin d’attente ne sont pas strictement temporaires, car elles peuvent et doivent survivre à un redémarrage. Toutefois, leur perte n’est pas problématique. pgBackRest vérifiera simplement chaque segment WAL afin de s’assurer qu’il est correctement archivé pour archive-push et reconstruira la file d’attente pour archive-get.

Le chemin d’attente doit être situé sur un système de fichiers local compatible Posix, et non sur un système de fichiers distant tel que NFS ou CIFS.

default: /var/spool/pgbackrest
example: spool-path=/backup/db/spool

Option de nombre de connexions Keep Alive (--tcp-keep-alive-count)

Nombre de maintien de connexion.

Spécifie le nombre de messages TCP keep-alive pouvant être perdus avant que la connexion ne soit considérée comme inactive.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPCNT.

allowed: [1, 32]
example: tcp-keep-alive-count=3

Option d’idle Keep Alive (--tcp-keep-alive-idle)

Délai d’inactivité pour la maintien de la connexion.

Spécifie la durée (en secondes) pendant laquelle aucune activité réseau ne se produit, après laquelle le système d’exploitation doit envoyer un message de maintien de connexion TCP.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPIDLE.

allowed: [1, 3600]
example: tcp-keep-alive-idle=60

Option Intervalle Keep Alive (--tcp-keep-alive-interval)

Intervalle de temps pour la maintien de la connexion active.

Spécifie la durée (en secondes) après laquelle un message TCP keep-alive non reconnu doit être renvoyé.

Cette option est disponible sur les systèmes qui prennent en charge l’option de socket TCP_KEEPINTVL.

allowed: [1, 900]
example: tcp-keep-alive-interval=30

Suites de chiffrement TLSv1.2 Option (--tls-cipher-12)

Suites de chiffrement TLSv1.2 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE :

Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. L’exemple proposé constitue un choix raisonnable sauf si des exigences de sécurité spécifiques s’appliquent. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: tls-cipher-12=HIGH:MEDIUM:+3DES:!aNULL

Suites de chiffrement TLSv1.3 Option (--tls-cipher-13)

Suites de chiffrement TLSv1.3 autorisées.

Toutes les connexions TLS entre le client pgBackRest et le serveur sont chiffrées. Par défaut, les connexions aux magasins d’objets (par exemple S3) sont également chiffrées.

NOTE :

Le niveau de sécurité minimal absolu pour toute connexion de transport est TLSv1.2.

Les suites de chiffrement acceptées peuvent être ajustées si nécessaire. Si non définies (valeur par défaut), la valeur par défaut de la bibliothèque OpenSSL sous-jacente s’applique.

example: tls-cipher-13=TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

Options de journalisation

La section log définit les paramètres liés à la journalisation.

AVERTISSEMENT :

La journalisation au niveau trace peut exposer des secrets tels que des clés et des mots de passe. Utilisez avec précaution !

Niveau de journalisation de la console (--log-level-console)

Niveau de journalisation pour la console.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: warn
example: log-level-console=error

Niveau de journalisation du fichier (--log-level-file)

Niveau de journalisation des fichiers.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: info
example: log-level-file=debug

Niveau de journalisation des erreurs standard (--log-level-stderr)

Niveau de journalisation pour stderr.

Spécifie les niveaux de journalisation qui seront envoyés vers stderr plutôt que vers stdout (spécifié par log-level-console). L’horodatage et le processus ne seront pas envoyés vers stderr.

Les niveaux de journalisation suivants sont pris en charge :

  • off - Aucune journalisation (non recommandé)
  • error - Journaliser uniquement les erreurs
  • warn - Journaliser les avertissements et les erreurs
  • info - Journaliser les informations, les avertissements et les erreurs
  • detail - Journaliser les détails, les informations, les avertissements et les erreurs
  • debug - Journaliser le débogage, les détails, les informations, les avertissements et les erreurs
  • trace - Journaliser les traces (débogage très détaillé), le débogage, les informations, les avertissements et les erreurs
default: off
example: log-level-stderr=error

Option Chemin Journal (--log-path)

Chemin où les fichiers de journalisation sont stockés.

Le chemin de journalisation fournit un emplacement où pgBackRest peut stocker les fichiers de journalisation. Notez que si log-level-file=off, aucun chemin de journalisation n’est requis.

default: /var/log/pgbackrest
example: log-path=/backup/db/log

Option de journalisation des sous-processus (--log-subprocess)

Activer la journalisation dans les sous-processus.

Activez la journalisation des fichiers pour tout sous-processus créé par ce processus, en utilisant le niveau de journalisation spécifié par log-level-file.

default: n
example: log-subprocess=y

Option de timestamp de journal (--log-timestamp)

Activer les horodatages dans la journalisation.

Active l’horodatage dans la journalisation console et fichier. Cette option est désactivée dans des situations spéciales, telles que la génération de documentation.

default: y
example: log-timestamp=n

Options du mainteneur

Les options de maintenance sont destinées à soutenir les forks de PostgreSQL. Les paramètres appropriés doivent être déterminés par le mainteneur du fork, puis communiqués aux utilisateurs du fork.

AVERTISSEMENT :

Une utilisation incorrecte de ces options peut entraîner un comportement imprévu ou une corruption des données.

Il incombe au mainteneur de la branche de tester pgBackRest avec les options requises. pgBackRest ne garantit pas la compatibilité avec toute branche.

Option de vérification des en-têtes WAL (--archive-header-check)

Vérifier la version/id de PostgreSQL dans les en-têtes WAL.

Activé par défaut, cette option vérifie l’en-tête WAL contre la version de PostgreSQL et l’identifiant système afin de s’assurer que le WAL est copié dans la bonne stanza. Cela s’ajoute à la vérification de pg_control par rapport à la stanza et à la vérification que le WAL est copié à partir du même répertoire de données PostgreSQL où se trouve pg_control.

Par conséquent, désactiver cette vérification est relativement sûr, mais ne doit être effectué que lorsqu’il est nécessaire, par exemple si le WAL est chiffré.

default: y
example: archive-header-check=n

Option de vérification de l’en-tête de page (--page-header-check)

Vérifier les en-têtes de page PostgreSQL.

Activé par défaut, cette option ajoute des vérifications d’en-tête de page.

Cette option doit être désactivée uniquement si nécessaire, par exemple si les pages sont chiffrées.

default: y
example: page-header-check=n

Option de version PostgreSQL obligatoire (--pg-version-force)

Forcer la version de PostgreSQL.

La version de PostgreSQL spécifiée sera utilisée à la place de la version détectée automatiquement en lisant pg_control ou les en-têtes WAL. Cela est principalement utile pour les forks de PostgreSQL ou les versions de développement où ces valeurs diffèrent de la version de publication. La version rapportée par PostgreSQL via server_version_num doit correspondre à la version forcée.

AVERTISSEMENT :

Faites preuve de prudence en utilisant cette option, car pg_control et les en-têtes WAL seront toujours lus selon le format attendu pour la version spécifiée, c’est-à-dire le format issu de la version open-source officielle de PostgreSQL. Si la version fork ou développée modifie le format des champs sur lesquels pgBackRest dépend, cela entraînera un comportement imprévu. En général, cette option ne fonctionnera correctement que si le fork ajoute tous les membres de structure personnalisés après les membres standard de PostgreSQL.

example: pg-version-force=15

Options du dépôt

La section repository définit les options utilisées pour configurer le dépôt.

Indexation : Toutes les options repo- sont indexées afin de permettre la configuration de plusieurs dépôts. Par exemple, un seul dépôt est configuré à l’aide des options repo1-path, repo1-host, etc. Si plusieurs dépôts sont configurés et que l’option --repo n’est pas précisée pour une commande, les dépôts seront traités dans l’ordre de priorité décroissante (par exemple, repo1 puis repo2).

Les options repo-retention-* définissent la durée de rétention des sauvegardes. L’expiration n’a lieu qu’après que le nombre de sauvegardes complètes dépasse la rétention autorisée. Autrement dit, si repo1-retention-full-type est défini sur count (valeur par défaut) et que repo1-retention-full est défini sur 2, il doit y avoir 3 sauvegardes complètes avant que la plus ancienne ne soit expirée. Si repo1-retention-full-type est défini sur time, alors repo1-retention-full représente des jours, et il doit y avoir au moins autant de jours de sauvegardes complètes avant qu’une expiration ne puisse avoir lieu. Veillez toujours à disposer d’espace suffisant pour la rétention + 1 sauvegarde.

Option de compte de dépôt Azure (--repo-azure-account)

Compte de dépôt Azure.

Compte Azure utilisé pour stocker le dépôt.

example: repo1-azure-account=pg-backup

Option de conteneur de dépôt Azure (--repo-azure-container)

Conteneur de dépôt Azure.

Conteneur Azure utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés dans la racine du conteneur en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par Azure dans le conteneur.

example: repo1-azure-container=pg-backup

Option de point de terminaison de dépôt Azure (--repo-azure-endpoint)

Point de terminaison du dépôt Azure.

Point d’accès utilisé pour se connecter au service blob. La valeur par défaut est généralement correcte, sauf si vous utilisez Azure Government.

Pour les configurations personnalisées ou les tests, les options repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port, et repo-storage-verify-tls peuvent être utiles.

default: blob.core.windows.net
example: repo1-azure-endpoint=blob.core.usgovcloudapi.net

Option de clé de dépôt Azure (--repo-azure-key)

Clé de dépôt Azure.

Une clé partagée ou une signature d’accès partagé, selon l’option repo-azure-key-type.

example: repo1-azure-key=T+9+aov82qNhrcXSNGZCzm9mjd4d75/oxxOr6r1JVpgTLA==

Type de clé du dépôt Azure (--repo-azure-key-type)

Type de clé du dépôt Azure.

Les types suivants sont pris en charge pour l’autorisation :

  • shared - Clé partagée
  • sas - Signature d’accès partagé
  • auto - Autorisation automatique à l’aide d’identités managées Azure
default: shared
example: repo1-azure-key-type=sas

Option de style d’URI de dépôt Azure (--repo-azure-uri-style)

Style URI Azure.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte account.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer le compte aux URI.
default: host
example: repo1-azure-uri-style=path

Option de sauvegarde incrémentielle par bloc (--repo-block)

Activez la sauvegarde incrémentielle par bloc.

Le mode incrémentiel par bloc permet des sauvegardes plus granulaires en divisant les fichiers en blocs pouvant être sauvegardés indépendamment. Cela permet d’économiser de l’espace dans le dépôt et peut améliorer les performances de restauration incrémentielle, car des blocs individuels peuvent être récupérés sans devoir lire entièrement le fichier depuis le dépôt.

NOTE :

L’option repo-bundle doit être activée avant que repo-block ne puisse l’être.

La taille des blocs d’un fichier est déterminée en fonction de sa taille et de son âge. En général, les fichiers plus anciens ou plus volumineux reçoivent des tailles de blocs plus grandes. Si un fichier est suffisamment ancien, il ne sera pas sauvegardé en utilisant l’incrémentation par bloc.

La sauvegarde incrémentielle par bloc est optimale lorsqu’elle est activée pour toutes les catégories de sauvegarde, y compris les sauvegardes complètes. Cela rend la sauvegarde complète légèrement plus grande, mais permet aux sauvegardes différentielles et incrémentielles ultérieures d’utiliser les cartes de blocs générées par la sauvegarde complète afin de réduire l’espace utilisé.

default: n
example: repo1-block=y

Option des paquets de dépôt (--repo-bundle)

Fichier du dépôt regroupés.

Regrouper les petits fichiers afin de réduire le nombre total de fichiers écrits dans le dépôt. Écrire moins de fichiers est généralement plus efficace, en particulier sur les magasins d’objets tels que S3. En outre, les fichiers vides ne sont pas stockés, sauf dans le manifeste, ce qui économise du temps et de l’espace.

default: n
example: repo1-bundle=y

Option de limite du bundle de dépôt (--repo-bundle-limit)

Limite pour les paquets de fichiers.

Limite de taille pour les fichiers inclus dans les bundles. Les fichiers dont la taille dépasse cette limite seront stockés séparément.

Les fichiers intégrés ne peuvent pas être réutilisés lors d’une reprise d’une sauvegarde, donc cette option contrôle les fichiers pouvant être repris, c’est-à-dire que des valeurs plus élevées entraînent un nombre réduit de fichiers reprises.

default: 2MiB
allowed: [8KiB, 1PiB]
example: repo1-bundle-limit=10MiB

Option taille du bundle de dépôt (--repo-bundle-size)

Taille cible pour les paquets de fichiers.

Définit la taille cible des fichiers ajoutés à un seul lot. La taille du lot non compressé peut atteindre jusqu’à repo-bundle-size + repo-bundle-limit, donc ne définissez pas cette option à la taille maximale autorisée par votre système de fichiers.

En général, il n’est pas recommandé de définir cette option trop élevée, car les réessais devront répéter l’intégralité du lot.

default: 20MiB
allowed: [1MiB, 1PiB]
example: repo1-bundle-size=10MiB

Option de phrase de passe du chiffrement du dépôt (--repo-cipher-pass)

Phrase de passe du chiffrement du dépôt.

Phrase de passe utilisée pour chiffrer/déchiffrer les fichiers du dépôt.

NOTE :

Lorsqu’il est exécuté sans l’option stanza, la commande info lit les paramètres de chiffrement uniquement dans la section global. Si les paramètres de chiffrement sont configurés par stanza, exécutez la commande info avec l’option stanza pour lire une stanza chiffrée.

example: repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO

Type de chiffrement du dépôt (--repo-cipher-type)

Chiffrement utilisé pour chiffrer le dépôt.

Les types de chiffrement suivants sont pris en charge :

  • none - Le dépôt n’est pas chiffré
  • aes-256-cbc - Advanced Encryption Standard avec une longueur de clé de 256 bits

Notez que le chiffrement est toujours effectué côté client, même si le type de dépôt (par exemple S3) prend en charge le chiffrement.

default: none
example: repo1-cipher-type=aes-256-cbc

Option de bac de dépôt GCS (--repo-gcs-bucket)

Dépôt de bucket GCS.

Dépôt GCS utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par GCS dans le bucket.

example: repo1-gcs-bucket=/pg-backup

Option de point de terminaison du dépôt GCS (--repo-gcs-endpoint)

Point de terminaison du dépôt GCS.

Point d’accès utilisé pour se connecter au service de stockage. Peut être mis à jour pour utiliser un serveur local GCS ou un point d’accès alternatif.

default: storage.googleapis.com
example: repo1-gcs-endpoint=localhost

Option de clé de dépôt GCS (--repo-gcs-key)

Clé du dépôt GCS.

Une clé d’accès ou un fichier de clé de service, selon l’option repo-gcs-key-type.

example: repo1-gcs-key=/etc/pgbackrest/gcs-key.json

Type de clé du dépôt GCS (--repo-gcs-key-type)

Type de clé du dépôt GCS.

Les types suivants sont pris en charge pour l’autorisation :

  • auto - Autoriser à l’aide du compte de service de l’instance.
  • service - Compte de service à partir d’une clé stockée localement.
  • token - À utiliser pour les tests locaux, par exemple fakegcs.

Lorsque repo-gcs-key-type=service, les identifiants seront rechargés lorsque le jeton d’authentification sera renouvelé.

default: service
example: repo1-gcs-key-type=auto

Option ID du projet du dépôt GCS (--repo-gcs-user-project)

Identifiant du projet GCS.

ID du projet GCS utilisé pour déterminer la facturation des requêtes.

example: repo1-gcs-user-project=my-project

Crée des liens durs entre les fichiers des sauvegardes dans le dépôt.

Activez le lien dur des fichiers dans les sauvegardes différentielles et incrémentielles vers leurs sauvegardes complètes. Cela donne l’illusion qu’à niveau système de fichiers, chaque sauvegarde est une sauvegarde complète. Faites attention toutefois, car la modification de fichiers liés par lien dur peut affecter toutes les sauvegardes de l’ensemble.

default: n
example: repo1-hardlink=y

Nom obsolète : hardlink

Option hôte du dépôt (--repo-host)

Hôte du dépôt lors de l’opération à distance.

Lors de la sauvegarde et de l’archivage vers un système de fichiers monté localement, ce paramètre n’est pas requis.

example: repo1-host=repo1.domain.com

Nom obsolète : backup-host

Option du fichier de l’autorité de certification hôte du dépôt (--repo-host-ca-file)

Fichier de l’autorité de certification du serveur de dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte du dépôt.

example: repo1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’autorité de certification du dépôt (--repo-host-ca-path)

Chemin de l’autorité de certification du serveur de dépôt.

Utilisez un chemin de certificat d’autorité (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte du dépôt.

example: repo1-host-ca-path=/etc/pki/tls/certs

Option de fichier de certificat d’hôte du dépôt (--repo-host-cert-file)

Fichier de certificat d’hôte du dépôt.

Envoyé à l’hôte du dépôt pour prouver l’identité du client.

example: repo1-host-cert-file=/path/to/client.crt

Option de commande hôte du dépôt (--repo-host-cmd)

Hôte du dépôt commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes local et de dépôt. Si non défini, la commande de dépôt sera définie de la même manière que celle de l’hôte local.

default: [path of executed pgbackrest binary]
example: repo1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : backup-cmd

Option de configuration de l’hôte du dépôt (--repo-host-config)

Fichier de configuration du serveur de dépôt pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le fichier de configuration de l’hôte du dépôt se trouve dans un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: repo1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : sauvegarde-config

Option de chemin d’inclusion de configuration d’hôte de dépôt (--repo-host-config-include-path)

Configuration du serveur de dépôt pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration de l’hôte du dépôt est différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: repo1-host-config-include-path=/conf/pgbackrest/conf.d

Chemin de configuration de l’hôte du dépôt (--repo-host-config-path)

Chemin de configuration du serveur de dépôt pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte du dépôt. Cette option est nécessaire uniquement si le chemin de configuration de l’hôte du dépôt est différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: repo1-host-config-path=/conf/pgbackrest

Option de fichier de clé hôte du dépôt (--repo-host-key-file)

Fichier de clé hôte du dépôt.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: repo1-host-key-file=/path/to/client.key

Option de port hôte du dépôt (--repo-host-port)

Port de l’hôte du dépôt lorsque repo-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole du serveur du dépôt.

NOTE :

Lorsque repo-host-type=ssh, il n’existe pas de valeur par défaut pour repo-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on repo-host-type):
    tls - 8432

allowed: [0, 65535]
example: repo1-host-port=25

Nom obsolète : backup-ssh-port

Type de protocole d’hôte de dépôt (--repo-host-type)

Type de protocole d’hôte de dépôt.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: repo1-host-type=tls

Option d’utilisateur hôte de dépôt (--repo-host-user)

Utilisateur hôte du dépôt lorsque repo-host est défini.

Définit l’utilisateur utilisé pour les opérations sur l’hôte du dépôt. Il est préférable que ce ne soit pas l’utilisateur postgres, mais plutôt un autre utilisateur tel que pgbackrest. Si PostgreSQL s’exécute sur l’hôte du dépôt, l’utilisateur postgres peut être ajouté au groupe pgbackrest afin d’avoir des permissions de lecture sur le dépôt sans pouvoir accidentellement le modifier.

default: pgbackrest
example: repo1-host-user=repo-user

Nom obsolète : backup-user

Option Chemin du dépôt (--repo-path)

Chemin où les sauvegardes et l’archive sont stockées.

Le dépôt est l’emplacement où pgBackRest stocke les sauvegardes et les archives des segments WAL.

Il peut être difficile de prévoir à l’avance l’espace nécessaire. La meilleure approche consiste à effectuer quelques sauvegardes, puis à noter la taille des différents types de sauvegardes (pleines, incrémentielles, différentielles) et à mesurer la quantité de WAL générée par jour. Cela vous donnera une idée générale de l’espace requis, bien que les besoins évoluent probablement au fil du temps avec l’évolution de votre base de données.

default: /var/lib/pgbackrest
example: repo1-path=/backup/db/backrest

Option de rétention des archives (--repo-retention-archive)

Nombre de sauvegardes de WAL continu à conserver.

NOTE :

Les segments WAL nécessaires pour rendre une sauvegarde cohérente sont toujours conservés jusqu’à l’expiration de la sauvegarde, quelle que soit la configuration de cette option.

Si cette valeur n’est pas définie et que repo-retention-full-type est égal à count (valeur par défaut), alors l’archive à expirer sera par défaut celle correspondant à la valeur de repo-retention-full (ou repo-retention-diff) associée à repo-retention-archive-type si celle-ci est définie à full (ou diff). Cela garantira que les fichiers WAL ne seront supprimés que pour les sauvegardes déjà expirées. Si repo-retention-full-type est égal à time, alors cette valeur sera par défaut définie pour supprimer les archives antérieures à la plus ancienne sauvegarde complète conservée après avoir satisfait le paramètre repo-retention-full.

Cette option doit être définie si repo-retention-archive-type est réglé sur incr. Si l’espace disque est limité, ce paramètre, combiné à repo-retention-archive-type, peut être utilisé pour supprimer de manière agressive les segments WAL. Toutefois, cela annule la possibilité de réaliser une restauration à un instant donné à partir des sauvegardes ayant des segments WAL expirés, et n’est donc pas recommandé.

allowed: [1, 9999999]
example: repo1-retention-archive=2

Nom obsolète : rétention-archive

Type de rétention des archives (--repo-retention-archive-type)

Type de sauvegarde pour la rétention de WAL.

Si défini sur full, pgBackRest conservera les journaux d’archive pendant le nombre de sauvegardes complètes défini par repo-retention-archive. Si défini sur diff (différentiel), pgBackRest conservera les journaux d’archive pendant le nombre de sauvegardes complètes et différentielles défini par repo-retention-archive, ce qui signifie qu’une sauvegarde complète prise en dernier sera comptée comme une sauvegarde différentielle pour l’application de la rétention du référentiel. Si défini sur incr (incrémentielle), pgBackRest conservera les journaux d’archive pendant le nombre de sauvegardes complètes, différentielles et incrémentielles défini par repo-retention-archive. Il est recommandé de ne pas modifier cette option par rapport à sa valeur par défaut, qui n’expire les WAL que conjointement à l’expiration des sauvegardes complètes.

default: full
example: repo1-retention-archive-type=diff

Nom obsolète : rétention-archive-type

Option de rétention différentielle (--repo-retention-diff)

Nombre de sauvegardes différentielles à conserver.

Lorsqu’une sauvegarde différentielle expire, toutes les sauvegardes incrémentielles associées à cette sauvegarde différentielle expirent également. Si ce paramètre n’est pas défini, toutes les sauvegardes différentielles sont conservées jusqu’à l’expiration des sauvegardes complètes dont elles dépendent.

Notez que les sauvegardes complètes sont prises en compte dans le nombre de sauvegardes différentielles pour l’expiration. Cela réduit légèrement le nombre de sauvegardes différentielles à conserver dans la plupart des cas.

allowed: [1, 9999999]
example: repo1-retention-diff=3

Nom obsolète : rétention-diff

Option de rétention complète (--repo-retention-full)

Nombre ou durée de rétention des sauvegardes complètes.

Lorsqu’une sauvegarde complète expire, toutes les sauvegardes différentielles et incrémentielles associées à cette sauvegarde complète expirent également. Si l’option n’est pas définie, un avertissement est émis. Si une rétention indéfinie est souhaitée, définissez l’option à sa valeur maximale.

allowed: [1, 9999999]
example: repo1-retention-full=2

Nom obsolète : rétention-full

Type d’option de rétention complète (--repo-retention-full-type)

Type de rétention pour les sauvegardes complètes.

Détermine si le paramètre repo-retention-full représente une période de temps (en jours) ou un nombre de sauvegardes complètes à conserver.

Si la valeur est définie à time, les sauvegardes complètes dont l’âge dépasse repo-retention-full seront supprimées du dépôt si au moins une autre sauvegarde est égale ou supérieure à la valeur définie par repo-retention-full. Par exemple, si repo-retention-full est égal à 30 (jours) et qu’il existe deux sauvegardes complètes : l’une âgée de 25 jours et l’autre de 35 jours, aucune sauvegarde complète ne sera expirée, car la suppression de la sauvegarde âgée de 35 jours laisserait uniquement la sauvegarde âgée de 25 jours, ce qui violerait la politique de rétention de 30 jours exigeant qu’au moins une sauvegarde ait au moins 30 jours d’âge avant qu’une sauvegarde plus ancienne ne puisse être expirée. Les archives WAL plus anciennes que la plus ancienne sauvegarde complète restante seront automatiquement expirées, sauf si repo-retention-archive-type et repo-retention-archive sont explicitement définis.

Si la valeur est définie à count, les sauvegardes complètes dont la taille dépasse repo-retention-full seront supprimées. Par exemple, si repo-retention-full est égal à 4 et qu’une cinquième sauvegarde complète est effectuée, la sauvegarde complète la plus ancienne sera supprimée afin de maintenir le nombre à 4.

Notez qu’une sauvegarde ne sera prise en compte pour la rétention qu’après avoir été correctement terminée. Par exemple, si repo-retention-full-type est count et repo-retention-full est 2, il doit y avoir 3 sauvegardes complètes avant que la plus ancienne ne soit supprimée.

default: count
example: repo1-retention-full-type=time

Option de rétention de l’historique des sauvegardes (--repo-retention-history)

Nombre de jours d’historique de sauvegarde à conserver.

Une copie du manifeste de sauvegarde est stockée dans le chemin backup.history une fois la sauvegarde terminée. Par défaut, ces fichiers ne sont jamais supprimés, car ils sont utiles pour l’analyse de données, par exemple pour mesurer l’évolution de la taille des sauvegardes et des fichiers WAL au fil du temps.

Définissez repo-retention-history pour préciser le nombre de jours de manifestes d’historique de sauvegarde à conserver. Les sauvegardes non expirées sont toujours conservées dans l’historique des sauvegardes. Spécifiez repo-retention-history=0 pour ne conserver l’historique des sauvegardes que pour les sauvegardes non expirées.

Lorsqu’un manifeste d’historique de sauvegarde complète est expiré, tous les manifestes d’historique de sauvegardes différentielles et incrémentielles associés à cette sauvegarde complète expirent également.

allowed: [0, 9999999]
example: repo1-retention-history=365

Option de bac de dépôt S3 (--repo-s3-bucket)

Dépôt S3.

Dépôt S3 utilisé pour stocker le dépôt.

Les dépôts pgBackRest peuvent être stockés à la racine du bucket en définissant repo-path=/, mais il est généralement préférable de préciser un préfixe, tel que /repo, afin de pouvoir également stocker les journaux et d’autres contenus générés par AWS dans le bucket.

example: repo1-s3-bucket=pg-backup

Option de point de terminaison du dépôt S3 (--repo-s3-endpoint)

Point de terminaison du dépôt S3.

Le point de terminaison AWS doit être valide pour la région sélectionnée.

Pour les configurations personnalisées ou les tests, les options repo-storage-ca-file, repo-storage-ca-path, repo-storage-host, repo-storage-port, et repo-storage-verify-tls peuvent être utiles.

example: repo1-s3-endpoint=s3.amazonaws.com

Option de clé d’accès au dépôt S3 (--repo-s3-key)

Clé d’accès au dépôt S3.

Clé AWS utilisée pour accéder à ce bucket.

example: repo1-s3-key=AKIAIOSFODNN7EXAMPLE

Clé secrète d’accès au dépôt S3 (--repo-s3-key-secret)

Clé secrète d’accès au dépôt S3.

Clé secrète AWS utilisée pour accéder à ce bucket.

example: repo1-s3-key-secret=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

Type de clé du dépôt S3 (--repo-s3-key-type)

Type de clé pour le dépôt S3.

Les types suivants sont pris en charge :

  • shared - Clés partagées
  • auto - Récupérer automatiquement les identifiants temporaires
  • web-id - Récupérer automatiquement les identifiants d’identité web
  • pod-id - Récupérer automatiquement les identifiants d’identité de pod EKS
  • process - Récupérer les identifiants en exécutant un processus
default: shared
example: repo1-s3-key-type=auto

Option ID de clé KMS pour dépôt S3 (--repo-s3-kms-key-id)

Clé KMS du dépôt S3.

Active le chiffrement côté serveur S3 en utilisant la clé du service de gestion des clés AWS spécifiée.

example: repo1-s3-kms-key-id=bceb4f13-6939-4be3-910d-df54dee817b7

Option de commande du processus d’authentification S3 (--repo-s3-process-cmd)

Commande du processus d’authentification S3.

Commande (et arguments facultatifs) à exécuter pour récupérer les identifiants temporaires S3. Le premier élément de la liste est la commande, les éléments suivants sont passés en tant que paramètres.

Le processus doit produire un JSON contenant les champs AccessKeyId, SecretAccessKey, SessionToken et Expiration. Les identifiants seront automatiquement actualisés avant l’expiration. Voir Process Credential Provider pour les détails du format.

example: repo1-s3-process-cmd=/usr/local/bin/get-credentials
example: repo1-s3-process-cmd=--role
example: repo1-s3-process-cmd=my-role

Option de région du dépôt S3 (--repo-s3-region)

Région du dépôt S3.

La région AWS où le bucket a été créé.

example: repo1-s3-region=us-east-1

Option Requesteur Payant pour le dépôt S3 (--repo-s3-requester-pays)

Dépôt S3 payeur de la demande.

Active le paiement par le demandeur S3.

default: n
example: repo1-s3-requester-pays=n

Option de rôle du dépôt S3 (--repo-s3-role)

Rôle du dépôt S3.

Le nom du rôle AWS (pas le nom ARN complet) utilisé pour récupérer les identifiants temporaires lorsque repo-s3-key-type=auto.

example: repo1-s3-role=authrole

Option de service de dépôt S3 (--repo-s3-service)

Service de signature S3.

Le service de signature S3 utilisé dans l’authentification SigV4. La valeur par défaut est s3 pour les points d’accès S3 standards. À définir sur s3-outposts lors de l’utilisation d’un point d’accès S3 Outposts.

default: s3
example: repo1-s3-service=s3-outposts

Option de clé SSE du dépôt S3 (--repo-s3-sse-customer-key)

Clé SSE du client pour le dépôt S3.

Active le chiffrement côté serveur S3 en utilisant la clé cliente spécifiée.

example: repo1-s3-sse-customer-key=bceb4f13-6939-4be3-910d-df54dee817b7

Option de point de terminaison STS du dépôt S3 (--repo-s3-sts-host)

Point de terminaison STS du dépôt S3.

Point de terminaison STS utilisé pour récupérer des identifiants temporaires lorsque repo-s3-key-type=web-id est configuré. Définissez-le sur un point de terminaison régional (par exemple sts.us-east-1.amazonaws.com) pour utiliser STS régional, ce qui peut être nécessaire pour les régions GovCloud, Chine, ou pour réduire la latence.

default: sts.amazonaws.com
example: repo1-s3-sts-host=sts.us-east-1.amazonaws.com

Option de jeton de sécurité du dépôt S3 (--repo-s3-token)

Jeton de sécurité du dépôt S3.

Jeton de sécurité AWS utilisé avec des identifiants temporaires.

example: repo1-s3-token=AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22 ...

Option de style d’URI de dépôt S3 (--repo-s3-uri-style)

Style d’URI S3.

Les styles d’URI suivants sont pris en charge :

  • host - Se connecter à l’hôte bucket.endpoint.
  • path - Se connecter à l’hôte endpoint et préfixer les URI par le répertoire.
default: host
example: repo1-s3-uri-style=path

Option hôte du dépôt SFTP (--repo-sftp-host)

Hôte du dépôt SFTP.

Hôte SFTP contenant le dépôt.

example: repo1-sftp-host=sftprepo.domain

Fingerprint de l’hôte du dépôt SFTP (--repo-sftp-host-fingerprint)

Empreinte du serveur hôte du dépôt SFTP.

La génération de l’empreinte d’hôte du dépôt SFTP doit correspondre à repo-sftp-host-key-hash-type. Générez l’empreinte via awk '{print $2}' ssh_host_xxx_key.pub | base64 -d | (md5sum or sha1sum) -b. Les clés d’hôte SSH se trouvent normalement dans le répertoire /etc/ssh.

example: repo1-sftp-host-fingerprint=f84e172dfead7aeeeae6c1fdfb5aa8cf

Type d’option de vérification de la clé hôte SFTP (--repo-sftp-host-key-check-type)

Type de vérification de la clé hôte SFTP.

Les types de vérification de clé d’hôte SFTP suivants sont pris en charge :

  • strict - pgBackRest n’ajoutera jamais automatiquement les clés d’hôte au fichier ~/.ssh/known_hosts, et refusera de se connecter aux hôtes dont la clé d’hôte a changé ou n’est pas trouvée dans les fichiers known hosts. Cette option oblige l’utilisateur à ajouter manuellement tous les nouveaux hôtes.
  • accept-new - pgBackRest ajoutera automatiquement les nouvelles clés d’hôte au fichier known hosts de l’utilisateur, mais n’autorisera pas les connexions aux hôtes dont la clé d’hôte a changé.
  • fingerprint - pgBackRest vérifiera la clé d’hôte contre l’empreinte spécifiée par l’option repo-sftp-host-fingerprint.
  • none - aucune vérification de clé d’hôte ne sera effectuée.
default: strict
example: repo1-sftp-host-key-check-type=accept-new

Type de hachage de la clé hôte du dépôt SFTP (--repo-sftp-host-key-hash-type)

Type de hachage de la clé d’hôte du dépôt SFTP.

Type de hachage de la clé hôte du dépôt SFTP. Déclare le type de hachage à utiliser pour calculer le hachage de la clé hôte du système distant au démarrage SSH. Les versions plus récentes de libssh2 prennent en charge sha256 en plus de md5 et sha1.

example: repo1-sftp-host-key-hash-type=sha256

Option de port hôte du dépôt SFTP (--repo-sftp-host-port)

Port hôte du dépôt SFTP.

Port hôte du dépôt SFTP.

default: 22
allowed: [1, 65535]
example: repo1-sftp-host-port=22

Option utilisateur hôte dépôt SFTP (--repo-sftp-host-user)

Utilisateur hôte du dépôt SFTP.

Utilisateur sur l’hôte utilisé pour stocker le dépôt.

example: repo1-sftp-host-user=pg-backup

Option fichier Hôtes SFTP connus (--repo-sftp-known-host)

Fichier d’hôtes SFTP connus.

Fichier known hosts à consulter pour rechercher une correspondance avec un hôte SFTP lors de l’authentification. Si non spécifié, pgBackRest recherchera par défaut dans ~/.ssh/known_hosts, ~/.ssh/known_hosts2, /etc/ssh/ssh_known_hosts et /etc/ssh/ssh_known_hosts2. Si configuré avec un ou plusieurs chemins de fichier, pgBackRest recherchera dans ces fichiers une correspondance. Les chemins de fichier doivent être complets ou commencer par un tilde. L’option repo-sftp-known-host peut être spécifiée plusieurs fois pour indiquer plusieurs fichiers known hosts à consulter. Pour utiliser la vérification du fichier known hosts, l’option repo-sftp-host-fingerprint ne doit pas être définie. Voir également l’option repo-sftp-host-check-type.

example: repo1-sftp-known-host=/home/postgres/.ssh/known_hosts

Option fichier de clé privée du dépôt SFTP (--repo-sftp-private-key-file)

Fichier de clé privée SFTP.

Fichier de clé privée SFTP utilisé pour l’authentification.

example: repo1-sftp-private-key-file=~/.ssh/id_ed25519

Option de phrase de passe de clé privée du dépôt SFTP (--repo-sftp-private-key-passphrase)

Phrase de passe de la clé privée SFTP.

Phrase de passe utilisée pour accéder à la clé privée. Il s’agit d’une fonctionnalité facultative lors de la création d’une paire de clés SSH publique/privée.

example: repo1-sftp-private-key-passphrase=BeSureToGenerateAndUseASecurePassphrase

Option de fichier de clé publique du dépôt SFTP (--repo-sftp-public-key-file)

Fichier de clé publique SFTP.

Fichier de clé publique SFTP utilisé pour l’authentification. Facultatif si compilé contre OpenSSL, obligatoire si compilé contre une autre bibliothèque.

example: repo1-sftp-public-key-file=~/.ssh/id_ed25519.pub

Option du fichier CA du dépôt de stockage (--repo-storage-ca-file)

Fichier de certificat d’autorité de certification pour le dépôt.

Utilisez un fichier CA autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: repo1-storage-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Noms obsolètes : repo-azure-ca-file, repo-s3-ca-file

Option de chemin du certificat CA TLS pour le dépôt (--repo-storage-ca-path)

Chemin du certificat d’autorité de certification du dépôt.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour les certificats du stockage (par exemple, S3, Azure).

example: repo1-storage-ca-path=/etc/pki/tls/certs

Noms obsolètes : repo-azure-ca-path, repo-s3-ca-path

Option hôte de stockage du dépôt (--repo-storage-host)

Hôte de stockage du dépôt.

Se connecter à un hôte autre que le point de terminaison de stockage (par exemple S3, Azure). Cela est généralement utilisé pour les tests.

example: repo1-storage-host=127.0.0.1

Noms obsolètes : repo-azure-host, repo-s3-host

Option de port du stockage du dépôt (--repo-storage-port)

Port du stockage du dépôt.

Port à utiliser lors de la connexion au point de terminaison du stockage (par exemple S3, Azure) ou à l’hôte (le cas échéant).

default: 443
allowed: [1, 65535]
example: repo1-storage-port=9000

Noms obsolètes : repo-azure-port, repo-s3-port

Option d’étiquette de stockage du dépôt (--repo-storage-tag)

Étiquette(s) de stockage du dépôt.

Spécifiez les balises à ajouter aux objets lorsque le dépôt est un magasin d’objets (par exemple, S3). L’option peut être répétée pour ajouter plusieurs balises.

Il n’existe aucune fonctionnalité dans pgBackRest permettant de modifier ces balises ; veillez donc à les définir correctement avant d’exécuter stanza-create afin d’assurer une cohérence des balises dans l’ensemble du dépôt.

example: repo1-storage-tag=key1=value1

Option de taille de morceau de chargement du dépôt (--repo-storage-upload-chunk-size)

Taille du morceau de chargement du dépôt.

Les magasins d’objets tels que S3 permettent de télécharger des fichiers par morceaux lorsque le fichier est trop volumineux pour être stocké en mémoire. Même si le fichier peut être stocké en mémoire, il est plus efficace en mémoire de limiter la quantité de mémoire utilisée pour les téléchargements.

Une taille de morceau plus élevée entraîne généralement de meilleures performances, car elle réduit le nombre de requêtes de téléchargement et permet de télécharger plus de fichiers en une seule requête plutôt qu’en morceaux. Le désavantage est que la consommation mémoire sera plus élevée, et comme la mémoire tampon de morceau doit être allouée par processus, des valeurs plus élevées de process-max entraînent une consommation mémoire globale plus importante.

Notez que les tailles de morceau valides varient selon le type de stockage et la plateforme. Par exemple, AWS S3 impose une taille minimale de morceau de 5MiB. La terminologie relative à la taille du morceau varie selon le type de stockage ; utilisez donc « part size » pour AWS S3, « chunk size » pour GCS et « block size » pour Azure lorsque vous recherchez les valeurs minimales ou maximales.

Si un fichier est plus grand que 1GiB (la taille maximale que PostgreSQL crée par défaut), la taille de tranche sera augmentée progressivement jusqu’à la valeur maximale autorisée afin de terminer le téléchargement du fichier.

default (depending on repo-type):
    azure - 4MiB
    gcs - 4MiB
    s3 - 5MiB

allow range (depending on repo-type):
    azure - [4MiB, 1GiB]
    gcs - [4MiB, 1GiB]
    s3 - [5MiB, 1GiB]

example: repo1-storage-upload-chunk-size=16MiB

Option de vérification du certificat de stockage du dépôt (--repo-storage-verify-tls)

Vérification du certificat du dépôt de stockage.

Cette option permet d’activer/désactiver la vérification du certificat TLS du serveur de stockage (par exemple, S3, Azure). La désactivation ne doit être utilisée que pour des tests ou d’autres scénarios où un certificat a été auto-signé.

default: y
example: repo1-storage-verify-tls=n

Noms obsolètes : repo-azure-verify-tls, repo-s3-verify-ssl, repo-s3-verify-tls

Créez des liens symboliques dans le dépôt.

Active la création du latest et des liens symboliques de tablespace. Ces liens symboliques sont particulièrement utiles lors de la récupération in situ à l’aide de captures instantanées dans le dépôt, ce qui constitue un cas d’utilisation peu courant.

Bien que cette fonctionnalité soit probablement inutile pour la grande majorité des utilisateurs, elle reste activée par défaut pour des raisons de compatibilité avec les anciennes versions. Toutefois, il peut être utile de désactiver les liens symboliques pour les stockages de type Posix qui ne les prennent pas en charge.

default: y
example: repo1-symlink=n

Heure cible pour l’option dépôt (--repo-target-time)

Heure cible pour le dépôt.

Le temps cible définit l’instant auquel les commandes lisent un dépôt sur un stockage versionné. Cela permet à la commande de lire le dépôt tel qu’il était à un instant donné, afin de récupérer des données supprimées ou corrompues par une erreur utilisateur ou un logiciel malveillant.

Le stockage versionné est pris en charge par S3, GCS et Azure, mais il est généralement désactivé par défaut. En plus d’activer la versioning, il peut être utile d’activer le verrouillage d’objets pour S3, ou la suppression progressive pour GCS ou Azure.

Lorsque l’option repo-target-time est spécifiée, l’option repo doit également être fournie. Il est probable que tous les types de dépôt ne prennent pas en charge la versionning, et il est généralement préférable de cibler un seul dépôt pour la récupération.

Notez que les comparaisons avec l’horodatage de stockage sont <= à l’horodatage fourni et que les millisecondes sont tronquées de l’horodatage lorsqu’elles sont fournies.

example: repo-target-time=2024-08-08 12:12:12+00

Option de type de dépôt (--repo-type)

Type de stockage utilisé pour le dépôt.

Les types de dépôt suivants sont pris en charge :

  • azure - Service de stockage Blob Azure
  • cifs - Comme posix, mais désactive les liens et les fsyncs de répertoire
  • gcs - Google Cloud Storage
  • posix - Systèmes de fichiers conformes à Posix
  • s3 - AWS Simple Storage Service
  • sftp - Protocole de transfert de fichiers sécurisé

Lorsqu’un montage NFS est utilisé comme dépôt posix, les mêmes règles s’appliquent à pgBackRest qu’indiquées dans la documentation PostgreSQL : Création d’un cluster de base de données - Systèmes de fichiers .

default: posix
example: repo1-type=cifs

Options de restauration

La section restore définit les paramètres utilisés pour la restauration des sauvegardes.

Option Mode archive (--archive-mode)

Conserver ou désactiver l’archivage sur le cluster restauré.

Cette option permet de conserver ou de désactiver l’archivage sur un cluster restauré. Cela est utile lorsque le cluster doit être promu pour effectuer certaines opérations, mais n’est pas destiné à devenir le nouveau principal. Dans ce cas, il n’est pas recommandé d’envoyer les WAL depuis le cluster vers le dépôt.

Les modes suivants sont pris en charge :

  • off - désactiver l’archivage en définissant archive_mode=off.
  • preserve - conserver le paramètre archive_mode actuel.

NOTE : Cette option n’est pas disponible sous PostgreSQL < 12.

default: preserve
example: archive-mode=off

Option d’exclusion de base de données (--db-exclude)

Restauration en excluant les bases de données spécifiées.

Les bases de données exclues seront restaurées sous forme de fichiers creux, initialisés à zéro, afin de économiser de l’espace, tout en permettant à PostgreSQL de réaliser la récupération. Après la récupération, ces bases de données ne seront pas accessibles, mais pourront être supprimées à l’aide de la commande drop database. L’option --db-exclude peut être spécifiée plusieurs fois afin de préciser plusieurs bases de données à exclure.

Lorsqu’il est utilisé en combinaison avec l’option --db-include, --db-exclude ne s’applique qu’aux bases de données système standard (template0, template1, et postgres).

example: db-exclude=db_main

Option base de données incluse (--db-include)

Restauration uniquement des bases de données spécifiées.

Cette fonctionnalité permet de ne restaurer que les bases de données sélectionnées. Les bases de données non spécifiquement incluses seront restaurées sous forme de fichiers creux, initialisés à zéro, afin de sauvegarder de l’espace, tout en permettant à PostgreSQL de réaliser la récupération. Après la récupération, les bases de données non incluses ne seront pas accessibles, mais peuvent être supprimées à l’aide de la commande drop database.

NOTE :

Les bases de données intégrées (template0, template1 et postgres) sont toujours restaurées, sauf exclusion explicite.

L’option --db-include peut être passée plusieurs fois pour spécifier plus d’une base de données à inclure.

Voir Restauration de bases de données sélectionnées pour plus d’informations et de précautions.

example: db-include=db_main

Restaurez tous les liens symboliques.

Par défaut, les répertoires et fichiers symboliques sont restaurés en tant que répertoires et fichiers normaux dans $PGDATA. Cela est dû au fait qu’il peut ne pas être sécurisé de restaurer les liens symboliques vers leurs destinations d’origine sur un système différent de celui où la sauvegarde d’origine a été effectuée. Cette option restaure tous les liens symboliques exactement comme ils étaient sur le système d’origine où la sauvegarde a été effectuée.

default: n
example: link-all=y

Modifier la destination d’un lien symbolique.

Permet de modifier le fichier ou le chemin de destination d’un lien symbolique lors d’une restauration. Cela est utile pour restaurer sur des systèmes ayant une disposition de stockage différente de celle du système d’origine où la sauvegarde a été générée.

example: link-map=pg_xlog=/data/xlog

Option de récupération (--recovery-option)

Définissez une option dans postgresql.auto.conf ou recovery.conf.

Consultez Configuration du serveur pour obtenir les détails sur les options postgresql.auto.conf ou recovery.conf (assurez-vous de sélectionner votre version de PostgreSQL). Cette option peut être utilisée plusieurs fois.

Pour PostgreSQL >= 12, les options seront écrites dans postgresql.auto.conf. Pour toutes les autres versions, les options seront écrites dans recovery.conf.

NOTE :

L’option restore_command sera générée automatiquement, mais peut être remplacée par cette option. Prenez garde à spécifier votre propre restore_command, car pgBackRest est conçu pour gérer cela à votre place. Les options de récupération cible (recovery_target_name, recovery_target_time, etc.) sont générées automatiquement par pgBackRest et ne doivent pas être définies avec cette option.

Comme pgBackRest ne démarre pas PostgreSQL après avoir écrit le fichier postgresql.auto.conf ou recovery.conf, il est toujours possible d’éditionner/vérifier postgresql.auto.conf ou recovery.conf avant de redémarrer manuellement.

example: recovery-option=primary_conninfo=db.mydomain.com

Option de carte des espaces de table (--tablespace-map)

Restaurez un tablespace dans le répertoire spécifié.

Déplace un tablespace vers un nouvel emplacement pendant la restauration. Cela est utile lorsque les emplacements des tablespaces ne sont pas identiques sur un réplica, ou qu’un système mis à jour dispose de points de montage différents.

Les emplacements des tablespaces ne sont pas stockés dans pg_tablespace, aussi peut-on les déplacer sans risque. Toutefois, déplacer un tablespace vers data_directory n’est pas recommandé et peut entraîner des problèmes. Pour en savoir plus sur le déplacement des tablespaces, http://www.databasesoup.com/2013/11/moving-tablespaces.html constitue une bonne ressource.

example: tablespace-map=ts_01=/db/ts_01

Option de mappage de tous les espaces de tableaux (--tablespace-map-all)

Restaurez tous les tablespace dans le répertoire spécifié.

Les espaces de table sont restaurés dans leurs emplacements d’origine par défaut. Ce comportement peut être modifié pour chaque espace de table grâce à l’option tablespace-map, mais il peut parfois être préférable de rediriger tous les espaces de table vers un nouveau répertoire d’un coup. Cela est particulièrement utile pour les systèmes de développement ou de préproduction qui peuvent ne pas avoir la même disposition de stockage que le système d’origine où la sauvegarde a été générée.

Le chemin spécifié sera le chemin parent utilisé pour créer tous les espaces de table dans la sauvegarde.

AVERTISSEMENT :

Les espaces de table créés après le début de la sauvegarde ne seront pas mappés. Effectuez une nouvelle sauvegarde après la création d’un espace de table si le mappage est requis.

example: tablespace-map-all=/data/tablespace

Options serveur

La section server définit les options utilisées pour configurer le serveur TLS.

Option d’adresse serveur TLS (--tls-server-address)

Adresse du serveur TLS.

Adresse IP sur laquelle le serveur écoute les requêtes clients.

default: localhost
example: tls-server-address=*

Option Clients autorisés du serveur TLS (--tls-server-auth)

Clients autorisés du serveur TLS.

Les clients sont autorisés sur le serveur en vérifiant leur certificat et en comparant leur CN (Nom commun) au moyen d’une liste configurée sur le serveur via l’option tls-server-auth.

Un client CN peut être autorisé pour autant de stanzas que nécessaire en fournissant une liste séparée par des virgules à l’option tls-server-auth ou pour toutes les stanzas en spécifiant tls-server-auth=client-cn=*. Les caractères génériques ne peuvent pas être utilisés pour le CN du client.

example: tls-server-auth=client-cn=stanza1,stanza2

Option Autorités de certification du serveur TLS (--tls-server-ca-file)

Autorités de certification du certificat serveur TLS.

Vérifie que les certificats client sont signés par une autorité de certification de confiance.

example: tls-server-ca-file=/path/to/server.ca

Option de certificat serveur TLS (--tls-server-cert-file)

Fichier de certificat serveur TLS.

Envoyé au client pour indiquer l’identité du serveur.

example: tls-server-cert-file=/path/to/server.crt

Option de clé de serveur TLS (--tls-server-key-file)

Fichier de clé du serveur TLS.

Vérifie que le certificat serveur a été envoyé par son propriétaire.

example: tls-server-key-file=/path/to/server.key

Option de port serveur TLS (--tls-server-port)

Port du serveur TLS.

Port sur lequel le serveur écoute les requêtes clients.

default: 8432
allowed: [1, 65535]
example: tls-server-port=8000

Options de stanza

Un stanza définit la configuration de sauvegarde pour un cluster de base de données PostgreSQL spécifique. La section stanza doit définir le chemin du cluster de base de données et l’hôte/utilisateur si le cluster de base de données est distant. En outre, toute section de configuration globale peut être remplacée afin de définir des paramètres spécifiques au stanza.

Indexation : Toutes les options pg- sont indexées afin de permettre la configuration de plusieurs hôtes PostgreSQL. Par exemple, un hôte principal unique est configuré à l’aide des options pg1-path, pg1-port, etc. Si un serveur de repli est configuré, indexez les options pg- sur l’hôte du dépôt sous la forme pg2- (par exemple, pg2-host, pg2-path, etc.).

Option base de données PostgreSQL (--pg-database)

Base de données PostgreSQL.

Le nom de la base de données utilisé lors de la connexion à PostgreSQL. La valeur par défaut est généralement la meilleure option, mais certaines installations peuvent ne pas contenir cette base de données.

Notez que, pour des raisons historiques, le paramétrage de la variable d’environnement PGDATABASE sera ignoré.

default: postgres
example: pg1-database=backupdb

Option Hôte PostgreSQL (--pg-host)

Hôte PostgreSQL pour une opération à distance.

Utilisé pour les sauvegardes où l’hôte PostgreSQL est différent de l’hôte du dépôt.

example: pg1-host=db.domain.com

Nom obsolète : db-host

Option Fichier de l’Autorité de certification du serveur PostgreSQL (--pg-host-ca-file)

Fichier de l’autorité de certification du serveur PostgreSQL.

Utilisez un fichier CA autre que celui par défaut du système pour vous connecter à l’hôte PostgreSQL.

example: pg1-host-ca-file=/etc/pki/tls/certs/ca-bundle.crt

Option Chemin de l’Autorité de certification du serveur PostgreSQL (--pg-host-ca-path)

Chemin de l’autorité de certification du serveur PostgreSQL.

Utilisez un chemin de certificat d’autorité de certification (CA) autre que celui par défaut du système pour établir la connexion avec l’hôte PostgreSQL.

example: pg1-host-ca-path=/etc/pki/tls/certs

Option Fichier de certificat d’hôte PostgreSQL (--pg-host-cert-file)

Fichier de certificat d’hôte PostgreSQL.

Envoyé à l’hôte PostgreSQL pour prouver l’identité du client.

example: pg1-host-cert-file=/path/to/client.crt

Option de commande hôte PostgreSQL (--pg-host-cmd)

Hôte PostgreSQL : commande pgBackRest.

Requis uniquement si le chemin vers la commande pgBackRest est différent sur les hôtes locaux et PostgreSQL. Si ce n’est pas défini, la commande sur l’hôte PostgreSQL sera définie de la même manière que celle sur l’hôte local.

default: [path of executed pgbackrest binary]
example: pg1-host-cmd=/usr/lib/backrest/bin/pgbackrest

Nom obsolète : db-cmd

Option de configuration hôte PostgreSQL (--pg-host-config)

Fichier de configuration du serveur de base de données pgBackRest.

Spécifie l’emplacement du fichier de configuration sur l’hôte PostgreSQL. Cette option est nécessaire uniquement si le fichier de configuration PostgreSQL est situé à un emplacement différent du fichier de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_FILE
example: pg1-host-config=/conf/pgbackrest/pgbackrest.conf

Nom obsolète : db-config

Chemin d’inclusion de la configuration hôte PostgreSQL (--pg-host-config-include-path)

Configuration de l’hôte de base de données pgBackRest incluant le chemin.

Définit l’emplacement du chemin d’inclusion de configuration sur l’hôte PostgreSQL. Cette option est nécessaire uniquement si le chemin d’inclusion de configuration PostgreSQL se trouve dans un emplacement différent du chemin d’inclusion de configuration local.

default: CFGOPTDEF_CONFIG_PATH "/" PROJECT_CONFIG_INCLUDE_PATH
example: pg1-host-config-include-path=/conf/pgbackrest/conf.d

Option de chemin de configuration de l’hôte PostgreSQL (--pg-host-config-path)

Chemin de configuration de l’hôte de base de données pgBackRest.

Définit l’emplacement du chemin de configuration sur l’hôte PostgreSQL. Cette option est nécessaire uniquement si le chemin de configuration PostgreSQL se trouve dans un emplacement différent du chemin de configuration local.

default: CFGOPTDEF_CONFIG_PATH
example: pg1-host-config-path=/conf/pgbackrest

Option fichier clé hôte PostgreSQL (--pg-host-key-file)

Fichier de clé hôte PostgreSQL.

Vérifie que le certificat client a été envoyé par le propriétaire.

example: pg1-host-key-file=/path/to/client.key

Option Port hôte PostgreSQL (--pg-host-port)

Port de l’hôte PostgreSQL lorsque pg-host est défini.

Utilisez cette option pour spécifier un port non par défaut pour le protocole d’hôte PostgreSQL.

NOTE :

Lorsque pg-host-type=ssh, il n’existe pas de valeur par défaut pour pg-host-port. Dans ce cas, le port sera celui configuré pour la commande spécifiée par cmd-ssh.

default (depending on pg-host-type):
    tls - 8432

allowed: [0, 65535]
example: pg1-host-port=25

Nom obsolète : db-ssh-port

Type de protocole d’hôte PostgreSQL (--pg-host-type)

Type de protocole hôte PostgreSQL.

Les types de protocole suivants sont pris en charge :

  • ssh - Shell sécurisé.
  • tls - Serveur TLS pgBackRest.
default: ssh
example: pg1-host-type=tls

Option utilisateur hôte PostgreSQL (--pg-host-user)

Utilisateur de connexion au serveur PostgreSQL lorsqu’pg-host est défini.

Cet utilisateur possédera également le processus pgBackRest distant et initiera les connexions à PostgreSQL. Pour que cela fonctionne correctement, l’utilisateur doit être le propriétaire du cluster de base de données PostgreSQL, ce qui correspond généralement à postgres, la valeur par défaut.

default: postgres
example: pg1-host-user=db_owner

Nom obsolète : db-user

Option Chemin PostgreSQL (--pg-path)

Répertoire de données PostgreSQL.

Il doit être identique à la valeur data_directory rapportée par PostgreSQL. Même si cette valeur peut être lue à divers endroits, il est prudent de la définir afin de garantir sa disponibilité en cas de restauration ou de sauvegarde hors ligne.

L’option pg-path est vérifiée par rapport à la valeur rapportée par PostgreSQL à chaque sauvegarde en ligne, elle doit donc toujours être à jour.

example: pg1-path=/data/db

Nom obsolète : db-path

Option de port PostgreSQL (--pg-port)

Port PostgreSQL.

Port sur lequel PostgreSQL est en cours d’exécution. Ce paramètre n’a généralement pas besoin d’être spécifié, car la plupart des clusters PostgreSQL s’exécutent sur le port par défaut.

default: 5432
allowed: [0, 65535]
example: pg1-port=6543

Nom obsolète : db-port

Option Chemin du socket PostgreSQL (--pg-socket-path)

Chemin du socket Unix de PostgreSQL.

Répertoire du socket Unix spécifié lors du démarrage de PostgreSQL. pgBackRest recherche automatiquement dans l’emplacement standard de votre système d’exploitation, aussi il est généralement inutile de préciser ce paramètre, sauf si le répertoire du socket a été explicitement modifié à l’aide du paramètre unix_socket_directories dans postgresql.conf.

example: pg1-socket-path=/var/run/postgresql

Nom obsolète : db-socket-path

Option utilisateur de base de données PostgreSQL (--pg-user)

Utilisateur de base de données PostgreSQL.

Le nom d’utilisateur de la base de données utilisé lors de la connexion à PostgreSQL. Si non spécifié, pgBackRest se connectera avec l’utilisateur système local ou PGUSER.

example: pg1-user=backupuser

6 - Notes de version

Historique des versions de pgBackRest avec un journal des modifications détaillé pour chaque version.

Introduction

Les numéros de version de pgBackRest se composent de deux parties : majeure et mineure. Une version majeure peut rompre la compatibilité avec la version majeure précédente, mais les versions v2 sont entièrement compatibles avec les dépôts v1 et acceptent toutes les options v1. Les versions mineures peuvent inclure des correctifs et des fonctionnalités, mais ne modifient pas le format du dépôt et s’efforcent d’éviter tout changement aux options et aux noms. La documentation de la version v1 est disponible ici . Les notes relatives à une version peuvent également contenir des « Notes supplémentaires », mais les modifications dans cette section n’ont d’impact direct que sur la documentation ou le jeu de tests et n’affectent pas le codebase de pgBackRest.


Version stable actuelle

Notes de version v2.59.1

Prise en charge de PostgreSQL 19beta3

Sortie le 17 août 2026

Correctifs de bogues :

  • Corriger le blocage lorsque la taille du tampon de morceau est inférieure à celle du tampon d’entrée. (Révisé par Andrew Pogrebnoi, Douglas J Hunley. Signalement par crajac66.)
  • Comparer une étiquette de sauvegarde nouvelle uniquement avec son propre jeu de sauvegardes complètes. (Révisé par Douglas J Hunley. Signalement par Anton Glushakov.)
  • Corriger les archives sources générées par GitHub qui manquent des fichiers nécessaires à la compilation. (Signalement par aardvarkzed.)

Fonctionnalités :

  • Prise en charge de PostgreSQL 19beta3. (Contribution de Lardière Sébastien. Révisé par David Steele.)

Améliorations de la documentation :

  • Document exception pour les points dans les noms de bucket S3 lorsque repo-s3-uri-style=path.
  • Supprimez la configuration explicite hot_standby du guide utilisateur.

Versions stables

Notes de version v2.59.0

Prise en charge de PostgreSQL 19beta2

Sortie le 20 juillet 2026

NOTE AUX PAQUETEURS : Un nouveau paquet source est disponible, qui simplifie le processus de compilation en fournissant une documentation HTML prégénérée, une page de manuel et du code. Ce paquet est joint à chaque version comme un élément et porte le nom pgbackrest-{version}.tar.gz. Consultez README.md dans le paquet pour plus de détails. Veuillez utiliser ce nouveau paquet source afin d’éviter les outils supplémentaires nécessaires à la génération du code dans les versions futures. Consultez Nouveau paquet source pour plus d’informations. NOTE AUX PAQUETEURS : Une dépendance optionnelle supplémentaire est désormais requise : libsystemd. NOTE IMPORTANTE : À compter de cette version, seuls les commandes restore peuvent être exécutées en tant que root par défaut. Utilisez allow-root pour exécuter d’autres commandes en tant que root (ce qui n’est toutefois pas recommandé).

Correctifs de bogues :

  • Corriger la suppression par expire d’une sauvegarde en cours sur un autre hôte. (Révisé par Douglas J Hunley. Signalé par Dmitrii.)
  • Corriger la non-application de archive-push-queue-max lorsqu’un fichier WAL provoque une erreur. (Révisé par Stefan Fercot. Signalé par vut12.)
  • Corriger l’échec asynchrone de archive-get pendant une récupération traversant un changement de timeline. (Révisé par Douglas J Hunley. Signalé par Jimmy Yih.)
  • Corriger un possible dépassement de tampon dans le module d’erreur. (Corrigé par Christophe Pettus. Révisé par David Steele.)
  • Corriger une utilisation après libération du client du protocole parallèle. (Révisé par Douglas J Hunley. Signalé par Georgy Shelkovy.)
  • Corriger un dépassement de tas lorsqu’une option pg est définie sans pg1. (Révisé par Douglas J Hunley. Signalé par Naveen.)

Fonctionnalités :

  • Prise en charge de PostgreSQL 19beta2. (Révisé par Stefan Fercot.)
  • Ajout de l’option archive-expire-before pour nettoyer l’archive WAL. (Contribué par Stefan Fercot. Révisé par David Steele.)
  • Ajout de la suppression par lots pour le stockage Azure. (Révisé par Douglas J Hunley, Crispy.)
  • Ajout de la prise en charge des S3 Outposts. (Contribué par Shiva Kumar Ambigi. Révisé par David Steele, Roberto Mello.)
  • Ajout de l’authentification par processus S3. (Révisé par Andrew Charlton. Suggéré par Andrew Charlton.)

Améliorations :

  • Reconnecter le stockage SFTP après que le serveur a fermé une connexion inactif. (Révisé par Stefan Fercot. Proposé par mustafa0x, tisserat.)
  • Ajouter le cache utilisateur/groupe pour une construction plus rapide du manifeste. (Contribué par Gunnar Lindholm. Révisé par David Steele.)
  • Ajouter la progression de sauvegarde par répertoire dans la sortie de la commande info. (Contribué par Will Morland. Révisé par David Steele, Stefan Fercot.)
  • Ajouter des vérifications backup.info à la commande verify. (Contribué par Denis Garsh. Révisé par David Steele, Douglas J Hunley.)
  • Permettre la configuration du point de terminaison S3 STS. (Contribué par Simon Gratton. Révisé par David Steele.)
  • Ajouter archive-push-batch-size pour limiter la quantité de WAL envoyée par exécution asynchrone. (Révisé par Stefan Fercot.)
  • Quitter l’opération asynchrone archive-push à la première erreur. (Révisé par Stefan Fercot. Proposé par Lardière Sébastien.)
  • Renforcer l’analyse des réponses HTTP chunkées. (Contribué par Shubham. Révisé par David Steele.)
  • Erreur lors de l’exécution en tant que root sauf si allow-root est activé. (Révisé par Douglas J Hunley.)
  • Moins de recherches binaires lors de la construction du manifeste. (Contribué par Gunnar Lindholm. Révisé par David Steele.)
  • Améliorer les performances de recherche lors d’une restauration incrémentielle par bloc. (Révisé par David Christensen, Douglas J Hunley.)
  • Regrouper les fichiers de sauvegarde dans l’ordre plutôt que de rechercher un meilleur ajustement. (Révisé par Stefan Fercot.)
  • Signaler l’erreur sous-jacente lorsqu’une requête échoue à se terminer. (Révisé par Andrew Pogrebnoi. Suggéré par Marco Fontana.)
  • Signaler l’erreur réelle lorsqu’une requête de crédentials S3 échoue. (Révisé par Douglas J Hunley. Suggéré par Mitchell Grice.)
  • Signaler les erreurs de chemin de stockage temporaire archive-push dans le journal PostgreSQL. (Révisé par Douglas J Hunley. Suggéré par Don Seiler.)
  • Indication que pgBackRest pourrait être obsolète lorsqu’une version n’est plus prise en charge.
  • Ajouter l’intégration avec systemd notify. (Contribué par Andrew Jackson. Révisé par David Steele.)
  • Supprimer les erreurs unused parameter des sondes du compilateur meson. (Contribution de Jörg Plate. Révisé par David Steele.)
  • C11 est désormais la norme C minimale. (Révisé par Mohammad Ali Nazir Kosar.)

Améliorations de la documentation :

  • Rendre l’option stanza interne pour les commandes repo-*. (Révisé par Stefan Fercot.)
  • Documenter le fait que les paramètres de chiffrement sont lus à partir de la section globale. (Révisé par Stefan Fercot. Suggéré par Ron Johnson.)
  • Documenter que expire-auto utilise la configuration de la commande backup. (Révisé par Stefan Fercot. Suggéré par Lardière Sébastien.)
  • Documenter l’ajustement de la directive su de logrotate pour un utilisateur dédié. (Révisé par Douglas J Hunley. Suggéré par lkanbus.)
  • Documenter que les commentaires se terminant à la fin de ligne ne sont pas pris en charge dans les fichiers de configuration. (Révisé par Douglas J Hunley. Suggéré par Alex Richman.)

Améliorations de la suite de tests :

  • Corriger les conflits de groupes dans les conteneurs CI Alpine. (Contribué par Artur Zakirov. Revu par David Steele.)

Notes de version v2.58.0

Améliorations du stockage objet

Sortie le 19 janvier 2026

AVERTISSEMENT IMPORTANT : Les valeurs minimales de l’option repo-storage-upload-chunk-size ont augmenté. Elles correspondent désormais au minimum autorisé par les fournisseurs.

Correctifs de bogues :

  • Corriger un blocage dû à la journalisation dans un gestionnaire de signal. (Correctif apporté par Maxim Michkov. Revu par David Steele.)

Fonctionnalités :

  • Prise en charge HTTP pour S3, GCS et Azure. (Contribué par Will Morland. Revu par David Steele.)
  • Permettre l’expiration de la sauvegarde complète la plus ancienne, indépendamment de la rétention actuelle. (Contribué par Stefan Fercot. Revu par David Steele. Suggéré par Ron Johnson.)
  • Prise en charge des identités gérées Azure. (Contribué par Moiz Ibrar, Matthew Mols. Revu par David Steele.)
  • Prise en charge expérimentale de l’identité de pod S3 EKS. (Contribué par Pierre BOUTELOUP. Revu par David Steele.)
  • Permettre la configuration des suites de chiffrement TLS. (Contribué par Gunnar “Nick” Bluth. Revu par David Steele.)
  • Permettre la définition de la priorité du processus. (Revu par Douglas J Hunley.)

Améliorations :

  • Autoriser les points dans les noms de bucket S3 lors de l’utilisation d’URI en style chemin. (Contribué par Joakim Hindersson. Revu par David Steele.)
  • Exiger TLS >= 1.2 sauf si la vérification est désactivée. (Revu par Douglas J Hunley, Gunnar “Nick” Bluth.)
  • Ajuster dynamiquement la taille des morceaux S3/GCS/Azure pour les téléchargements volumineux. (Revu par Douglas J Hunley. Suggéré par Timothée Peignier.)
  • Optimiser la taille des morceaux S3/GCS/Azure pour les petits fichiers. (Revu par Douglas J Hunley.)
  • Supprimer le support de PostgreSQL 9.5. (Revu par Douglas J Hunley.)
  • Améliorer la journalisation de la valeur par défaut pour les options ayant une dépendance non résolue. (Revu par Stefan Fercot.)

Améliorations de la documentation :

  • Supprimer la configuration explicite max_wal_senders/wal_level du guide utilisateur. (Suggéré par Jamie Nguyen.)
  • Préciser que le regroupement est utile pour les systèmes de fichiers à grandes tailles de bloc. (Suggéré par Ron Johnson.)

Notes de version v2.57.0

Supprimer les liens symboliques du dépôt

Sortie le 18 octobre 2025

Correctifs de bogues :

  • Décongestionner les délais d’attente HTTP/TLS/socket. (Révisé par David Christensen.)
  • Corriger un éventuel plantage dans le message d’erreur de somme de contrôle de page. (Corrigé par Zsolt Parragi. Révisé par David Steele.)

Fonctionnalités :

  • Ajouter l’option repo-symlink pour supprimer la création des liens symboliques du dépôt. (Révisé par Douglas J Hunley. Proposé par Ron Johnson.)

Améliorations :

  • Ajouter des tentatives HTTP pour les erreurs 408 et 429. (Révisé par David Christensen.)

Notes de version v2.56.0

Améliorations des informations de progression

Sortie le 21 juillet 2025

Correctifs de bogues :

  • Corriger le problème d’expiration à la demande lorsque aucune sauvegarde n’est présente dans un dépôt. (Révisé par Stefan Fercot. Signalement par Anup Gupta.)

Fonctionnalités :

  • Ajouter la progression de la restauration à la sortie de la commande info. (Contribué par Denis Garsh, Maxim Michkov. Revu par David Steele.)
  • Ajouter le niveau de détail uniquement progression pour la sortie de la commande info. (Contribué par Denis Garsh. Revu par David Steele, Stefan Fercot.)

Améliorations :

  • Réessayer les lectures échouées sur les magasins d’objets. (Révisé par David Christensen.)
  • Corriger les valeurs par défaut dans l’aide en ligne de commande. (Révisé par David Christensen, Chris Bandy.)

Améliorations de la documentation :

  • Décrivez les valeurs d’option discrètes sous forme de liste lorsque cela est approprié. (Contribué par Anton Kurochkin. Revu par David Steele.)
  • Corrigez « inférieur à » dans la sortie d’aide pour l’option archive-mode. (Contribué par Anton Kurochkin. Revu par David Steele.)

Notes de version v2.55.1

Correctifs de bogues

Sortie le 5 mai 2025

Correctifs de bogues :

  • Annuler « calculer le content-md5 sur S3 uniquement lorsqu’il est nécessaire ». (Révisé par David Christensen. Signalement par Frank Brendel.)
  • Corriger la vérification des bornes inférieures pour les clés d’option. (Révisé par David Christensen, Wolfgang Walther. Signalement par Wolfgang Walther.)

Notes de version v2.55.0

Améliorations de vérification et prise en charge de PostgreSQL 18

Sortie le 21 avril 2025

Correctifs de bogues :

  • Corriger le problème de restauration incrémentielle par bloc sur un dépôt non par défaut. (Révisé par David Christensen, Aleksander Łukasz. Signalement par Aleksander Łukasz.)
  • Ne pas définir recovery_target_timeline=current pour PostgreSQL < 12. (Révisé par Stefan Fercot.)
  • Corriger la journalisation de la plage d’archives expirées. (Révisé par Stefan Fercot. Signalement par Aleš Zelený.)
  • Corriger le rapport d’erreur pour les requêtes sans résultat. (Révisé par Stefan Fercot. Signalement par Susantha Bathige.)

Fonctionnalités :

  • Vérifier le timeline cible de la récupération. (Révisé par Stefan Fercot.)
  • Permettre la vérification d’une sauvegarde spécifiée. (Contribué par Maxim Michkov. Révisé par David Steele.)
  • Ajouter le support du paiement des frais S3/GCS. (Contribué par Timothée Peignier. Révisé par David Steele.)
  • Prise en charge de PostgreSQL 18. (Révisé par Stefan Fercot.)
  • Permettre les connexions à PostgreSQL via des sockets de domaine abstraits. (Révisé par Chris Bandy. Suggéré par Chris Bandy.)
  • Ajouter une sortie numérique à la commande version. (Contribué par Stefan Fercot. Révisé par David Steele.)

Améliorations :

  • Autoriser la commande de sauvegarde à fonctionner sur des dépôts distants. (Révisé par Stefan Fercot.)
  • Utiliser lz4 pour la compression du protocole. (Révisé par Stefan Fercot.)
  • Calculer content-md5 sur S3 uniquement lorsqu’il est nécessaire. (Révisé par David Christensen.)
  • Afficher un avertissement lorsque la valeur d’une option à plusieurs clés est remplacée. (Révisé par David Christensen, Stefan Fercot.)
  • Ajouter un journal détaillé pour le chemin d’archive expiré. (Contribué par Stefan Fercot. Révisé par David Steele.)
  • Supprimer le support de PostgreSQL 9.4. (Révisé par Stefan Fercot.)
  • Supprimer la construction autoconf/make. (Révisé par David Christensen.)

Améliorations de la documentation :

  • Corriger la documentation concernant la spécification de plusieurs stanzas avec tls-server-auth. (Révisé par David Christensen, Stefan Fercot. Proposé par Terry MacAndrew.)
  • Préciser la durée de validité des sauvegardes incrémentielles. (Révisé par Stefan Fercot.)
  • Préciser la condition de correspondance des versions locales/distantes de pgBackRest. (Contribué par Greg Clough. Révisé par David Steele.)
  • Ajouter une question fréquente sur l’exportation d’un cluster auto-contenu. (Contribué par Stefan Fercot. Révisé par David Steele.)
  • Précaution --tablespace-map-all concernant la création de tablespaces. (Révisé par Stefan Fercot, Christophe Courtois. Proposé par Christophe Courtois.)
  • Préciser le comportement de --repo-retention-full-type. (Révisé par Antoine Beaupré. Proposé par Antoine Beaupré.)
  • Modifier la recommandation concernant les magasins d’objets de --process-max à --repo-bundle. (Révisé par Stefan Fercot.)
  • Mettre à jour unix_socket_directory vers unix_socket_directories. (Contribué par hyunkyu han. Révisé par David Steele.)
  • Ne pas placer spool-path dans pg_xlog/pg_wal. (Révisé par Martín Marqués, Don Seiler. Suggéré par Martín Marqués.)

Notes de version v2.54.2

Correction de bogue

Sortie le 20 janvier 2025

Correctifs de bogues :

  • Corriger le problème survenu après avoir désactivé le regroupement avec l’incrémentation par bloc activée. (Révisé par David Christensen.)

Améliorations de la documentation :

  • Préciser le comportement des fichiers de configuration multiples. (Révisé par Paul Bierly. Proposé par Paul Bierly.)

Notes de version v2.54.1

Correction de bogue

Sortie le 16 décembre 2024

Correctifs de bogues :

  • Corriger le problème lié aux commandes version/help qui tentaient de charger pgbackrest.conf. (Révisé par Stefan Fercot. Signalement par Bradford Boyle, Julian.)

Améliorations de la suite de tests :

  • Stabiliser l’archivage asynchrone dans les tests d’intégration. (Contribué par Viktor Kurilko. Revu par David Steele.)

Notes de version v2.54.0

Heure cible pour le stockage versionné

Sortie le 21 octobre 2024

NOTE AUX PAQUETEURS : Cette version est la dernière à prendre en charge la construction autoconf/make. Veuillez migrer vers meson si ce n’est pas déjà fait. Les correctifs de version 2.54.X (le cas échéant) continueront à prendre en charge autoconf/make.

Correctifs de bogues :

  • Corriger les performances des requêtes PostgreSQL sur de grands jeux de données. (Correctif apporté par Thibault Vincent, David Steele. Revu par David Christensen, Antoine Millet. Signalement par Antoine Millet.)

Fonctionnalités :

  • Autorise la lecture des dépôts sur un stockage versionné à une heure cible. (Révisé par Stefan Fercot, David Christensen.)

  • Autorise la réalisation de la sauvegarde en mode redondant demandée, même en l’absence de serveur redondant. (Révisé par Stefan Fercot.)

Améliorations :

  • Résumer la liste de référence des sauvegardes dans la sortie texte de la commande info. (Contribué par Stefan Fercot. Revu par David Steele.)
  • Actualiser le jeton web-id pour chaque authentification S3. (Contribué par Brent Graveland. Revu par David Steele.)
  • Afficher correctement les valeurs actuelles des options indexées dans l’aide. (Revu par David Christensen.)
  • Enregistrer backup.info uniquement lorsque son contenu a changé. (Revu par Stefan Fercot.)
  • Supprimer la limitation relative à la lecture de fichiers en parallèle lors d’une restauration. (Revu par David Christensen.)
  • Améliorer les messages d’erreur SFTP. (Contribué par Reid Thompson. Revu par David Steele.)

Fonctionnalités de la documentation :

  • Ajouter une section d’optimisation des performances au guide utilisateur. (Révisé par Stefan Fercot.)

Améliorations de la documentation :

  • Préciser la source de data_directory. (Contribué par Stefan Fercot. Révisé par David Steele. Suggéré par Matthias.)
  • Meilleure logique pour déterminer quand un résumé doit être en minuscules. (Suggéré par Daniel Westermann.)

Notes de version v2.53.1

Prise en charge de PostgreSQL 17

Sortie le 19 août 2024

Correctifs de bogues :

  • Corrigez les permissions lorsque restore est exécuté en tant qu’utilisateur root. (Révisé par Stefan Fercot. Signalement par Will M.)
  • Corrigez le plantage (segfault) sur les erreurs de connexion différées. (Révisé par David Christensen. Signalement par Anton Glushakov.)
  • Ignorez la vérification des doublons du dépôt local pour SFTP. (Corrigé par Reid Thompson. Révisé par David Steele. Signalement par Anton Kurochkin.)

Améliorations :

  • Prise en charge de PostgreSQL 17.

Notes de version v2.53

Sauvegardes concurrentes

Sortie le 22 juillet 2024

NOTE IMPORTANTE : La valeur par défaut de l’option log-level-stderr a été modifiée de warn à off. Cela facilite la détection des erreurs lorsqu’on redirige uniquement stdout. Pour conserver le comportement antérieur, définissez log-level-stderr=warn. NOTE AUX PAQUETEURS : La bibliothèque lz4 est désormais requise par la construction meson. NOTE AUX PAQUETEURS : La prise en charge du compilateur pour __builtin_clzl() et __builtin_bswap64() est désormais requise par la construction meson.

Correctifs de bogues :

  • Correction d’une erreur de renommage SFTP lorsque le fichier existe déjà. (Correctif apporté par Reid Thompson. Revu par David Steele. Signalement par ahmed112212.)

Fonctionnalités :

  • Autoriser les sauvegardes à s’exécuter en parallèle sur des dépôts différents. (Révisé par Reid Thompson, Stefan Fercot.)

  • Prise en charge des SAN basés sur l’IP pour la validation des certificats TLS. (Contribué par David Christensen. Révisé par David Steele.)

Améliorations :

  • Définir l’option log-level-stderr sur off par défaut. (Révisé par Greg Sabino Mullane et Stefan Fercot.)
  • Autoriser d’autres tailles de segment WAL pour PostgreSQL ≤ 10. (Contribution de Viktor Kurilko. Révisé par David Steele.)
  • Ajouter une indication invitant à consulter le journal d’autorisation SFTP. (Contribution de Vitalii Zurian. Révisé par Reid Thompson et David Steele.)

Améliorations de la documentation :

  • Préciser le comportement multi-repo de archive-push. (Révisé par Stefan Fercot.)

Notes de version v2.52.1

Correction de bogue

Sortie le 25 juin 2024

Correctifs de bogues :

  • Corriger le problème des fichiers plus volumineux sur la réplique que sur le primaire. (Révisé par Stefan Fercot. Signalement par Nicolas Lassimonne.)

Notes de version v2.52

Prise en charge de PostgreSQL 17beta1

Sortie le 27 mai 2024

NOTE AUX PAQUETEURS : Le système de construction de pgBackRest est désormais meson. Le système de construction autoconf/make ne recevra plus de nouvelles fonctionnalités et sera supprimé après quelques versions.

Fonctionnalités :

  • Ajout de la prise en charge de la suppression par lot GCS. (Révisé par Reid Thompson.)
  • Prise en charge du chiffrement S3 SSE-C. (Révisé par Tim Jones. Proposé par Tim Jones.)
  • Prise en charge de PostgreSQL 17beta1. (Révisé par Stefan Fercot.)

Améliorations :

  • Permettre la désactivation explicite des dépendances optionnelles lors des compilations meson. (Contribué par Michael Schout. Revu par David Steele.)
  • Rechercher dynamiquement python lors de la compilation meson. (Contribué par Michael Schout. Revu par David Steele.)
  • Marquer la cible de compilation pgbackrest comme installable dans meson. (Contribué par Bradford Boyle. Revu par David Steele.)

Améliorations de la documentation :

  • Mettre à jour la documentation de start/stop pour qu’elle reflète la fonctionnalité réelle. (Révisé par Stefan Fercot.)

Notes de version v2.51

Système de construction Meson

Sortie le 25 mars 2024

Correctifs de bogues :

  • Ignorer les fichiers de taille nulle lors d’une restauration incrémentielle par bloc. (Révisé par Sebastian Krause, René Højbjerg Larsen. Signalement par Sebastian Krause.)
  • Corriger la régression de performance dans la liste de stockage. (Révisé par Stephen Frost. Signalement par Maksym Boguk.)
  • Corriger la journalisation de progression lorsque la taille du fichier change pendant la sauvegarde. (Révisé par Stephen Frost. Signalement par samkingno.)

Améliorations :

  • Amélioration du support des connexions en double pile. (Révisé par Stephen Frost. Proposé par Timothée Peignier.)
  • Utilisation de meson comme système de construction principal. (Révisé par Stephen Frost.)
  • Détection des fichiers inchangés lors d’une sauvegarde incrémentielle non delta. (Révisé par Stephen Frost.)
  • Empêcher une récupération invalide lorsque backup_label est supprimé. (Révisé par Stephen Frost.)
  • Amélioration de la gestion de la file d’attente des segments WAL archive-push. (Révisé par Stephen Frost.)
  • Limite la fonctionnalité de reprise aux sauvegardes complètes. (Révisé par Stephen Frost, Stefan Fercot.)
  • Mise à jour de la fonctionnalité de reprise pour les sauvegardes incrémentielles par bloc. (Révisé par Stephen Frost.)
  • Permettre --version et --help pour la version et l’aide. (Révisé par Greg Sabino Mullane. Proposé par Greg Sabino Mullane.)
  • Ajout d’un backtrace détaillé dans la construction autoconf/make. (Révisé par Stephen Frost.)

Améliorations de la documentation :

  • Mettre à jour les références à recovery.conf. (Révisé par Stefan Fercot. Suggéré par Stephen Frost.)

Notes de version v2.50

Améliorations des performances et corrections de bogues

Sortie le 22 janvier 2024

Correctifs de bogues :

  • Corriger la lecture courte lors d’une restauration incrémentielle par bloc. (Révisé par Stephen Frost, Brent Graveland. Signalement par Adol Rodriguez, Brent Graveland.)
  • Corriger la suppression de la progression de la sauvegarde dans la sortie info. (Corrigé par Robert Donovan. Révisé par Joe Wildish.)

Améliorations :

  • Conserver les fichiers partiels lors d’une restauration incrémentielle par bloc. (Révisé par Stephen Frost.)
  • Ajouter la prise en charge des tailles de page alternatives au moment de la compilation. (Contribué par Viktor Kurilko. Révisé par David Steele.)
  • Ignorer les fichiers tronqués pendant la sauvegarde lors du regroupement. (Contribué par Georgy Shelkovy. Révisé par David Steele.)
  • Améliorer les messages d’erreur du stockage SFTP. (Contribué par Reid Thompson. Révisé par David Steele.)

Notes de version v2.49

Supprimer le support de PostgreSQL 9.3

Sortie le 27 novembre 2023

Correctifs de bogues :

  • Corriger un problème de réessais. (Révisé par Stephen Frost. Signalement par Norman Adkins, Tanel Suurhans, Jordan English, Timothée Peignier.)
  • Corriger la suppression récursive de chemins dans le pilote de stockage SFTP. (Corrigé par Reid Thompson. Révisé par Stephen Frost. Signalement par Luc.)

Améliorations :

  • Supprimer le support de PostgreSQL 9.3. (Révisé par Stephen Frost.)

Fonctionnalités de la documentation :

  • Options relatives à la maintenance du document. (Révisé par Stefan Fercot.)
  • Mise à jour de la documentation de la restauration à un instant donné pour PostgreSQL >= 13.

Améliorations de la suite de tests :

  • Autoriser l’exécution des tests unitaires config/load sans que libssh2 soit installé. (Contribué par Reid Thompson. Revu par David Steele. Suggéré par Wu Ning.)

Notes de version v2.48

Balises de stockage du dépôt

Sortie le 25 septembre 2023

Correctifs de bogues :

  • Corriger le problème de restauration d’une sauvegarde incrémentielle par bloc sans liste de blocs. (Révisé par Stephen Frost, Burak Yurdakul. Signalement par Burak Yurdakul.)

Fonctionnalités :

  • Ajouter l’option --repo-storage-tag pour créer des balises d’objets. (Révisé par Stephen Frost, Stefan Fercot, Timothée Peignier.)
  • Ajouter la vérification des hôtes connus pour le pilote de stockage SFTP. (Contribué par Reid Thompson. Révisé par Stephen Frost, David Steele.)
  • Prise en charge des connexions en double pile. (Révisé par Stephen Frost.)
  • Ajouter la taille de la sauvegarde terminée/total à la sortie JSON de la commande info. (Contribué par Stefan Fercot. Révisé par David Steele.)

Améliorations :

  • Commande de vérification multi-stanza. (Révisé par Stephen Frost.)
  • Réessayer la lecture de pg_control jusqu’à ce que la somme de contrôle soit valide. (Révisé par Stefan Fercot, Stephen Frost.)
  • Optimiser la vérification du segment WAL après une sauvegarde réussie. (Révisé par Stephen Frost.)
  • Améliorer les performances multi-partie du GCS. (Révisé par Reid Thompson.)
  • Permettre à la commande archive-get de s’exécuter lorsque la stanza est arrêtée. (Révisé par Tom Swartz, David Christensen, Reid Thompson.)
  • Accepter un tilde initial dans les chemins pour les clés publiques/privées SFTP. (Contribué par Reid Thompson. Révisé par David Steele.)
  • Recharger les identifiants GCS avant de renouveler le jeton d’authentification. (Révisé par Stephen Frost. Suggéré par Daniel Farina.)

Correctifs de bogues dans la documentation :

  • Corriger l’exemple de référence de configuration pour l’option tls-server-address. (Correctif apporté par Hartmut Goebel. Revu par David Steele.)
  • Corriger l’exemple de référence de commande pour l’option filter.

Améliorations de la suite de tests :

  • Autoriser l’exécution des tests unitaires storage/sftp sans que libssh2 soit installé. (Contribué par Reid Thompson. Revu par David Steele. Suggéré par Wu Ning.)

Notes de version v2.47

Améliorations des performances et corrections de bogues

Sortie le 24 juillet 2023

Correctifs de bogues :

  • Conserver les informations incrémentielles par bloc dans le manifeste lors d’une sauvegarde incrémentielle. (Révisé par Stephen Frost. Signalement par Francisco Miguel Biete Banon.)
  • Corriger les noms de fichiers incrémentiels dans la commande verify. (Révisé par Reid Thompson. Signalement par Francisco Miguel Biete Banon.)
  • Corriger la sauvegarde incrémentielle automatique erronée lors d’une sauvegarde depuis un serveur de secours. (Révisé par Stephen Frost. Signalement par krmozejko, Don Seiler.)
  • Ignorer recovery.signal pour PostgreSQL >= 12 lorsque la récupération type=none. (Révisé par Stefan Fercot. Signalement par T.Anastacio.)
  • Corriger la génération de libellés uniques pour les sauvegardes diff/incr. (Corrigé par Andrey Sokolov. Révisé par David Steele.)
  • Corriger l’expiration des archives basée sur le temps lorsque aucune sauvegarde n’est expirée. (Révisé par Stefan Fercot.)

Améliorations :

  • Améliorer les performances du pilote de stockage SFTP. (Contribué par Stephen Frost, Reid Thompson. Révisé par David Steele.)
  • Ajouter un décalage horaire à la sortie de date/heure de la commande info. (Révisé par Stefan Fercot, Philip Hurst. Suggéré par Philip Hurst.)
  • Centraliser le traitement des erreurs liées aux fonctionnalités non prises en charge. (Révisé par Stefan Fercot.)

Améliorations de la documentation :

  • Préciser la préférence à installer à partir des paquets dans le guide utilisateur. (Révisé par Stefan Fercot. Suggéré par dr-kd.)

Notes de version v2.46

Sauvegarde incrémentielle par bloc et stockage SFTP

Sortie le 22 mai 2023

Fonctionnalités :

  • Sauvegarde incrémentielle par bloc. (Révisé par John Morris, Stephen Frost, Stefan Fercot.)
  • Prise en charge SFTP pour le stockage du dépôt. (Contribué par Reid Thompson. Révisé par Stephen Frost, David Steele.)
  • Prise en charge de PostgreSQL 16. (Révisé par Stefan Fercot.)

Améliorations :

  • Permettre de passer outre les vérifications d’en-tête de page. (Révisé par David Christensen. Proposé par David Christensen.)
  • Éviter chown() sur les fichiers de récupération lors d’une restauration. (Révisé par Stefan Fercot, Marcelo Henrique Neppel. Proposé par Marcelo Henrique Neppel.)
  • Ajouter des détails d’erreur pour les tentatives de réessai HTTP.

Améliorations de la documentation :

  • Ajouter un avertissement concernant l’utilisation de la récupération type=none. (Révisé par Stefan Fercot.)
  • Ajouter une note sur l’exécution de stanza-create sur des dépôts déjà créés.

Notes de version v2.45

Sauvegarde incrémentielle par bloc (BÉTA)

Sortie le 20 mars 2023

Correctifs de bogues :

  • Ne pas écrire recovery.signal par défaut lors de la restauration de sauvegardes hors ligne. (Révisé par Stefan Fercot. Signalement par Marcel Borger.)

Fonctionnalités :

  • Sauvegarde incrémentielle par bloc (BÉTA). (Révisé par John Morris, Stephen Frost, Stefan Fercot.)

Améliorations :

  • Conservez un seul index de groupe avec les valeurs par défaut. (Révisé par Stefan Fercot.)

Améliorations de la documentation :

  • Ajouter des instructions explicites pour la mise à jour entre les versions 2.x. (Contribué par Christophe Courtois. Revu par David Steele.)
  • Supprimer les références à SSH rendues obsolètes avec l’introduction de TLS.

Notes de version v2.44

Supprimer le support de PostgreSQL 9.0/9.1/9.2

Sortie le 30 janvier 2023

Améliorations :

  • Supprimer la prise en charge de PostgreSQL 9.0/9.1/9.2. (Révisé par Stefan Fercot.)
  • Erreur de restauration lorsque aucune sauvegarde ne correspond à la version actuelle de PostgreSQL. (Contribué par Stefan Fercot. Révisé par David Steele. Suggéré par Soulou.)
  • Ajouter le contrôle de plage pour chaque compress-type via compress-level. (Révisé par Stefan Fercot. Suggéré par gkleen, ViperRu.)

Améliorations de la documentation :

  • Ajouter un avertissement concernant l’activation de « namespace hiérarchique » sur le stockage Azure. (Révisé par Stefan Fercot. Proposé par Vojtech Galda, Pluggi, asjonos.)
  • Ajouter un remplacement pour les sauts de ligne dans l’exemple de surveillance. (Révisé par Stefan Fercot. Proposé par rudonx, gmustdie, Ivan Shelestov.)
  • Préciser le comportement de target-action sur différentes versions de PostgreSQL. (Contribué par Chris Bandy. Révisé par David Steele, Anton Kurochkin, Stefan Fercot. Proposé par Anton Kurochkin, Chris Bandy.)
  • Mises à jour et clarifications apportées à la page d’accueil. (Révisé par Stefan Fercot.)
  • Ajouter le mode sombre au site web. (Proposé par Stephen Frost.)

Notes de version v2.43

Correction de bogue

Sortie le 28 novembre 2022

Correctifs de bogues :

  • Corriger la référence manquante dans une sauvegarde différentielle/incrementale. (Révisé par Stefan Fercot. Signalement par Marcel Borger, ulfedf, jaymefSO.)

Améliorations :

  • Ajouter un indicateur lorsque l’option est spécifiée sans index. (Révisé par Stefan Fercot.)

Notes de version v2.42

Correctifs de bogues

Sortie le 22 novembre 2022

Correctifs de bogues :

  • Corriger une fuite mémoire dans le bundle de fichiers backup/restore. (Révisé par John Morris, Oscar. Signalement par Oscar.)
  • Corriger une erreur de protocole lors d’une lecture partielle d’un fichier distant. (Révisé par Stephen Frost.)

Améliorations :

  • Ne pas stocker de références pour les fichiers de longueur nulle lors du regroupement. (Révisé par Stefan Fercot.)
  • Utiliser des descriptions plus générales pour pg_start_backup()/pg_stop_backup(). (Révisé par Greg Sabino Mullane, David Christensen. Proposé par Greg Sabino Mullane.)

Améliorations de la suite de tests :

  • Mettre à jour l’option test.pl --psql-bin pour qu’elle corresponde à l’aide en ligne de commande. (Contribué par Koshi Shibagaki. Revu par David Steele.)

Notes de version v2.41

Annotations de sauvegarde

Sortie le 19 septembre 2022

Correctifs de bogues :

  • Correction de l’expiration incorrecte du délai pour les dépôts non par défaut. (Révisé par Stefan Fercot. Signalement par Adam Brusselback.)
  • Correction du problème survenant lors de l’affichage récursif des répertoires avec un filtre. (Révisé par Stephen Frost. Signalement par Efremov Egor.)

Fonctionnalités :

  • Annotations clé/valeur pour la sauvegarde. (Contribué par Stefan Fercot. Révisé par David Steele. Suggéré par Adam Berlin.)

Améliorations :

  • Prise en charge --set dans la sortie JSON pour la commande info. (Contribué par Stefan Fercot. Revu par David Steele. Suggéré par Anton Kurochkin.)
  • Permettre la configuration de la taille des morceaux à télécharger pour les magasins d’objets. (Revu par Stefan Fercot. Suggéré par Anton Glushakov.)
  • Mettre à jour les horodatages du fichier archive.info après une sauvegarde réussie. (Revu par Stefan Fercot. Suggéré par Alex Richman.)
  • Déplacer la vérification du timeline de la base de secours après le point de contrôle. (Revu par Stefan Fercot, Keith Fiske. Suggéré par Keith Fiske.)
  • Améliorer le message d’avertissement lors de la reprise d’une sauvegarde. (Suggéré par Cynthia Shang.)

Améliorations de la documentation :

  • Ajouter le chemin absolu pour kill dans pgbackrest.service. (Suggéré par Don Seiler.)

Notes de version v2.40

Prise en charge d’OpenSSL 3

Sortie le 18 juillet 2022

NOTE AUX PAQUETEURS : Une version expérimentale de la construction avec meson a été ajoutée, mais les paqueteurs doivent continuer à utiliser la construction autoconf/make pour le moment.

Améliorations :

  • Prise en charge d’OpenSSL 3. (Révisé par Stephen Frost.)
  • Créer un instantané lors de l’affichage du contenu d’un chemin. (Révisé par John Morris, Stephen Frost.)
  • Forcer target-timeline=current lors de la restauration type=immediate. (Révisé par Stephen Frost.)
  • Tronquer les fichiers pendant une mise à jour incrémentielle restore lorsqu’ils sont plus grands que prévu. (Révisé par Stephen Frost.)
  • Désactiver l’enregistrement du manifeste incrémentiel lorsque resume=n. (Contribué par Reid Thompson. Révisé par David Steele.)
  • Définir le pourcentage de progression de la sauvegarde sur zéro avant le début de la copie. (Contribué par Reid Thompson. Révisé par David Steele.)
  • Utiliser le drapeau S3 IsTruncated pour déterminer la continuation de la liste. (Révisé par John Morris, Soulou. Suggéré par Christian Montagne.)

Correctifs de bogues dans la documentation :

  • Ignorer les options internes dans la référence de configuration. (Signalé par Francisco Miguel Biete Banon.)

Améliorations de la documentation :

  • Ajouter un lien vers la configuration PostgreSQL dans la section hôte du dépôt. (Révisé par Stefan Fercot. Proposé par Julien Cigar.)

Améliorations de la suite de tests :

  • Ajouter la construction expérimentale avec Meson. (Révisé par Eli Schwartz, Sam Bassaly.)
  • Permettre à tout chemin d’être passé à l’option --test-path. (Contribué par Andrey Sokolov. Révisé par David Steele.)
  • Corriger l’erreur de compilation lorsque DEBUG_EXEC_TIME est défini sans DEBUG. (Contribué par Andrey Sokolov. Révisé par David Steele.)

Notes de version v2.39

Vérification et regroupement de fichiers

Sortie le 16 mai 2022

Correctifs de bogues :

  • Corriger l’erreur levée par FINALLY() provoquant une boucle infinie. (Révisé par Stephen Frost.)
  • Erreur sur toutes les échecs de verrouillage, sauf lorsque le verrou est détenu par un autre processus. (Révisé par Reid Thompson, Geir Råness. Signalement par Geir Råness.)

Fonctionnalités :

  • Regroupement des fichiers de sauvegarde pour une meilleure prise en charge des petits fichiers. (Révisé par Reid Thompson, Stefan Fercot, Chris Bandy.)
  • Commande verify pour valider le contenu d’un dépôt. (Contribué par Cynthia Shang, Reid Thompson. Révisé par David Steele, Stefan Fercot.)
  • Prise en charge de PostgreSQL 15. (Révisé par Stefan Fercot.)
  • Affichage du pourcentage d’avancement de la sauvegarde dans la sortie info. (Contribué par Reid Thompson. Révisé par David Steele.)
  • Sélection automatique de la sauvegarde pour la commande restore --type=lsn. (Contribué par Reid Thompson. Révisé par Stefan Fercot, David Steele.)
  • Suppression de l’avertissement relatif au WAL existant lorsque archive-mode-check est désactivé. (Contribué par Reid Thompson. Révisé par David Steele.)
  • Ajout de la prise en charge d’AWS IMDSv2. (Contribué par Nuno Pires. Révisé par David Steele.)

Améliorations :

  • Permettre la modification de l’option repo-hardlink après une sauvegarde complète. (Révisé par Reid Thompson.)
  • Améliorer la précision de la journalisation du pourcentage d’avancement pour backup et restore. (Contribué par Reid Thompson. Révisé par David Steele.)
  • Améliorer la validation des chemins pour les commandes repo-*. (Contribué par Reid Thompson. Révisé par David Steele.)
  • Améliorer la commande stop afin qu’elle respecte l’option stanza. (Contribué par Reid Thompson. Révisé par David Steele. Suggéré par ragaoua.)
  • Améliorer le message d’erreur pour un repo-azure-key non valide. (Contribué par Reid Thompson. Révisé par David Steele. Suggéré par Seth Daniel.)
  • Ajouter une indication pour vérifier le journal sur archive-get/archive-push en cas d’erreur asynchrone. (Révisé par Reid Thompson.)
  • Ajouter ClockError en cas de décalage horaire ou de changement de fuseau horaire inattendu. (Révisé par Greg Sabino Mullane, Stefan Fercot. Suggéré par Greg Sabino Mullane.)
  • Supprimer les extensions du manifeste de l’historique avant de l’afficher dans le message d’erreur. (Révisé par Stefan Fercot.)
  • Ajouter l’utilisateur:groupe à l’erreur de permission de verrouillage. (Révisé par Reid Thompson.)

Correctifs de bogues dans la documentation :

  • Correction d’une référence incorrecte à stanza-update dans le guide utilisateur. (Correctif apporté par Abubakar Mohammed. Revu par David Steele.)
  • Correction de l’exemple pour l’option repo-gcs-key-type dans la référence de configuration. (Revu par Reid Thompson.)
  • Correction de l’exemple pour tls-server-auth et ajout de précisions. (Revu par Reid Thompson.)

Améliorations de la documentation :

  • Simplifier les messages concernant les versions prises en charge dans la documentation. (Révisé par Stefan Fercot, Reid Thompson, Greg Sabino Mullane.)
  • Ajouter des descriptions des types d’option. (Contribué par Reid Thompson. Révisé par David Steele.)
  • Ajouter une FAQ sur les types de sauvegarde et la vitesse de restauration. (Contribué par David Christensen. Révisé par Reid Thompson.)
  • Documenter la branche de base requise pour les demandes de fusion. (Contribué par David Christensen. Révisé par Reid Thompson.)

Notes de version v2.38

Corrections de bogues mineurs et améliorations

Sortie le 6 mars 2022

NOTE IMPORTANTE : La taille du dépôt rapportée par la commande info est désormais entièrement basée sur ce que pgBackRest a écrit dans le stockage. Dans certains cas, pgBackRest pouvait auparavant détecter si une compression supplémentaire était appliquée par le stockage, mais cette fonctionnalité n’est plus prise en charge.

Correctifs de bogues :

  • Réessayer les erreurs survenues lors de la suppression par lot de fichiers S3. (Révisé par Reid Thompson. Signalement par Alex Richman.)
  • Permettre la correspondance insensible à la casse des valeurs d’en-tête HTTP connection. (Révisé par Reid Thompson. Signalement par Rémi Vidier.)

Fonctionnalités :

  • Ajouter la prise en charge du chiffrement côté serveur AWS S3 utilisant KMS. (Contribué par Christoph Berg. Revu par David Steele, Tharindu Amila.)
  • Ajouter l’option archive-missing-retry. (Revu par Stefan Fercot.)
  • Ajouter un filtre de type de sauvegarde à la commande info. (Contribué par Stefan Fercot. Revu par David Steele.)

Améliorations :

  • Réessayer en cas d’échec de validation de page pendant backup. (Révisé par Stephen Frost, David Christensen.)
  • Gérer les serveurs TLS qui ne ferment pas les connexions de manière gracieuse. (Révisé par Rémi Vidier, David Christensen, Stephen Frost.)
  • Ajouter les LSN de sauvegarde à la sortie de la commande info. (Contribué par Stefan Fercot. Révisé par David Steele.)
  • Supprimer automatiquement les barres obliques en fin de chemins repo-ls. (Contribué par David Christensen. Révisé par David Steele.)
  • Ne pas réessayer les erreurs fatales. (Révisé par Reid Thompson.)
  • Supprimer le support de PostgreSQL 8.3/8.4. (Révisé par Reid Thompson, Stefan Fercot.)
  • Supprimer la logique qui tentait de déterminer une compression supplémentaire du système de fichiers. (Révisé par Reid Thompson, Stefan Fercot.)

Correctifs de bogues dans la documentation :

  • Déplacer les options repo dans la documentation TLS vers la section global. (Signalé par Anton Kurochkin.)
  • Supprimer l’option backup-standby inutilisée des commandes de stanza. (Signalé par Stefan Fercot.)
  • Corriger les fautes de frappe dans l’aide et les notes de version. (Corrigé par Daniel Gustafsson. Revu par David Steele.)

Améliorations de la documentation :

  • Ajouter une vérification de disponibilité à la configuration du service systemd. (Suggéré par Yogesh Sharma.)
  • Ajouter une FAQ expliquant le suffixe de l’archive WAL. (Contribué par Stefan Fercot. Revu par David Steele.)
  • Notez que les slots de réplication ne sont pas restaurés. (Contribué par Reid Thompson. Revu par David Steele, Stefan Fercot. Suggéré par Christophe Courtois.)

Notes de version v2.37

Serveur TLS

Sortie le 3 janvier 2022

NOTE IMPORTANTE : Si la commande restore n’est pas en mesure de trouver une sauvegarde correspondant à une cible de temps spécifiée, une erreur sera levée, contrairement à auparavant où un avertissement était simplement journalisé.

Correctifs de bogues :

  • Corriger le mappage des liens delta de restore lorsque le chemin ou le fichier existe déjà. (Révisé par Reid Thompson. Signalé par Younes Alhroub.)
  • Corriger la fuite de socket lors des nouvelles tentatives de connexion. (Révisé par Reid Thompson. Signalé par James Coleman.)

Fonctionnalités :

  • Ajouter un serveur TLS. (Révisé par Stephen Frost, Reid Thompson, Andrew L’Ecuyer.)
  • Ajouter l’option --cmd. (Contribué par Reid Thompson. Révisé par Stefan Fercot, David Steele. Suggéré par Virgile CREVON.)

Améliorations :

  • Vérifier l’archive immédiatement après le démarrage de la sauvegarde. (Révisé par Reid Thompson, David Christensen.)
  • Ajouter des vérifications de timeline et de point de contrôle à la sauvegarde. (Révisé par Stefan Fercot, Reid Thompson.)
  • Vérifier que les clusters sont actifs et correctement configurés pendant une sauvegarde. (Révisé par Stefan Fercot.)
  • Erreur lorsque restore est incapable de trouver une sauvegarde correspondant à la cible de temps. (Révisé par Reid Thompson, Douglas J Hunley. Proposé par Douglas J Hunley.)
  • Analyser le protocole/port dans les points d’accès S3/Azure. (Contribué par Reid Thompson. Révisé par David Steele.)
  • Ajouter un avertissement lorsque checkpoint_timeout dépasse db-timeout. (Contribué par Stefan Fercot. Révisé par David Steele.)
  • Ajouter un verbe à la sortie d’erreur HTTP. (Contribué par Christoph Berg. Révisé par David Steele.)
  • Permettre les arguments y/n pour les options de ligne de commande booléennes. (Contribué par Reid Thompson. Révisé par David Steele.)
  • Faire correspondre exactement la taille de la sauvegarde au format de sortie de la commande info. (Contribué par Reid Thompson. Revu par David Steele. Suggéré par Mahomed Hussein.)

Améliorations de la documentation :

  • Afficher les valeurs par défaut et autorisées de l’option de taille, accompagnées des unités appropriées. (Révisé par Reid Thompson.)
  • Corriger les fautes de frappe et améliorer la documentation de l’option tablespace-map-all. (Révisé par Reid Thompson. Proposé par Reid Thompson.)
  • Supprimer l’énoncé obsolète concernant la prise en charge future de plusieurs dépôts. (Proposé par David Christensen.)

Notes de version v2.36

Corrections de bogues mineurs et améliorations

Sortie le 1er novembre 2021

Correctifs de bogues :

  • Autoriser « global » comme préfixe de stanza. (Révisé par Stefan Fercot. Signalement par Younes Alhroub.)
  • Corriger le plantage (segfault) lors d’un fichier de clé GCS invalide. (Révisé par Stephen Frost. Signalement par Henrik Feldt.)

Améliorations :

  • Autoriser l’option link-map pour créer de nouveaux liens. (Révisé par Don Seiler, Stefan Fercot, Chris Bandy. Proposé par Don Seiler.)
  • Augmenter le nombre maximal d’index autorisé pour les options pg/repo à 256. (Révisé par Cynthia Shang.)
  • Ajouter l’authentification WebIdentity pour AWS S3. (Révisé par James Callahan, Reid Thompson, Benjamin Blattberg, Andrew L’Ecuyer.)
  • Signaler les erreurs de validation des fichiers de sauvegarde dans backup.info. (Contribué par Stefan Fercot. Révisé par David Steele.)
  • Ajouter l’heure de démarrage de la récupération au journal de restauration en ligne d’une sauvegarde. (Révisé par Tom Swartz, Stefan Fercot. Proposé par Tom Swartz.)
  • Signaler l’erreur d’origine et les tentatives de réessai en cas d’échec d’une tâche locale. (Révisé par Stefan Fercot.)
  • Renommer l’erreur de somme de contrôle de page en liste d’erreurs dans la sortie texte d’information. (Révisé par Stefan Fercot.)
  • Ajouter des indications à l’avertissement de délai d’attente de relecture en mode secondaire. (Révisé par Cynthia Shang, Stefan Fercot. Proposé par Leigh Downs.)

Notes de version v2.35

Protocole binaire

Sortie le 23 août 2021

NOTE IMPORTANTE : Le niveau de journalisation des fichiers copiés dans les commandes backup/restore a été modifié en detail. Cela rend le niveau de journalisation info moins bruyant, mais si ces messages sont nécessaires, définissez le niveau de journalisation des commandes backup/restore sur detail.

Correctifs de bogues :

  • Détecter les erreurs lors de la finalisation du téléchargement multipartite S3. (Révisé par Cynthia Shang, Marco Montagna. Signalement par Marco Montagna, Lev Kokotov, Anderson A. Mallmann.)
  • Corriger la détection des liens symboliques circulaires. (Révisé par Stefan Fercot. Signalement par Rohit Raveendran.)
  • Transmettre uniquement les options repo sélectionnées au serveur distant. (Révisé par David Christensen, Cynthia Shang. Signalement par Greg Sabino Mullane, David Christensen.)

Améliorations :

  • Protocole binaire. (Révisé par Cynthia Shang.)
  • Créer automatiquement le répertoire de données sur restore. (Contribué par Stefan Fercot. Révisé par David Steele. Suggéré par Chris Bandy.)
  • Autoriser restore --type=lsn. (Contribué par Stefan Fercot. Révisé par Cynthia Shang. Suggéré par James Coleman.)
  • Modifier le niveau de journalisation des fichiers copiés backup/restore en détail. (Révisé par Stefan Fercot. Suggéré par Jens Wilke.)
  • Boucler en attendant que le LSN de point de contrôle atteigne le LSN de relecture. (Contribué par Stefan Fercot. Révisé par David Steele. Suggéré par Fatih Mencutekin.)
  • Journaliser le total des fichiers backup et le total de la taille par fichier restore. (Révisé par Cynthia Shang.)

Correctifs de bogues dans la documentation :

  • Correction de noms d’hôtes incorrects dans le guide utilisateur. (Révisé par Stefan Fercot. Signalement par Greg Sabino Mullane.)

Améliorations de la documentation :

  • Mettre à jour la documentation relative à la contribution et ajouter un modèle de demande de fusion. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Réorganiser la documentation relative aux sauvegardes dans le guide utilisateur. (Revu par Cynthia Shang.)
  • Préciser le comportement de restore --type dans la référence de commande. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Corriger les fautes de frappe dans la documentation et les commentaires. (Contribué par Eric Radman. Revu par David Steele.)

Améliorations de la suite de tests :

  • Ajouter une vérification du chemin de test à l’intérieur du chemin de répertoire. (Révisé par Greg Sabino Mullane. Proposé par Greg Sabino Mullane.)
  • Ajouter une analyse statique du code avec CodeQL. (Révisé par Cynthia Shang.)
  • Mettre à jour les tests pour utiliser des modèles standards. (Contribué par Cynthia Shang. Révisé par David Steele.)

Notes de version v2.34

Prise en charge de PostgreSQL 14

Sortie le 7 juin 2021

Correctifs de bogues :

  • Corriger les problèmes liés aux fichiers de file d’attente résiduels d’une précédente restore. (Révisé par Cynthia Shang, Stefan Fercot, Floris van Nee. Signalement par Floris van Nee.)
  • Corriger le problème survenant lors de la vérification des liens pour un grand nombre d’espaces de tables. (Révisé par Cynthia Shang, Avinash Vallarapu. Signalement par Avinash Vallarapu.)
  • Libérer les distants inutiles afin qu’ils n’expirent pas durant restore. (Révisé par Cynthia Shang. Signalement par Francisco Miguel Biete Banon.)
  • Corriger help lorsqu’une option valide est invalide pour la commande spécifiée. (Révisé par Stefan Fercot. Signalement par Cynthia Shang.)

Fonctionnalités :

  • Ajouter la prise en charge de PostgreSQL 14. (Révisé par Cynthia Shang.)
  • Ajouter l’authentification automatique GCS pour les instances GCE. (Révisé par Jan Wieck, Daniel Farina.)
  • Ajouter l’option repo-retention-history pour expirer l’historique des sauvegardes. (Contribué par Stefan Fercot. Révisé par Cynthia Shang, David Steele.)
  • Ajouter l’option db-exclude. (Contribué par Stefan Fercot. Révisé par Cynthia Shang.)

Améliorations :

  • Modifier le niveau de journalisation de l’expiration de l’archive de détail à information. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Supprimer le chemin de stockage temporaire de l’archive de la stanza sur restore. (Revu par Cynthia Shang, Stefan Fercot.)
  • Ne pas écrire les fichiers de manière atomique ni synchroniser les chemins pendant la copie backup. (Revu par Stephen Frost, Stefan Fercot, Cynthia Shang.)

Améliorations de la documentation :

  • Mettre à jour la documentation relative aux contributions. (Contribué par Cynthia Shang. Révisé par David Steele, Stefan Fercot.)
  • Consolider le guide utilisateur RHEL/CentOS en un seul document. (Révisé par Cynthia Shang.)
  • Préciser que repo-s3-role n’est pas un ARN. (Contribué par Isaac Yuen. Révisé par David Steele.)

Notes de version v2.33

Prise en charge des dépôts multiples et de GCS

Sortie le 5 avril 2021

Correctifs de bogues :

  • Corriger les avertissements d’option bloquant la synchronisation asynchrone archive-get/archive-push. (Révisé par Cynthia Shang. Signalement par Lev Kokotov.)
  • Corriger la fuite mémoire lors de la sauvegarde pendant la copie de l’archive. (Révisé par Cynthia Shang. Signalement par Christian ROUX, Efremov Egor.)
  • Corriger le dépassement de pile lors de la génération de la phrase de passe du chiffrement. (Révisé par Cynthia Shang. Signalement par bsiara.)
  • Corriger repo-ls / sur les dépôts S3. (Révisé par Cynthia Shang. Signalement par Lesovsky Alexey.)

Fonctionnalités :

  • Prise en charge de plusieurs dépôts. (Contribué par Cynthia Shang, David Steele. Revu par Stefan Fercot, Stephen Frost.)
  • Prise en charge de GCS pour le stockage du dépôt. (Revu par Cynthia Shang, Daniel Farina.)
  • Ajout de l’option archive-header-check. (Revu par Stephen Frost, Cynthia Shang. Proposé par Hans-Jürgen Schönig.)

Améliorations :

  • Inclure les bases de données système recréées lors d’une restauration sélective. (Contribué par Stefan Fercot. Revu par Cynthia Shang.)
  • Exclure content-length des en-têtes signés S3. (Revu par Cynthia Shang. Suggéré par Brian P Bockelman.)
  • Consolider les options de stockage du dépôt moins couramment utilisées. (Revu par Cynthia Shang.)
  • Permettre un config-path par défaut personnalisé avec ./configure --with-configdir. (Contribué par Michael Schout. Revu par David Steele.)
  • Journaliser la copie de l’archive pendant backup. (Revu par Cynthia Shang, Stefan Fercot.)

Améliorations de la documentation :

  • Mettre à jour la référence pour inclure des liens vers des exemples du guide utilisateur. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Mettre à jour la documentation de la restauration sélective avec des avertissements. (Revu par Cynthia Shang, Stefan Fercot.)
  • Ajouter une clarification sur compress-type dans la documentation de archive-copy. (Revu par Cynthia Shang, Stefan Fercot.)
  • Ajouter les valeurs par défaut de compress-level en fonction de la valeur de compress-type. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Ajouter une note indiquant que les paramètres NFS requis doivent être identiques à ceux de PostgreSQL. (Contribué par Cynthia Shang. Revu par David Steele.)

Notes de version v2.32

Commandes du dépôt

Sortie le 8 février 2021

Correctifs de bogues :

  • Corriger la reprise après suppression partielle d’une sauvegarde par une reprise antérieure. (Révisé par Cynthia Shang. Signalement par Tom Swartz.)

Fonctionnalités :

  • Ajouter la commande repo-ls. (Révisé par Cynthia Shang, Stefan Fercot.)
  • Ajouter la commande repo-get. (Contribué par Stefan Fercot, David Steele. Révisé par Cynthia Shang.)
  • Ajouter l’option archive-mode-check. (Contribué par Stefan Fercot. Révisé par David Steele, Michael Banck.)

Améliorations :

  • Améliorer les performances de archive-get. (Révisé par Cynthia Shang.)

Améliorations de la documentation :

  • Améliorer la documentation de la commande expire. (Contribué par Cynthia Shang. Revu par David Steele.)

Notes de version v2.31

Corrections de bogues mineurs et améliorations

Sortie le 7 décembre 2020

Correctifs de bogues :

  • Autoriser [, # et space comme premier caractère dans les noms de base de données. (Révisé par Stefan Fercot, Cynthia Shang. Signalement par Jefferson Alexandre.)
  • Créer standby.signal uniquement sur PostgreSQL 12 lorsque le type restore est standby. (Corrigé par Stefan Fercot. Révisé par David Steele. Signalement par Keith Fiske.)

Fonctionnalités :

  • Expire les fichiers d’historique. (Contribué par Stefan Fercot. Revu par David Steele.)
  • Signale les erreurs de somme de contrôle de page dans la sortie de la commande info text. (Contribué par Stefan Fercot. Revu par Cynthia Shang.)
  • Ajoute l’option repo-azure-endpoint. (Revu par Cynthia Shang, Brian Peterson. Suggéré par Brian Peterson.)
  • Ajoute l’option pg-database. (Revu par Cynthia Shang.)

Améliorations :

  • Améliorer la sortie de la commande info lorsque une stanza est spécifiée mais manquante. (Contribué par Stefan Fercot. Revu par Cynthia Shang, David Steele. Suggéré par uspen.)
  • Améliorer les performances des listes de fichiers volumineuses dans les commandes backup/restore. (Revu par Cynthia Shang, Oscar.)
  • Ajouter des tentatives de nouvelle tentative lors de la mise en sommeil de PostgreSQL au démarrage d’une sauvegarde. (Revu par Cynthia Shang. Suggéré par Vitaliy Kukharik.)

Améliorations de la documentation :

  • Remplacer la documentation RHEL/CentOS 6 par celle de RHEL/CentOS 8.

Notes de version v2.30

Prise en charge de PostgreSQL 13

Sortie le 5 octobre 2020

Correctifs de bogues :

  • Erreur avec indications lorsque l’utilisateur de sauvegarde ne peut pas lire pg_settings. (Révisé par Stefan Fercot, Cynthia Shang. Signalement par Mohamed Insaf K.)

Fonctionnalités :

  • Prise en charge de PostgreSQL 13. (Révisé par Cynthia Shang.)

Améliorations :

  • Améliorer l’identification de la version de PostgreSQL. (Révisé par Cynthia Shang, Stephen Frost.)
  • Améliorer le message d’erreur relatif au répertoire de travail. (Révisé par Stefan Fercot.)
  • Ajouter une indication sur le démarrage de la stanza lorsque le segment WAL n’est pas trouvé. (Contribué par David Christensen. Révisé par David Steele.)
  • Ajouter une indication concernant un désaccord de version de protocole. (Révisé par Cynthia Shang. Suggéré par loop-evgeny.)

Améliorations de la documentation :

  • Ajouter une note indiquant que les versions de pgBackRest doivent être identiques lorsqu’elles sont exécutées à distance. (Révisé par Cynthia Shang. Proposé par loop-evgeny.)
  • Déplacer le texte de la commande info vers la référence et établir un lien vers le guide utilisateur. (Révisé par Cynthia Shang. Proposé par Christophe Courtois.)
  • Mettre à jour le chemin du dépôt yum pour le guide utilisateur CentOS/RHEL. (Contribué par Heath Lord. Révisé par David Steele.)

Notes de version v2.29

Crédentiels S3 automatiques sur AWS

Sortie le 31 août 2020

Correctifs de bogues :

  • Supprime les erreurs lors de la fermeture des processus local/remote. Étant donné que la commande est terminée, il est contre-productif de lever une erreur, mais avertit tout de même pour indiquer qu’un événement inhabituel s’est produit. (Révisé par Cynthia Shang. Signalement par argdenis.)
  • Corrige le problème lié au caractère = dans les noms de fichier ou de base de données. (Révisé par Bastian Wegge, Cynthia Shang. Signalement par Brad Nicholson, Bastian Wegge.)

Fonctionnalités :

  • Récupérer automatiquement les identifiants temporaires S3 sur les instances AWS. (Contribution de David Steele, Stephen Frost. Relecture par Cynthia Shang, David Youatt, Aleš Zelený, Jeanette Bromage.)
  • Ajouter l’option archive-mode pour désactiver l’archivage lors d’une restauration. (Relecture par Stephen Frost. Proposition de Stephen Frost.)

Améliorations :

  • Prise en charge de PostgreSQL 13 beta3. Les modifications apportées aux versions de contrôle/catalogue/WAL dans les versions beta ultérieures peuvent rompre la compatibilité, mais pgBackRest sera mis à jour à chaque version pour suivre l’évolution.
  • Prise en charge de l’asynchrone list/remove pour le stockage S3/Azure. (Révisé par Cynthia Shang, Stephen Frost.)
  • Amélioration de l’utilisation mémoire lors de la détection des relations non enregistrées lors de la construction du manifeste. (Révisé par Cynthia Shang, Stephen Frost, Brad Nicholson, Oscar. Proposé par Oscar, Brad Nicholson.)
  • Fermeture proactive des descripteurs de fichiers après le fork du processus asynchrone. (Révisé par Stephen Frost, Cynthia Shang.)
  • Report de la fermeture de la connexion distante de la sauvegarde jusqu’après le contrôle de l’archive. (Contribué par Floris van Nee. Révisé par David Steele.)
  • Amélioration de la sortie détaillée des erreurs. (Révisé par Cynthia Shang.)
  • Amélioration du rapport des erreurs TLS. (Révisé par Cynthia Shang, Stephen Frost.)

Correctifs de bogues dans la documentation :

  • Ajouter none à la référence de l’option compress-type et corriger l’exemple. (Signalé par Ugo Bellavance, Don Seiler.)
  • Ajouter le type manquant azure dans la référence de l’option repo-type. (Corrigé par Don Seiler. Revu par David Steele.)
  • Corriger l’orthographe dans la référence de l’option repo-cipher-type. (Corrigé par Don Seiler. Revu par David Steele.)

Améliorations de la documentation :

  • Précisez que expire doit être exécuté régulièrement lorsque expire-auto est désactivé. (Révisé par Douglas J Hunley. Suggéré par Douglas J Hunley.)

Notes de version v2.28

Stockage de dépôt Azure

Sortie le 20 juillet 2020

Correctifs de bogues :

  • Correction restore --force agissant comme --force --delta. Cela a fait que restore remplaçait les fichiers en fonction de leur horodatage et de leur taille plutôt que de les écraser, ce qui a laissé certains fichiers qui auraient dû être mis à jour inchangés. Les restore et restore --delta normaux n’ont pas été affectés par ce problème. (Révisé par Cynthia Shang.)

Fonctionnalités :

  • Prise en charge d’Azure pour le stockage du dépôt. (Révisé par Cynthia Shang, Don Seiler.)

  • Ajouter l’option expire-auto. Cela permet de désactiver l’expiration automatique après une sauvegarde réussie. (Contribué par Stefan Fercot. Révisé par Cynthia Shang, David Steele.)

Améliorations :

  • Téléversement asynchrone multipart S3. (Révisé par Stephen Frost.)
  • Réessai automatique pour backup, restore, archive-get et archive-push. (Révisé par Cynthia Shang.)
  • Désactiver la parallélisation des requêtes dans les sessions PostgreSQL utilisées pour le contrôle de la sauvegarde. (Révisé par Stefan Fercot.)
  • Prise en charge de PostgreSQL 13 beta2. Les modifications apportées aux versions du contrôle/catalogue/WAL dans les versions bêta ultérieures peuvent rompre la compatibilité, mais pgBackRest sera mis à jour à chaque version pour suivre l’évolution.
  • Amélioration de la gestion des codes de réponse HTTP non valides. (Révisé par Cynthia Shang.)
  • Amélioration du message d’erreur lorsque l’option pg1-path est manquante pour la commande archive-get. (Révisé par Cynthia Shang.)
  • Ajout d’un indicateur lorsque la somme de contrôle delta est activée après un basculement de timeline. (Révisé par Matt Bunter, Cynthia Shang.)
  • Utiliser PostgreSQL au lieu de postmaster lorsque cela est approprié. (Révisé par Cynthia Shang.)

Correctifs de bogues dans la documentation :

  • Correction de l’exemple incorrect pour l’option repo-retention-full-type. (Signalé par Höseyin Sönmez.)
  • Suppression des commandes internes des références HTML et man. (Signalé par Cynthia Shang.)

Améliorations de la documentation :

  • Mettre à jour les versions de PostgreSQL utilisées pour la construction des guides utilisateur. Ajouter également des plages de versions pour indiquer qu’un guide utilisateur est pertinent pour une plage de versions de PostgreSQL, même s’il a été construit pour une version spécifique. (Révisé par Stephen Frost.)
  • Mettre à jour la FAQ concernant l’expiration d’un jeu de sauvegarde spécifique. (Contribué par Cynthia Shang. Révisé par David Steele.)
  • Mettre à jour la FAQ pour clarifier le comportement par défaut de la récupération à un point précis dans le temps (PITR). (Contribué par Cynthia Shang. Révisé par David Steele.)

Notes de version v2.27

Améliorations de l’expiration et pilotes de compression

Sortie le 26 mai 2020

Correctifs de bogues :

  • Corriger le problème de vérification du fait que des liens de fichier soient contenus dans des liens de chemin. (Révisé par Cynthia Shang. Signalement par Christophe Cavallié.)
  • Permettre que pg-path1 soit facultatif pour la synchronisation archive-push. (Révisé par Cynthia Shang. Signalement par Jerome Peng.)
  • La commande expire vérifie désormais la présence d’un fichier d’arrêt. (Corrigé par Cynthia Shang. Révisé par David Steele.)
  • Gérer le cas où la phrase de raison est absente dans la réponse HTTP. (Révisé par Cynthia Shang. Signalement par Tenuun.)
  • Augmenter la taille du tampon pour le vidage de la compression lz4. (Révisé par Cynthia Shang. Signalement par Eric Radman.)
  • Ignorer les options pg-host* et repo-host* pour la commande remote. (Révisé par Cynthia Shang. Signalement par Pavel Suderevsky.)
  • Corriger la possibilité de manque d’options pg1-* pour la commande remote. (Révisé par Cynthia Shang. Signalement par Andrew L’Ecuyer.)

Fonctionnalités :

  • Rétention basée sur la durée pour les sauvegardes complètes. L’option --repo-retention-full-type permet de conserver les sauvegardes complètes selon une période définie, exprimée en jours. (Contribué par Cynthia Shang, Pierre Ducroquet. Revu par David Steele.)
  • Expiration de sauvegarde à la demande. Permet à l’utilisateur de supprimer une sauvegarde spécifique, indépendamment des paramètres de rétention. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Prise en charge de la compression Zstandard. Notez que la configuration de compress-type=zst rendra les nouvelles sauvegardes et archives incompatibles (non restaurables) avec les versions antérieures de pgBackRest. (Revu par Cynthia Shang.)
  • Prise en charge de la compression bzip2. Notez que la configuration de compress-type=bz2 rendra les nouvelles sauvegardes et archives incompatibles (non restaurables) avec les versions antérieures de pgBackRest. (Contribué par Stephen Frost. Revu par David Steele, Cynthia Shang.)
  • Ajout de l’état d’exécution backup/expire à la commande info. (Contribué par Stefan Fercot. Revu par David Steele.)

Améliorations :

  • Expire les archives WAL uniquement lorsque le seuil repo-retention-archive est atteint. Les archives WAL antérieures à la première sauvegarde complète étaient auparavant expirées après la première sauvegarde complète. Elles sont désormais conservées selon les paramètres de rétention. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Ajouter une implémentation locale MD5 afin que S3 fonctionne lorsque FIPS est activé. (Revu par Cynthia Shang, Stephen Frost. Suggéré par Brian Almeida, John Kelly.)
  • Prise en charge de PostgreSQL 13 beta1. Les modifications apportées aux versions de contrôle/catalogue/WAL dans les versions bêta ultérieures peuvent rompre la compatibilité, mais pgBackRest sera mis à jour à chaque version pour suivre l’évolution. (Revu par Cynthia Shang.)
  • Réduire la valeur par défaut de buffer-size à 1MiB. (Revu par Stephen Frost.)
  • Générer une erreur lisible par l’utilisateur si expire n’est pas exécuté sur l’hôte du dépôt. (Contribué par Cynthia Shang. Revu par David Steele.)

Notes de version v2.26

TLS non bloquant

Sortie le 20 avril 2020

Correctifs de bogues :

  • Supprimez l’expression imbriquée vide de l’expression régulière du manifeste. MacOS n’était pas satisfait de cette modification, bien que les autres plates-formes semblent fonctionner correctement. (Correctif apporté par David Raftis. Revu par David Steele.)

Améliorations :

  • Implémentation TLS non bloquante. (Révisé par Slava Moudry, Cynthia Shang, Stephen Frost.)
  • Limite uniquement la taille de copie des fichiers journalisés WAL. Le comportement précédent pouvait entraîner une troncature de postgresql.conf ou de postgresql.auto.conf dans la sauvegarde. (Révisé par Cynthia Shang.)
  • Les options de keep-alive TCP sont configurables. (Suggéré par Marc Cousin.)
  • Ajoute l’option io-timeout. (Révisé par Cynthia Shang.)

Notes de version v2.25

LZ4 Prise en charge de la compression

Sortie le 26 mars 2020

Fonctionnalités :

  • Ajouter la prise en charge de la compression lz4. Notez que la configuration de compress-type=lz4 rendra les nouvelles sauvegardes et archives incompatibles (non restaurables) avec les versions antérieures de pgBackRest. (Révisé par Cynthia Shang.)
  • Ajouter l’option --dry-run à la commande expire. Utilisez l’option dry-run pour visualiser les sauvegardes/archives qui seraient supprimées par la commande expire sans effectuer de suppression réelle. (Contribué par Cynthia Shang, Luca Ferrari. Révisé par David Steele. Suggéré par Marc Cousin.)

Améliorations :

  • Améliorer les performances de la construction du manifeste distant. (Suggéré par Jens Wilke.)
  • Corriger la détection des options keepalive sous Linux. (Contribué par Marc Cousin. Revu par David Steele.)
  • Ajouter la détection de l’hôte dans configure pour définir correctement les drapeaux standards. (Contribué par Marc Cousin. Revu par David Steele.)
  • Supprimer les options compress/compress-level des commandes où elles ne sont pas utilisées. Ces commandes (par exemple restore, archive-get) n’ont jamais utilisé les options de compression mais autorisaient leur passage en ligne de commande. Elles généreront désormais une erreur si ces options sont passées en ligne de commande. Si de telles erreurs se produisent, supprimez les options inutilisées. (Revu par Cynthia Shang.)
  • Limite la taille de copie des fichiers de sauvegarde à la taille indiquée au démarrage de la sauvegarde. Si un fichier augmente de taille pendant la sauvegarde, il sera reconstruit par lecture des WAL lors de la restauration, il n’est donc pas nécessaire de copier les données supplémentaires. (Revu par Cynthia Shang.)

Notes de version v2.24

Sélection automatique de l’ensemble de sauvegarde pour la cible de temps

Sortie le 25 février 2020

Correctifs de bogues :

  • Empêcher la création de processus orphelins dans les commandes d’archive asynchrones. (Révisé par Stephen Frost. Signalement par Adam Brusselback, ejberdecia.)
  • Erreur lorsque archive-get/archive-push/restore ne sont pas exécutés sur un hôte PostgreSQL. (Révisé par Stephen Frost. Signalement par Jesper St John.)
  • Lire le contenu HTTP jusqu’à la fin lorsque la taille ou le codage n’est pas spécifié. (Révisé par Cynthia Shang. Signalement par Christian ROUX.)
  • Corriger la reprise lorsque la sauvegarde reprise a été créée par Perl. Dans ce cas, la sauvegarde reprise doit être ignorée, mais le code C n’était pas en mesure de charger le manifeste partiel écrit par Perl car le format diffère légèrement. Ajouter des validations pour détecter ce cas et continuer de manière correcte. (Signalement par Kacey Holston.)

Fonctionnalités :

  • Sélection automatique de l’ensemble de sauvegarde lors d’une restauration lorsque cible de temps est spécifiée. La sélection automatique n’est effectuée que lorsque --set n’est pas précisé. Si aucun ensemble de sauvegarde correspondant à l’heure cible n’est trouvé, l’ensemble de sauvegarde le plus récent (par défaut) sera utilisé. (Contribué par Cynthia Shang. Revu par David Steele.)

Améliorations :

  • Ignorer le fichier temporaire pg_internal.init pendant la sauvegarde. (Révisé par Cynthia Shang. Suggéré par Michael Paquier.)
  • Ajouter davantage de validations du manifeste lors de backup. (Révisé par Cynthia Shang.)

Améliorations de la documentation :

  • Empêcher le bot de verrouillage d’ajouter des commentaires aux problèmes verrouillés. (Suggéré par Christoph Berg.)

Notes de version v2.23

Correction de bogue

Sortie le 27 janvier 2020

Correctifs de bogues :

  • Corrige les fichiers manquants qui corrompent le manifeste. Si un fichier a été supprimé par PostgreSQL pendant la sauvegarde (ou s’il manquait sur le serveur de repli), le fichier suivant pourrait ne pas être copié ni mis à jour dans le manifeste. Si cela s’est produit, la sauvegarde générerait une erreur lors de sa restauration. (Révisé par Cynthia Shang. Signalement par Vitaliy Kukharik.)

Améliorations :

  • Utilisez pkg-config à la place de xml2-config pour les options de compilation de libxml2. (Contribué par David Steele, Adrian Vondendriesch.)
  • Les sommes de contrôle de validation sont définies dans le manifeste sur backup/restore. (Révisé par Cynthia Shang.)

Notes de version v2.22

Correction de bogue

Sortie le 21 janvier 2020

Correctifs de bogues :

  • Corriger une erreur de conversion de timeline. La timeline est nécessaire pour vérifier les segments WAL dans l’archive après une sauvegarde. La conversion a été effectuée à partir de 10 au lieu de 16, ce qui a entraîné des erreurs lorsque la timeline était ≥ 0xA. (Signalé par Lukas Ertl, Eric Veldhuyzen.)

Notes de version v2.21

C Migration terminée

Sortie le 15 janvier 2020

Correctifs de bogues :

  • Corriger l’ignorance des options par les commandes asynchrones. Les processus asynchrones archive-get/archive-push ne chargeaient pas les options configurées dans les sections de configuration de commande, par exemple [global:archive-get]. (Révisé par Cynthia Shang. Signalement par Urs Kramer.)
  • Corriger la gestion de \ dans les noms de fichiers. \ n’était pas correctement échappé lors du calcul de la somme de contrôle du manifeste, ce qui empêchait le chargement du manifeste. Étant donné que les occurrences de \ dans les noms de fichiers de cluster devraient être rares voire inexistantes, cela ne semble pas constituer un problème sérieux en production.

Fonctionnalités :

  • pgBackRest est désormais entièrement écrit en C.
  • Ajouter l’option pg-user. Spécifie le nom d’utilisateur de la base de données lors de la connexion à PostgreSQL. Si non spécifié, pgBackRest se connecte avec l’utilisateur système local ou PGUSER, ce qui était le comportement précédent. (Contribué par Mike Palmiotto. Revu par David Steele.)
  • Permettre les URI au format chemin dans le pilote S3.

Améliorations :

  • La commande backup est entièrement implémentée en C. (Révisé par Cynthia Shang.)

Notes de version v2.20

Correctifs de bogues

Sortie le 12 décembre 2019

Correctifs de bogues :

  • Corriger archive-push/archive-get lorsque PGDATA est un lien symbolique. Ces commandes tentaient d’utiliser cwd() comme PGDATA mais cela aurait été en désaccord avec le chemin configuré dans pgBackRest si PGDATA était un lien symbolique. Si cwd() ne correspond pas au chemin pgBackRest, effectuez un appel à chdir() vers le chemin et assurez-vous que le prochain cwd() correspond au résultat de l’appel initial. (Signalé par Stephen Frost, Milosz Suchy.)

  • Corriger la liste de références lors de la reconstruction de backup.info dans la commande expire. Étant donné que la commande backup utilise encore la version Perl de la reconstruction, ce problème ne se manifestera que si 1) une sauvegarde est manquante dans backup.info et 2) la commande expire est exécutée directement au lieu d’être exécutée après backup comme d’habitude. Cette combinaison peu probable d’événements signifie que ce problème est probablement sans incidence en production.

  • Corriger le plantage (segfault) en cas de fin inattendue (EOF) lors de la décompression gzip. (Signalé par Stephen Frost.)

Notes de version v2.19

C Migrations et corrections de bogues

Sortie le 12 novembre 2019

Correctifs de bogues :

  • Corriger le délai d’attente distant lors d’une restauration incrémentielle. Lorsqu’une restauration incrémentielle est effectuée sur un cluster largement inchangé, le serveur distant peut expirer si aucun fichier n’est récupéré depuis le dépôt dans un délai de protocol-timeout. Ajouter des messages de maintien de connexion pour éviter l’expiration du serveur distant. (Signalé par James Sewell, Jens Wilke.)
  • Corriger la gestion des en-têtes HTTP répétés. Lorsque des en-têtes HTTP sont répétés, ils doivent être traités comme équivalents à un seul en-tête séparé par des virgules, plutôt que de générer une erreur, ce qui était le comportement précédent. (Signalé par donicrosby.)

Améliorations :

  • La sortie JSON de la commande info n’est plus formatée de manière lisible. Les systèmes de surveillance peuvent ainsi plus facilement traiter le JSON sans sauts de ligne. Des outils externes tels que jq peuvent être utilisés pour formater la sortie si nécessaire. (Contribué par Cynthia Shang. Revu par David Steele.)
  • La commande check est entièrement implémentée en C. (Contribué par Cynthia Shang. Revu par David Steele.)

Améliorations de la documentation :

  • Documentez comment contribuer à pgBackRest. (Contribution de Cynthia Shang, David Steele.)
  • Documentez la version maximale prise en charge par l’option auto-stop. (Contribution de Brad Nicholson. Relecture par David Steele.)

Améliorations de la suite de tests :

  • Corriger le chemin du conteneur utilisé lors de --vm=none. (Suggéré par Stephen Frost.)
  • Corriger le décalage d’heure dans le test expect. (Suggéré par Stephen Frost.)
  • Ne plus générer automatiquement le code libc intégré par défaut. (Suggéré par Stephen Frost.)

Notes de version v2.18

Prise en charge de PostgreSQL 12

Sortie le 1er octobre 2019

Fonctionnalités :

  • Prise en charge de PostgreSQL 12.
  • Ajouter l’option set de la commande info pour produire une sortie texte détaillée. Les informations supplémentaires comprennent les bases de données utilisables pour une restauration sélective, ainsi qu’une liste des tablespaces et des liens symboliques avec leurs destinations par défaut. (Contribution de Cynthia Shang. Révisé par David Steele. Suggéré par Stephen Frost et ejberdecia.)
  • Ajouter le type de restauration standby. Il ajoute automatiquement standby_mode=on à recovery.conf pour PostgreSQL < 12 et crée standby.signal pour PostgreSQL ≥ 12, fournissant ainsi une interface commune aux versions de PostgreSQL. (Révisé par Cynthia Shang.)

Améliorations :

  • La commande restore est entièrement implémentée en C. (Révisé par Cynthia Shang.)

Améliorations de la documentation :

  • Documentez la relation entre db-timeout et protocol-timeout. (Contribution de Cynthia Shang. Relecture par David Steele. Proposition de James Chanco Jr.)
  • Ajoutez des précisions documentaires concernant les dépôts de bascule. (Contribution de Cynthia Shang. Relecture par David Steele.)
  • Ajoutez une FAQ sur la restauration à un instant donné basée sur le temps. (Contribution de Cynthia Shang. Relecture par David Steele.)

Notes de version v2.17

C Migrations et corrections de bogues

Sortie le 3 septembre 2019

Correctifs de bogues :

  • Améliorer la construction du manifeste lent pour un très grand nombre de tables/segments. (Signalé par Jens Wilke.)
  • Corriger les exclusions pour les fichiers spéciaux. (Signalé par CluelessTechnologist, Janis Puris, Rachid Broum.)

Améliorations :

  • Les commandes stanza-create/update/delete sont entièrement implémentées en C. (Contribution de Cynthia Shang. Relecture par David Steele.)
  • Les commandes start/stop sont entièrement implémentées en C. (Contribution de Cynthia Shang. Relecture par David Steele.)
  • Créez les répertoires/fichiers de journalisation avec le mode 0750/0640. (Suggéré par Damiano Albani.)

Correctifs de bogues dans la documentation :

  • Correction du paquet yum.p.o lors de l’installation d’un paquet personnalisé. (Signalé par Joe Ayers, John Harvey.)

Améliorations de la documentation :

  • Compiler pgBackRest en tant qu’utilisateur non privilégié. (Suggéré par Laurenz Albe.)

Notes de version v2.16

C Migrations et corrections de bogues

Sortie le 5 août 2019

Correctifs de bogues :

  • Réessayer les erreurs S3 RequestTimeTooSkewed au lieu de terminer immédiatement. (Signalé par sean0101n, Tim Garton, Jesper St John et Aleš Zelený.)
  • Corriger le traitement incorrect de la réponse transfer-encoding à une requête HEAD. (Signalé par Pavel Suderevsky.)
  • Corriger les violations de portée révélées par les optimisations de gcc 9. (Signalé par Christian Lange et Ned T. Crigler.)

Fonctionnalités :

  • Ajouter l’option repo-s3-port pour définir un port de service S3 non standard.

Améliorations :

  • La commande local pour backup est entièrement implémentée en C. (Contribution de David Steele, Cynthia Shang.)
  • La commande check est implémentée en partie en C. (Revue par Cynthia Shang.)

Notes de version v2.15

Implémentation C de Expire

Sortie le 25 juin 2019

Correctifs de bogues :

  • Corriger la rétention des archives qui expirait de manière trop agressive. (Correctif apporté par Cynthia Shang. Revu par David Steele. Signalement par Mohamad El-Rifai.)

Améliorations :

  • La commande expire est entièrement implémentée en C. (Contribution de Cynthia Shang. Relecture par David Steele.)
  • La commande local pour la restauration est entièrement implémentée en C.
  • Supprimer l’utilisateur PostgreSQL codé en dur afin que $PGUSER fonctionne. (Proposé par Julian Zhang, Janis Puris.)
  • Respecter l’option de configuration --prefix. (Proposé par Daniel Westermann.)
  • Renommer l’option repo-s3-verify-ssl en repo-s3-verify-tls. Le nouveau nom est préféré car pgBackRest ne prend en charge aucune version de protocole SSL (toutes sont considérées comme non sécurisées). Le nom ancien continuera d’être accepté.

Améliorations de la documentation :

  • Ajouter une FAQ à la documentation. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Utiliser wal_level=replica dans la documentation pour PostgreSQL ≥ 9.6. (Suggéré par Patrick McLaughlin.)

Notes de version v2.14

Correction de bogues et améliorations

Sortie le 20 mai 2019

Correctifs de bogues :

  • Correction d’un plantage (segfault) lorsque process-max > 8 pour archive-push/archive-get. (Signalé par Jens Wilke.)

Améliorations :

  • Ignorer les vérifications de base de données lorsque stanza-delete est utilisé avec force. (Contribué par Cynthia Shang. Revu par David Steele. Suggéré par hatifnatt.)
  • Ajouter le script configure pour une meilleure prise en charge multiplateforme.

Fonctionnalités de la documentation :

  • Ajouter les guides utilisateur pour CentOS/RHEL 6/7.

Notes de version v2.13

Correctifs de bogues

Sortie le 18 avril 2019

Correctifs de bogues :

  • Corriger les lectures de longueur nulle causant des problèmes avec les filtres d’E/S qui ne les attendaient pas. (Signalé par brunre01, Jens Wilke, Tomasz Kontusz, guruguruguru.)
  • Corriger la fiabilité du rapport d’erreurs provenant des processus local/remote.
  • Corriger les messages d’erreur Posix/CIFS qui indiquaient le mauvais nom de fichier lors d’écriture/synchronisation/fermeture.

Notes de version v2.12

Implémentation C de l’archivage par poussée

Sortie le 11 avril 2019

AVERTISSEMENT IMPORTANT : La nouvelle implémentation TLS/SSL interdit les points dans les noms de buckets S3 conformément à la RFC-2818. Cette correction de sécurité est obligatoire pour une vérification conforme du nom d’hôte.

Correctifs de bogues :

  • Corriger les problèmes survenant lorsque l’option de chemin se termine par / . (Signalé par Marc Cousin.)
  • Corriger les problèmes lorsque log-level-file=off est défini pour la commande archive-get. (Signalé par Brad Nicholson.)
  • Corriger le code C pour reconnaître le format d’option host:port comme le fait Perl. (Signalé par Kyle Nevins.)
  • Corriger les problèmes liés aux options de journalisation de la commande remote/local.

Améliorations :

  • La commande archive-push est entièrement implémentée en C.
  • Augmenter la limite process-max à 999. (Suggéré par Rakshitha-BR.)
  • Améliorer le message d’erreur lorsque le nom d’un bucket S3 contient des points.

Améliorations de la documentation :

  • Préciser que les magasins d’objets compatibles S3 sont pris en charge. (Suggéré par Magnus Hagander.)

Notes de version v2.11

Implémentation C de l’archive get

Sorti le 11 mars 2019

Correctifs de bogues :

  • Correction de segments WAL tronqués éventuels en cas d’erreur survenue pendant l’écriture. (Signalé par blogh.)
  • Correction de la commande info qui manquait les valeurs min/max WAL lorsque la stanza était spécifiée. (Corrigé par Stefan Fercot. Revu par David Steele.)
  • Correction de la sortie JSON non conforme pour les options transmises du C au Perl. (Signalé par Leo Khomenko.)

Améliorations :

  • La commande archive-get est entièrement implémentée en C.
  • Activer la fonctionnalité de maintien de connexion (keep-alive) sur les versions anciennes de Perl. (Contribué par Marc Cousin. Revu par David Steele.)
  • Erreur lorsqu’on passe des paramètres à une commande qui n’en accepte pas. (Suggéré par Jason O’Donnell.)
  • Ajouter des indications lorsque l’on ne parvient pas à trouver un segment WAL dans l’archive. (Suggéré par Hans-Jürgen Schönig.)
  • Améliorer le message d’erreur lorsque le nom d’hôte ne peut être trouvé dans un certificat. (Suggéré par James Badger.)
  • Ajouter des options supplémentaires à backup.manifest à des fins de débogage. (Contribué par blogh. Revu par David Steele.)

Améliorations de la documentation :

  • Mettre à jour la version par défaut de la documentation pour PostgreSQL 10.

Notes de version v2.10

Correctifs de bogues

Sortie le 9 février 2019

Correctifs de bogues :

  • Ajoute une méthode de pilote S3 non implémentée requise pour archive-get. (Signalé par mibiio.)
  • Corrige la vérification de la configuration incorrecte de pg-path. (Signalé par James Chanco Jr.)

Notes de version v2.09

Améliorations mineures et corrections de bogues

Sortie le 30 janvier 2019

Correctifs de bogues :

  • Corriger le problème lié à la présence de plusieurs fichiers d’état asynchrones entraînant une erreur fatale. (Signalé par Vidhya Gurumoorthi, Joe Ayers, Douglas J Hunley.)

Améliorations :

  • La commande info est entièrement implémentée en C. (Contribution de Cynthia Shang. Relecture par David Steele.)
  • Simplifier le message texte de la commande info lorsqu’aucun stanza n’est présent. Remplacer le chemin du dépôt par « le dépôt ».
  • Ajouter le drapeau _DARWIN_C_SOURCE au fichier Makefile pour les compilations sur MacOS. (Contribution de Douglas J Hunley. Relecture par David Steele.)
  • Mettre à jour la recherche d’adresse dans le client TLS C pour utiliser des méthodes modernes. (Proposé par Bruno Friedmann.)
  • Inclure l’en-tête conforme à Posix pour strcasecmp() et fd_set. (Proposé par ucando.)

Correctifs de bogues dans la documentation :

  • Corriger le chemin du dépôt codé en dur. (Signalé par Heath Lord.)

Améliorations de la documentation :

  • Préciser que le chiffrement est toujours effectué côté client. (Suggéré par Bruce Burdick.)
  • Ajouter des exemples pour la construction d’un hôte de documentation.
  • Permettre if dans les variables de manifeste, les listes et les éléments de liste.

Notes de version v2.08

Améliorations mineures et corrections de bogues

Sortie le 2 janvier 2019

Correctifs de bogues :

  • Supprimer la requête d’information sur l’objet S3 immédiatement après son envoi. (Signalé par Matt Kunkel.)
  • Corriger archive-get-queue-max pour qu’il soit de type size. (Signalé par Ronan Dunklau.)
  • Ajouter un message d’erreur lorsque l’utilisateur actuel uid/gid ne correspond à aucun nom. (Signalé par Camilo Aguilar.)
  • Erreur lorsque --target-action=shutdown est spécifié pour PostgreSQL < 9.5.

Améliorations :

  • Activer les keepalives TCP sur les connexions S3. (Suggéré par Ronan Dunklau.)
  • Réorganiser la sortie texte de la commande info afin que la sauvegarde la plus récente soit affichée en dernier. (Contribué par Cynthia Shang. Revu par David Steele. Suggéré par Ryan Lambert.)
  • Modifier les propriétaires de fichiers uniquement lorsque nécessaire.
  • Masquer l’en-tête authentication lors de la levée d’erreurs S3. (Suggéré par Brad Nicholson.)

Améliorations de la documentation :

  • Préciser quand target-action prend effet et la prise en charge des versions de PostgreSQL. (Suggéré par Keith Fiske.)
  • Préciser que la région/le point de terminaison doit être correctement configuré pour le bucket. (Suggéré par Pritam Barhate.)
  • Ajouter la documentation relative à la construction de la documentation.

Notes de version v2.07

Vérification automatique de la somme de contrôle des différences de sauvegarde

Sortie le 16 novembre 2018

Correctifs de bogues :

  • Corriger le problème où archive-push-queue-max n’était pas pris en compte en cas d’erreur de connexion. (Signalé par Lardière Sébastien.)
  • Corriger la taille statique du segment WAL utilisée pour déterminer si la limite de archive-push-queue-max a été dépassée.
  • Corriger l’erreur survenue après une échec d’ouverture du fichier journal lorsque le traitement doit continuer. (Signalé par vthriller.)

Fonctionnalités :

  • Activer automatiquement la somme de contrôle de sauvegarde delta lorsqu’une anomalie (par exemple, un changement de timeline) est détectée. (Contribué par Cynthia Shang. Revu par David Steele.)

Améliorations :

  • Réessayer toutes les erreurs S3 5xx, et non plus seulement les erreurs internes 500. (Suggéré par Craig A. James.)

Notes de version v2.06

Sauvegarde incrémentielle avec somme de contrôle et prise en charge de PostgreSQL 11

Sortie le 15 octobre 2018

Correctifs de bogues :

  • Corriger le codage URI manquant dans le pilote S3. (Signalé par Dan Farrell.)
  • Corriger le message d’erreur incorrect pour les options en double dans les fichiers de configuration. (Signalé par Jesper St John.)
  • Corriger l’erreur signalée de manière incorrecte dans info journalisation. Un code de retour 1 provenant de archive-get était enregistré comme un message d’erreur au niveau info mais fonctionnait correctement dans les autres cas.

Fonctionnalités :

  • Ajouter un delta de somme de contrôle pour les sauvegardes incrémentielles. Les sauvegardes incrémentielles utilisant un delta de somme de contrôle déterminent si les fichiers ont changé à l’aide de sommes de contrôle plutôt que de timestamps. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Prise en charge de PostgreSQL 11, y compris la taille configurable des segments WAL.

Améliorations :

  • Ignorez tous les fichiers dans un répertoire de tablespace lié, sauf le sous-répertoire correspondant à la version actuelle de PostgreSQL. Une erreur était précédemment générée si d’autres fichiers étaient présents et non possédés par l’utilisateur PostgreSQL.
  • Améliorer la commande info afin d’afficher le type de chiffrement de la stanza. (Contribué par Cynthia Shang. Revu par David Steele. Suggéré par Douglas J Hunley.)
  • Améliorer le support des caractères spéciaux dans les noms de fichiers.
  • Permettre de spécifier l’option delta dans le fichier de configuration de pgBackRest. (Contribué par Cynthia Shang. Revu par David Steele.)

Améliorations de la documentation :

  • Utilisez command dans authorized_hosts afin d’améliorer la sécurité SSH. (Suggéré par Stephen Frost, Magnus Hagander.)
  • Liste des valeurs autorisées pour l’option buffer-size dans la référence de configuration. (Contribué par Cynthia Shang. Revu par David Steele. Suggéré par Stéphane Schildknecht.)

Notes de version v2.05

Options de variables d’environnement et exclusion des relations temporaires/non enregistrées

Sortie le 31 août 2018

Correctifs de bogues :

  • Corriger le problème où les liens relatifs dans $PGDATA pouvaient être stockés dans la sauvegarde avec un chemin incorrect. Ce problème n’affectait pas les liens absolus, et les liens relatifs vers des espaces de table étaient détectés par d’autres vérifications. (Signalé par Cynthia Shang.)
  • Supprimer l’option incomplètement implémentée online de la commande check. L’opération hors ligne va à l’encontre de l’objectif de cette commande, qui est de vérifier si l’archivage et les sauvegardes fonctionnent correctement. (Signalé par Jason O’Donnell.)
  • Corriger le problème où les erreurs levées en C n’étaient pas journalisées lorsqu’elles étaient appelées depuis Perl. pgBackRest se terminait correctement avec le bon code d’erreur, mais ne fournissait pas de message d’erreur pour faciliter le débogage. (Signalé par Douglas J Hunley.)
  • Corriger le problème survenant lorsque l’option booléenne (par exemple delta) était spécifiée plus d’une fois. (Signalé par Yogesh Sharma.)

Fonctionnalités :

  • Permet de définir n’importe quelle option via une variable d’environnement. Cela inclut les options qui pouvaient auparavant être spécifiées uniquement en ligne de commande, par exemple stanza, ainsi que les options sensibles qui ne pouvaient pas être spécifiées en ligne de commande, par exemple repo1-s3-key-secret.
  • Exclut les fichiers de relations (table/index) temporaires et non enregistrées de la sauvegarde. Implémenté à l’aide de la même logique que les correctifs ajoutant cette fonctionnalité à PostgreSQL, 8694cc96 et 920a5e50 . L’exclusion des relations temporaires est activée dans PostgreSQL ≥ 9.0. L’exclusion des relations non enregistrées est activée dans PostgreSQL ≥ 9.1, où cette fonctionnalité a été introduite. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Autorise l’exclusion arbitraire de répertoires et/ou de fichiers d’une sauvegarde. Une utilisation incorrecte de cette fonctionnalité peut entraîner des sauvegardes incohérentes ; lisez attentivement la documentation de --exclude avant de l’utiliser. (Révisé par Cynthia Shang.)
  • Ajoute l’option log-subprocess pour permettre la journalisation des fichiers pour les sous-processus local et remote.
  • Prise en charge de PostgreSQL 11 Beta 3.

Améliorations :

  • Autoriser les fichiers de taille nulle dans le manifeste de sauvegarde pour référencer un manifeste antérieur, indépendamment de l’écart de timestamp. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Améliorer les performances asynchrones de archive-get/archive-push en vérifiant directement les fichiers d’état. (Contribué par Stephen Frost. Revu par David Steele.)
  • Améliorer le message d’erreur lorsque une commande manque l’option stanza. (Suggéré par Sarah Conway.)

Correctifs de bogues dans la documentation :

  • Corriger le niveau de journalisation incorrect dans la référence de l’option log-path. (Signalé par Camilo Aguilar.)

Améliorations de la documentation :

  • Cessez de tenter d’organiser les contributeurs dans release.xml par nom puis prénom. Les noms des contributeurs ont toujours été présentés dans les notes de version exactement tels qu’indiqués, mais nous avons tenté d’attribuer des identifiants internes basés sur le nom puis prénom, ce qui peut être difficile à déterminer et ne présente finalement pas de sens. Inspiré par la conférence de Christophe à PostgresOpen 2017, « Les êtres humains n’ont pas de clé primaire ». (Suggéré par Christophe Pettus.)

Améliorations de la suite de tests :

  • Erreur si la compilation de LibC est effectuée en dehors de l’environnement de test. LibC n’est plus requis pour les compilations de production.

Notes de version v2.04

Correction critique de bug pour la reprise de sauvegarde

Sortie le 5 juillet 2018

NOTE IMPORTANTE : Cette version corrige un bogue critique dans la fonctionnalité de reprise de sauvegarde. Toutes les sauvegardes reprises antérieures à cette version doivent être considérées comme incohérentes. Une sauvegarde sera reprise après l’échec d’une sauvegarde précédente, sauf si resume=n a été spécifié. Une sauvegarde reprise peut être identifiée en consultant le journal de sauvegarde pour le message « aborted backup of same type exists, will be cleaned to remove invalid files and resumed ». Si ce message est présent, n’utilisez pas cette sauvegarde ni aucune autre sauvegarde du même ensemble pour une restauration, et vérifiez les journaux de restauration pour savoir si une sauvegarde reprise a été restaurée. Dans ce cas, des données incohérentes peuvent être présentes dans le cluster.

Correctifs de bogues :

  • Corriger un bug critique dans la reprise qui entraînait des sauvegardes incohérentes. Une régression dans v0.82 avait supprimé la comparaison des horodatages lors de la décision des fichiers à conserver de la sauvegarde interrompue lors de la reprise. Voir la note ci-dessus pour plus de détails. (Signalé par David Youatt, Yogesh Sharma, Stephen Frost.)
  • Corriger l’erreur dans la restauration sélective lorsque seul une base utilisateur existe dans le cluster. (Corrigé par Cynthia Shang. Revu par David Steele. Signalé par Nj Baliyan.)
  • Corriger le format d’horodatage ISO-8601 non conforme dans les en-têtes d’autorisation S3. AWS et certaines passerelles toléraient un espace au lieu d’heures zéro-paddées, tandis que d’autres ne le faisaient pas. (Corrigé par Andrew Schwartz. Revu par David Steele.)

Fonctionnalités :

  • Prise en charge de PostgreSQL 11 Beta 2.

Améliorations :

  • Améliorer le client HTTP pour définir content-length à 0 lorsque non spécifié par le serveur. S3 (et les passerelles) définissent toujours content-length ou transfer-encoding, mais HTTP 1.1 n’exige pas cette valeur, et les proxies (par exemple HAProxy) peuvent ne pas inclure l’un ni l’autre. (Suggéré par Adam K. Sumner.)
  • Définir search_path = 'pg_catalog' sur les connexions PostgreSQL. (Suggéré par Stephen Frost.)

Améliorations de la documentation :

  • Créez une nouvelle section pour décrire la compilation de pgBackRest et effectuez la compilation sur un hôte distinct.
  • Ajoutez un exemple de stratégie S3 pour restreindre les privilèges sur le bucket. (Suggéré par Douglas J Hunley, Jason O’Donnell.)

Notes de version v2.03

Exécutable unique pour le déploiement

Sortie le 22 mai 2018

Correctifs de bogues :

  • Corriger un dépassement de tampon potentiel dans la gestion des messages d’erreur. (Signalé par Lætitia.)
  • Corriger l’acquisition du verrou d’écriture sur l’archive pour la commande synchronisée archive-get. (Signalé par uspen.)

Améliorations :

  • Intégrer directement les fonctions C exportées et les modules Perl dans l’exécutable pgBackRest.
  • Utilisez time_t à la place de __time_t pour une meilleure portabilité. (Suggéré par Nick Floersch.)
  • Afficher le temps d’exécution total en millisecondes à la fin de la commande.

Notes de version v2.02

Archivage asynchrone parallèle et configuration incluse

Sortie le 6 mai 2018

Correctifs de bogues :

  • Corriger la synchronisation récursive des répertoires, qui s’exécutait de manière récursive alors que seul le répertoire spécifié devait être synchronisé. (Signalé par Craig A. James.)
  • Corriger l’erreur « chemin introuvable » levée par archive-copy lors des sauvegardes incrémentielles ou différentielles. (Signalé par yummyliu, Vitaliy Kukharik.)
  • Corriger l’échec de construction du manifeste lorsque deux ou plusieurs fichiers dans PGDATA sont liés au même répertoire. (Signalé par Vitaliy Kukharik.)
  • Corriger l’échec de la restauration incrémentielle lorsque un fichier lié est manquant.
  • Corriger l’affichage des options clé/valeur et des listes dans l’aide. (Signalé par Clinton Adams.)

Fonctionnalités :

  • Ajouter un archive-get asynchrone et parallèle. Cette fonctionnalité maintient une file d’attente de segments WAL afin de réduire la latence lorsque PostgreSQL demande un segment WAL via la commande restore_command.
  • Ajouter la prise en charge de fichiers de configuration pgBackRest supplémentaires. Le répertoire est spécifié par l’option --config-include-path. Ajouter l’option --config-path pour remplacer le chemin de base par défaut des options --config et --config-include-path. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Ajouter l’option repo-s3-token pour permettre la configuration de jetons d’identité temporaires. pgBackRest ne dispose actuellement d’aucun moyen de demander de nouvelles identités, de sorte que toute commande (par exemple backup, restore) doit s’achever avant l’expiration des identités. (Contribué par Yogesh Sharma. Revu par David Steele.)

Améliorations :

  • Mettez à jour les options archive-push-queue-max, manifest-save-threshold et buffer-size pour accepter des valeurs en KB, MB, GB, TB ou PB où le multiplicateur est une puissance de 1024. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Améliorez l’efficacité de la synchronisation du chemin de sauvegarde/restauration. Le balayage de tout le répertoire peut être très coûteux si de nombreuses petites tables sont présentes. Le manifeste de sauvegarde contient la liste des chemins ; utilisez-le pour effectuer les synchronisations au lieu de balayer le chemin de sauvegarde/restauration.
  • Affichez les paramètres de commande ainsi que les options de commande dans le message initial du journal d’information.
  • Renommez l’option archive-queue-max en archive-push-queue-max. Cette modification est cohérente avec la nouvelle option archive-get-queue-max. Le nom d’option ancien sera toujours accepté.

Correctifs de bogues dans la documentation :

  • Mettre à jour la documentation pour inclure la prise en charge des systèmes 32 bits et les précautions associées. La prise en charge des systèmes 32 bits a été ajoutée à la version 1.26. (Signalé par Viorel Tabara.)

Améliorations de la documentation :

  • Ajouter des exemples de surveillance utilisant PostgreSQL et jq. (Suggéré par Stephen Frost, Brian Faherty.)
  • Ajouter un exemple d’utilisation de la section commande dans la configuration de l’archivage. (Suggéré par Christophe Courtois.)
  • Supprimer la documentation décrivant info --output=json comme expérimentale.
  • Mettre à jour la description obsolète de l’option spool-path.

Fonctionnalités du jeu de tests :

  • Utilisez lcov pour le rapport de couverture des tests unitaires en C. Passez de Devel::Cover car celui-ci ne rapportait pas la couverture des branches pour les rapports convertis à partir de gcov. Une couverture de branche incomplète pour un module génère désormais une erreur. La couverture des tests unitaires n’est pas affichée dans le rapport à moins qu’elle ne soit incomplète, soit en couverture d’instructions, soit en couverture de branches.

Notes de version v2.01

Corrections de bogues mineurs et améliorations

Sortie le 19 mars 2018

Correctifs de bogues :

  • Correction des options --target-action et --recovery-option signalées comme non valides lors de la restauration avec --type=immediate. (Signalé par Brad Nicholson.)
  • Erreur immédiate lorsqu’une option sécurisée (par exemple repo1-s3-key) est passée en ligne de commande. Comme pgBackRest ne transmettait pas les options sécurisées aux sous-processus, une erreur obscure était générée. L’erreur nouvelle est bien plus claire et fournit des indications sur la manière de résoudre le problème. Mise à jour de la documentation de la commande pour omettre les options sécurisées qui ne peuvent pas être spécifiées en ligne de commande. (Signalé par Brad Nicholson.)
  • Correction du problème de passage de --no-config à Perl intégré. (Signalé par Ibrahim Edib Kokdemir.)
  • Correction du problème où la spécification de log-level-stderr > warn entraînait une erreur du processus local/remote à la sortie, en raison de la présence de données sur stderr alors qu’aucune n’était attendue. La valeur maximale pour un processus local/remote est désormais error, car il n’existe aucune raison pour que ces processus émettent des avertissements. (Signalé par Clinton Adams.)
  • Correction du test de manifest dans la commande check lorsque des espaces de table sont présents. (Correctif apporté par Cynthia Shang. Revu par David Steele. Signalement par Thomas Flatley.)

Améliorations :

  • Erreur lorsque plusieurs arguments sont définis dans le fichier de configuration pour une option qui ne prend pas plusieurs arguments. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Supprimer les commandes sudo superflues dans src/Makefile. (Contribué par Adrian Vondendriesch. Revu par David Steele.)

Améliorations de la documentation :

  • Afficher l’index dans les exemples pour les options indexées, par exemple repo-*, pg-*. (Suggéré par Stephen Frost.)
  • Simplifier la table des matières sur la page de commande en ne listant que les commandes. (Suggéré par Stephen Frost.)
  • Supprimer les références à la bibliothèque C étant facultative.

Fonctionnalités du jeu de tests :

  • Ajouter les versions du paquet CentOS/RHEL.
  • Utiliser clang pour l’analyse statique du code. Rien trouvé initialement, hormis certaines fonctions qui auraient dû être marquées __noreturn__.

Notes de version v2.00

Améliorations des performances pour l’envoi d’archive

Sortie le 23 février 2018

Fonctionnalités :

  • La commande archive-push est désormais partiellement écrite en C, ce qui permet à PostgreSQL archive_command de s’exécuter de manière significativement plus rapide lors du traitement des messages d’état provenant du processus d’archive asynchrone. (Révisé par Cynthia Shang.)

Améliorations :

  • Améliorer la commande check afin de vérifier que le manifeste de sauvegarde peut être construit. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Améliorer les performances du client HTTPS. Le tamponnage prend désormais en compte les pending octets sur la socket (lorsqu’ils sont présents) plutôt que de se fier uniquement à select(). Dans certains cas, les derniers octets n’étaient pas envoyés avant la fermeture de la connexion.
  • Améliorer les performances de suppression sur S3. La constante S3_BATCH_MAX avait été remplacée par une valeur codée en dur de 2, probablement durant des tests.
  • Permettre la réinitialisation à la valeur par défaut de toute option non liée à la ligne de commande depuis la ligne de commande. Cela permet de réinitialiser les options dans pgbackrest.conf à leur valeur par défaut, réduisant ainsi la nécessité d’écrire de nouveaux fichiers de configuration pour des besoins spécifiques.
  • La bibliothèque C est désormais requise. Cela élimine le chargement conditionnel et simplifie le développement de nouvelles fonctionnalités de la bibliothèque.
  • L’exécutable pgbackrest est désormais un binaire C au lieu d’un script Perl. Cela permet à certaines commandes critiques en termes de temps (comme archive-push en mode asynchrone) de s’exécuter plus rapidement.
  • Renommer les options db-* en pg-* et les options backup-* en repo-* afin d’améliorer la cohérence. Les options repo-* sont désormais indexées, bien qu’actuellement une seule soit autorisée.

Fonctionnalités de la documentation :

  • Tous les clusters dans la documentation sont initialisés avec des sommes de contrôle.

Améliorations de la documentation :

  • Liste les noms d’option obsolètes dans la documentation et dans l’aide en ligne de commande.
  • Précisez que les buckets S3 doivent être créés par l’utilisateur. (Suggéré par David Youatt.)

Notes de version v1.29

Correction critique de bug pour la reprise de sauvegarde

Sortie le 5 juillet 2018

NOTE IMPORTANTE : Cette version corrige un bogue critique dans la fonctionnalité de reprise de sauvegarde. Toutes les sauvegardes reprises antérieures à cette version doivent être considérées comme incohérentes. Une sauvegarde sera reprise après l’échec d’une sauvegarde précédente, sauf si resume=n a été spécifié. Une sauvegarde reprise peut être identifiée en consultant le journal de sauvegarde pour le message « aborted backup of same type exists, will be cleaned to remove invalid files and resumed ». Si ce message est présent, n’utilisez pas cette sauvegarde ni aucune autre sauvegarde du même ensemble pour une restauration, et vérifiez les journaux de restauration pour savoir si une sauvegarde reprise a été restaurée. Dans ce cas, des données incohérentes peuvent être présentes dans le cluster.

Correctifs de bogues :

  • Corriger un bug critique dans la reprise qui entraînait des sauvegardes incohérentes. Une régression dans v0.82 avait supprimé la comparaison des horodatages lors de la décision des fichiers à conserver de la sauvegarde interrompue lors de la reprise. Voir la note ci-dessus pour plus de détails. (Signalé par David Youatt, Yogesh Sharma, Stephen Frost.)
  • Corriger le format d’horodatage ISO-8601 non conforme dans les en-têtes d’autorisation S3. AWS et certaines passerelles acceptaient un espace au lieu d’un zéro pour les heures, tandis que d’autres ne le faisaient pas. (Corrigé par Andrew Schwartz. Revu par David Steele.)
  • Corriger les synchronisations de répertoires qui s’exécutaient de manière récursive alors que seul le répertoire spécifié devait être synchronisé. (Signalé par Craig A. James.)
  • Corriger la signalisation d’options --target-action et --recovery-option comme étant non valides lors de la restauration avec --type=immediate. (Signalé par Brad Nicholson.)
  • Corriger archive-copy qui provoquait une erreur « chemin introuvable » pour les sauvegardes incrémentielles ou différentielles. (Signalé par yummyliu, Vitaliy Kukharik.)
  • Corriger l’échec de la construction du manifeste lorsque deux ou plusieurs fichiers dans PGDATA sont liés au même répertoire. (Signalé par Vitaliy Kukharik.)
  • Corriger l’échec de la restauration incrémentielle lorsque un fichier lié était manquant.
  • Corriger l’erreur lors d’une restauration sélective lorsque seul une base utilisateur existe dans le cluster. (Corrigé par Cynthia Shang. Revu par David Steele. Signalé par Nj Baliyan.)

Améliorations :

  • Améliorer le client HTTP pour définir content-length à 0 lorsque non spécifié par le serveur. S3 (et les passerelles) définissent toujours content-length ou transfer-encoding, mais HTTP 1.1 ne l’exige pas, et les proxies (par exemple HAProxy) peuvent ne pas inclure l’un ni l’autre. (Suggéré par Adam K. Sumner.)
  • Améliorer les performances du client HTTPS. Le tampon prend désormais en compte les pending octets sur la socket (lorsqu’ils sont présents) plutôt que de se fier uniquement à select(). Dans certains cas, les derniers octets n’étaient pas envoyés avant la fermeture de la connexion.
  • Améliorer les performances de suppression S3. La constante S3_BATCH_MAX avait été remplacée par une valeur codée en dur de 2, probablement pendant les tests.
  • Optimiser la synchronisation des chemins de sauvegarde/restauration. Scanner tout le répertoire peut être très coûteux si de nombreuses petites tables sont présentes. Le manifeste de sauvegarde contient la liste des chemins, donc il est désormais utilisé pour effectuer les synchronisations au lieu de scanner le chemin de sauvegarde/restauration. Supprimer la fonctionnalité de synchronisation récursive des chemins, qui n’est plus utilisée.

Correctifs de bogues dans la documentation :

  • Mettre à jour la documentation pour inclure la prise en charge des systèmes 32 bits et les précautions associées. La prise en charge des systèmes 32 bits a été ajoutée à la version 1.26. (Signalé par Viorel Tabara.)

Améliorations de la documentation :

  • Préciser que les buckets S3 doivent être créés par l’utilisateur. (Suggéré par David Youatt.)
  • Mettre à jour la description obsolète de l’option spool-path.

Notes de version v1.28

Suppression d’une stanza

Sortie le 1er février 2018

Correctifs de bogues :

  • Corrigé l’impossibilité de restaurer une base de données unique contenue dans un tablespace à l’aide de –db-include. (Corrigé par Cynthia Shang. Revu par David Steele. Signalement par Chiranjeevi Ravilla.)
  • Assurez-vous que la dernière version de db-id est sélectionnée lors du correspondance entre archive.info et backup.info. Cela garantit une correspondance correcte en cas de doublons de system-id et db-version (par exemple, après un retour en arrière d’une pg_upgrade). (Corrigé par Cynthia Shang. Revu par David Steele. Signalement par Adam K. Sumner.)
  • Corrigé le message d’erreur excessivement verbeux lors de la signalisation d’une commande non valide. (Signalement par Jason O’Donnell.)

Fonctionnalités :

  • Ajouter la commande stanza-delete pour nettoyer les stanzas inutilisés. (Contribué par Cynthia Shang. Revu par David Steele. Suggéré par Magnus Hagander.)

Améliorations :

  • Améliorer la commande stanza-create afin qu’elle ne génère pas d’erreur lorsque la stanza existe déjà. (Contribué par Cynthia Shang. Revu par David Steele.)

Améliorations de la documentation :

  • Mettre à jour la documentation stanza-create --force pour insister sur la prudence à observer lors de son utilisation. (Suggéré par Jason O’Donnell.)

Notes de version v1.27

Correctifs de bogues et documentation

Sortie le 19 décembre 2017

Correctifs de bogues :

  • Corrigé un problème qui masquait les erreurs de localité pour backup et restore. Lorsqu’un hôte de sauvegarde est présent, les sauvegardes doivent être autorisées uniquement sur l’hôte de sauvegarde et les restaurations uniquement sur l’hôte de base de données, sauf si une configuration alternative est définie pour ignorer l’hôte distant. (Signalé par Lardière Sébastien.)

  • Corrigé un problème où les WAL n’étaient pas expirées sous PostgreSQL 10. Ce problème était dû à une expression régulière incorrecte qui supposait que toutes les versions majeures de PostgreSQL étaient au format X.X. (Signalé par Adam Brusselback.)

  • Corrigé un problème où l’option --no-config n’était pas transmise aux processus enfants. Cela signifiait que les processus enfants lisaient encore le fichier de configuration local et pouvaient provoquer des comportements inattendus.

  • Corrigé la commande info afin d’éliminer la sortie "db (prior)" lorsque aucune sauvegarde ou archive n’existe pour une version antérieure du cluster. (Corrigé par Cynthia Shang. Revu par David Steele. Signalé par Stephen Frost.)

Fonctionnalités de la documentation :

  • Documentez la relation entre les options archive-copy et archive-check. (Suggéré par Markus Nullmeier.)
  • Améliorez la documentation de référence de archive-copy.

Notes de version v1.26

Chiffrement du dépôt

Sortie le 21 novembre 2017

Correctifs de bogues :

  • Corrigé un problème pouvant entraîner l’échec du copiage de manifestes volumineux lors d’une restauration. (Signalé par Craig A. James.)

  • Corrigé le décalage WAL incorrect sur les architectures 32 bits. (Corrigé par Javier Wilson. Revu par David Steele.)

  • Corrigé un problème de récupération du WAL pour les anciennes versions de la base de données. Après une stanza-upgrade, il devrait toujours être possible de restaurer des sauvegardes de la version précédente et de procéder à une récupération avec archive-get. Toutefois, archive-get ne vérifiait que la dernière version/id de base de données et échouait. Correction également de certains problèmes lorsque la même version/id de base de données apparaît plusieurs fois dans l’historique. (Corrigé par Cynthia Shang. Revu par David Steele. Signalé par Clinton Adams.)

  • Corrigé un problème concernant la définition correcte des groupes de sauvegarde lors d’une restauration. Si la sauvegarde ne parvient pas à mapper un groupe à un nom, elle stocke le groupe dans le manifeste sous la forme false puis utilise soit le propriétaire de $PGDATA pour définir le groupe lors de la restauration, soit, à défaut, le groupe de l’utilisateur courant. Cette logique ne fonctionnait pas correctement car le groupe sélectionné écrasait l’utilisateur lors de la restauration, laissant le groupe indéfini et l’utilisateur incorrectement défini comme le groupe. (Signalé par Jeff McCormick.)

  • Corrigé un problème de passage de paramètres aux hôtes distants. Lorsqu’un nombre supérieur à un base de données était spécifié, le chemin, le port et le chemin du socket étaient passés pour db1 indépendamment de la base de données réellement ciblée. (Signalé par uspen.)

Fonctionnalités :

  • Prise en charge du chiffrement du dépôt. (Contribué par Cynthia Shang, David Steele.)

Améliorations :

  • Désactivez le filtre gzip lorsque --compress-level-network=0. Ce filtre était utilisé avec un niveau de compression défini à 0, ce qui ajoutait une surcharge sans aucun bénéfice.
  • Amélioration des performances de décompression pour le filtre gzip.

Fonctionnalités de la documentation :

  • Ajouter un modèle pour améliorer les informations initiales collectées lors de la soumission de rapports. (Contribué par Cynthia Shang. Revu par David Steele.)

Améliorations de la documentation :

  • Préciser l’utilisation de l’option archive-timeout et décrire la différence avec le paramètre archive_timeout de PostgreSQL. (Contribué par Cynthia Shang. Revu par David Steele. Suggéré par Keith Fiske.)

Fonctionnalités du jeu de tests :

  • Tests automatisés pour l’architecture 32 bits i386/i686.

Notes de version v1.25

Améliorations des performances S3

Sortie le 24 octobre 2017

Correctifs de bogues :

  • Corriger les paramètres personnalisés pour l’option compress-level ignorés. (Signalé par Jens Wilke.)
  • Supprimer l’erreur détectée lors de la détection de lignes temporelles chevauchantes. Les lignes temporelles chevauchantes sont valides dans de nombreuses scénarios de récupération à un instant donné (PITR). (Signalé par blogh.)
  • Corriger les cas où database-id n’était pas rendu comme un entier dans la sortie JSON d’information. (Corrigé par Cynthia Shang. Revu par David Steele. Signalé par Jason O’Donnell.)

Fonctionnalités :

  • Améliorer les performances des requêtes de liste sur S3. Toute portion littérale au début d’une expression de filtre est utilisée pour générer un préfixe de recherche, ce qui permet souvent de maintenir la requête suffisamment petite pour éviter les limitations de débit. (Suggéré par Mihail Shvein.)

Fonctionnalités du jeu de tests :

  • Ajouter des tests de performance I/O.

Notes de version v1.24

Nouvelles exclusions de sauvegarde

Sortie le 28 septembre 2017

Correctifs de bogues :

  • Corrigé un problème où des avertissements étaient émis à la place de messages de journal de priorité inférieure lors de la sauvegarde à partir de l’initialisation en mode redondant. (Signalé par uspen.)

  • Corrigé un problème où certaines options db-* (par exemple db-port) n’étaient pas transmises aux hôtes distants. (Signalé par uspen.)

Fonctionnalités :

  • Exclure le contenu de pg_snapshots, pg_serial, pg_notify et pg_dynshmem de la sauvegarde, car ils sont régénérés au démarrage.
  • Exclure les fichiers pg_internal.init de la sauvegarde, car ils sont régénérés au démarrage.

Améliorations :

  • Ouvrir le fichier de journal après que le processus asynchrone est complètement séparé du processus principal afin d’éviter que le processus principal n’écrive également dans le fichier. (Suggéré par Jens Wilke.)

Fonctionnalités de la documentation :

  • Configurer l’accès SSH sans mot de passe.

Améliorations de la documentation :

  • Renommer master en primary dans la documentation pour l’aligner sur la convention PostgreSQL.

Notes de version v1.23

Réplicas multiples et prise en charge de PostgreSQL 10

Sortie le 3 septembre 2017

Correctifs de bogues :

  • Corrigé un problème pouvant entraîner l’abandon de la compression sur les fichiers en croissance. (Signalé par Jesper St John, Aleksandr Rogozin.)
  • Corrigé un problème empêchant l’envoi des messages d’activité (keep-alives) depuis le processus local vers le serveur distant. (Signalé par William Cox.)

Fonctionnalités :

  • Jusqu’à sept serveurs secondaires peuvent être configurés pour effectuer une sauvegarde à partir d’un secondaire. (Contribution de Cynthia Shang. Relecture par David Steele.)
  • Prise en charge de PostgreSQL 10.
  • Permettre content-length (en plus du codage par tronçons) lors de la lecture des données XML afin d’améliorer la compatibilité avec les passerelles S3 tierces. (Suggéré par Victor Gdalevich.)

Améliorations :

  • Augmenter le délai d’attente HTTP pour S3.
  • Ajouter des réessais HTTP pour renforcer la résilience face aux erreurs réseau transitoires de S3.

Correctifs de bogues dans la documentation :

  • Corrigé la génération de documentation pour inclure des résumés de section sur la page Configuration. (Correctif apporté par Cynthia Shang. Revu par David Steele.)

Notes de version v1.22

Correctif du réessai S3

Sortie le 9 août 2017

Correctifs de bogues :

  • Correctif d’un problème d’authentification dans la répétition des tentatives S3.

Notes de version v1.21

Amélioration de la sortie d’informations et option de port SSH

Sortie le 8 août 2017

Correctifs de bogues :

  • Le répertoire archive_status est désormais régénéré lors d’une restauration afin de prendre en charge PostgreSQL 8.3, qui ne le recrée pas automatiquement comme le font les versions plus récentes. (Signalé par Stephen Frost.)
  • Corrigé un problème pouvant laisser derrière lui un répertoire d’archive vide pour une ancienne version de PostgreSQL après une stanza-upgrade. (Corrigé par Cynthia Shang. Revu par David Steele.)

Fonctionnalités :

  • Modifié la commande info (sortie texte et JSON) pour afficher l’identifiant d’archive ainsi que les valeurs minimale et maximale de WAL actuellement présentes dans l’archive pour la version actuelle du cluster de base de données et, le cas échéant, pour la version précédente. (Contribué par Cynthia Shang. Revu par David Steele.)

  • Ajout des options --backup-ssh-port et --db-ssh-port pour prendre en charge les ports SSH non par défaut. (Contribué par Cynthia Shang. Revu par David Steele.)

Améliorations :

  • Réessayer lorsque S3 retourne une erreur interne (500).

Correctifs de bogues dans la documentation :

  • Précisez la description de --online en fonction du contexte de la commande.

Fonctionnalités de la documentation :

  • Ajouter la création de /etc/pgbackrest.conf aux instructions d’installation manuelle.

Améliorations de la documentation :

  • Déplacer les options du dépôt dans une section séparée dans l’aide en ligne de commande. (Suggéré par Stephen Frost.)

Notes de version v1.20

Correctif de bug critique 8.3/8.4

Sortie le 27 juin 2017

AVERTISSEMENT IMPORTANT : les installations de PostgreSQL 8.3 et 8.4 utilisant des espaces de tables doivent passer immédiatement à une version supérieure à v1 et effectuer une sauvegarde complète. Un bogue empêchait les espaces de tables d’être sauvegardés sur ces versions uniquement. PostgreSQL ≥ 9.0

Correctifs de bogues :

  • Corrigé un problème empêchant la sauvegarde des espaces de table sur PostgreSQL ≤ 8.4.
  • Corrigé le flag manquant dans la compilation de la bibliothèque C, qui entraînait une incompatibilité binaire sur les systèmes 32 bits. (Signalé par Adrian Vondendriesch.)

Fonctionnalités :

  • Ajoutez les options s3-repo-ca-path et s3-repo-ca-file pour prendre en charge les systèmes où les autorités de certification ne sont pas automatiquement trouvées par IO::Socket::SSL, par exemple RHEL7, ou pour charger des autorités de certification personnalisées. (Suggéré par Scott Frazer.)

Fonctionnalités du jeu de tests :

  • Ajouter la génération de la documentation dans le CI.

Notes de version v1.19

Prise en charge S3

Sorti le 12 juin 2017

Correctifs de bogues :

  • Corrigé la commande info afin que les valeurs minimale et maximale de l’archive WAL affichées correspondent à la version actuelle de la base de données. (Corrigé par Cynthia Shang. Revu par David Steele.)
  • Corrigé la commande backup afin que l’option backup-standby soit réinitialisée (et que la sauvegarde se poursuive sur le principal) si le serveur secondaire n’est pas configuré et/ou inaccessible. (Corrigé par Cynthia Shang. Revu par David Steele.)
  • Corrigé les avertissements de configuration provoqués par un processus distant entraînant des erreurs dans le processus principal. (Corrigé par Cynthia Shang. Revu par David Steele.)

Fonctionnalités :

  • Prise en charge du dépôt Amazon S3. (Révisé par Cynthia Shang.)

Correctifs de bogues dans la documentation :

  • Option max-archive-mb invalide modifiée dans la référence de configuration vers archive-queue-max.
  • Correction de l’absence de sudo dans la section d’installation. (Correctif apporté par Lætitia. Revu par David Steele.)

Notes de version v1.18

Améliorations de la mise à jour, du réaménagement et du verrouillage de la stanza

Sortie le 12 avril 2017

Correctifs de bogues :

  • Corrigé un problème où les opérations en lecture seule utilisant des processus workers locaux (par exemple restore) créaient des verrous d’écriture pouvant interférer avec le parallélisme de archive-push. (Signalé par Jens Wilke.)

Fonctionnalités :

  • Ajouté la commande stanza-upgrade pour fournir un mécanisme de mise à jour d’une stanza après une mise à jour vers une nouvelle version majeure de PostgreSQL. (Contribué par Cynthia Shang. Revu par David Steele.)

  • Ajouté la validation de pgbackrest.conf afin d’afficher des avertissements si les options ne sont pas valides ou ne se trouvent pas dans la section correcte. (Contribué par Cynthia Shang. Revu par David Steele.)

Améliorations :

  • Simplifier le schéma de verrouillage. À présent, seul le processus principal détient les verrous d’écriture (pour les commandes archive-push et backup) et non plus tous les processus workers locaux et distants comme auparavant.
  • Ne plus définir les horodatages des fichiers dans les répertoires de sauvegarde pour qu’ils correspondent aux horodatages du répertoire du cluster. Cela était initialement fait pour permettre la reprise de sauvegarde, mais ce processus est désormais implémenté à l’aide de sommes de contrôle.
  • Amélioration du message d’erreur lorsque la commande restore détecte la présence de postmaster.pid. (Suggéré par Yogesh Sharma.)
  • Réaffecter les codes de retour compris entre 25 et 125 afin d’éviter que PostgreSQL les interprète comme des exceptions signal fatales. (Suggéré par Yogesh Sharma.)

Notes de version v1.17

Page Correction d’un bogue de somme de contrôle

Sortie le 13 mars 2017

Correctifs de bogues :

  • Corrigé un problème où des pages nouvellement initialisées (mais non utilisées) provoquaient des avertissements de somme de contrôle. (Signalé par Stephen Frost.)

Notes de version v1.16

Améliorations de la somme de contrôle, intégration continue et test des paquets

Sortie le 2 mars 2017

Correctifs de bogues :

  • Corrigé un problème où les tables de plus de 1 Go affichaient des avertissements de somme de contrôle de page après le premier segment. (Signalé par Stephen Frost.)
  • Corrigé un problème où les bases de données créées avec un tablespace non par défaut déclenchaient des avertissements erronés concernant le positionnement aligné des pages pour pg_filenode.map et pg_internal.init. (Signalé par blogh.)

Fonctionnalités du jeu de tests :

  • Intégration continue avec travis-ci.
  • Génération automatique des paquets Debian pour toutes les distributions prises en charge.

Notes de version v1.15

Refactorisation et corrections de bogues

Sortie le 13 février 2017

Correctifs de bogues :

  • Corrigé une régression introduite dans la version 1.13 qui pouvait entraîner l’échec des sauvegardes si des fichiers étaient supprimés (par exemple, des tables supprimées) pendant la construction du manifeste. (Signalé par Navid Golpayegani.)

Notes de version v1.14

Refactorisation et corrections de bogues

Sortie le 13 février 2017

Correctifs de bogues :

  • Corrigé un problème où une erreur lors de l’envoi d’une archive n’était pas réessayée et renvoyait des erreurs à PostgreSQL indéfiniment (sauf si le fichier .error était supprimé manuellement). (Signalé par Jens Wilke.)
  • Corrigé une condition de course dans l’archivage parallèle où la création de nouveaux chemins provoquait une erreur lorsque plusieurs processus tentaient de la réaliser simultanément. (Signalé par Jens Wilke.)

Améliorations :

  • Amélioration des performances de wal archive min/max fournie par la commande info. (Suggéré par Jens Wilke.)

Fonctionnalités de la documentation :

  • Mise à jour de la documentation sur l’archivage asynchrone pour décrire plus précisément le fonctionnement de la nouvelle méthode et les différences avec l’ancienne méthode. (Suggéré par Jens Wilke.)

Notes de version v1.13

Archivage parallèle, création de stanza, informations et vérification améliorées

Sortie le 5 février 2017

AVERTISSEMENT IMPORTANT : La nouvelle implémentation de l’archivage asynchrone ne copie plus les WAL vers une file séparée. Si des WAL restent dans la file ancienne après la mise à jour vers 1.13, elles seront abandonnées et ne seront pas envoyées au dépôt. Pour éviter ce résultat, arrêtez l’archivage en définissant archive_command = false. Ensuite, videz la file asynchrone en exécutant pgbackrest --stanza=[stanza-name] archive-push et attendez que le processus se termine. Vérifiez que la file dans [spool-path]/archive/[stanza-name]/out est vide. Enfin, installez 1.13 et restaurez la valeur initiale de archive_command. AVERTISSEMENT IMPORTANT : La commande stanza-create n’est plus facultative et doit être exécutée avant toute sauvegarde ou archivage sur une nouvelle stanza. Les stanzas existantes n’ont pas besoin d’exécuter stanza-create.

Correctifs de bogues :

  • Correction d’une affectation constante fixe provoquant un avertissement du compilateur dans la bibliothèque C. (Corrigé par Adrian Vondendriesch. Revu par David Steele.)
  • Correction de quelques synchronisations de répertoires manquantes pour l’option --repo-sync.
  • Correction d’un problème où l’absence d’un utilisateur/groupe lors d’une restauration pouvait provoquer une erreur « valeur non initialisée » dans File->owner(). (Signalé par Leonardo GG Avellar.)
  • Correction d’un problème où les erreurs de non-correspondance de protocole ne produisaient pas la valeur attendue.
  • Correction d’un message de journal archive-get erroné indiquant qu’un code de sortie de 1 correspondait à une terminaison anormale.

Fonctionnalités :

  • Implémentation améliorée, multi-processus, de l’archivage asynchrone.
  • Amélioration de la commande stanza-create afin qu’elle puisse réparer la plupart des dépôts endommagés et être suffisamment robuste pour être rendue obligatoire. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Amélioration de la commande check pour qu’elle puisse s’exécuter sur une instance de secours, bien que seules des vérifications basiques soient effectuées car pg_switch_xlog() ne peut pas être exécutée sur un réplica. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Ajout des plages d’archives et de sauvegardes à la commande info.
  • Ajout d’un avertissement pour mettre à jour pg_tablespace.spclocation lors du remappage des espaces de tables dans PostgreSQL < 9.2. (Contribué par blogh. Revu par David Steele.)
  • Suppression des exigences de verrouillage distant pour les commandes archive-get, restore, info et check, puisqu’il s’agit d’opérations en lecture seule. (Suggéré par Michael Vitale.)

Améliorations :

  • Le bannière du fichier de journal n’est pas affichée avant la première entrée de journal écrite. (Suggéré par Jens Wilke.)
  • Réduit la probabilité de faux positifs dans les sommes de contrôle de page causés par des pages déchirées en filtrant sur le LSN de début de sauvegarde.
  • Supprime l’optimisation spécifique à Intel des drapeaux de compilation de la bibliothèque C. (Contribué par Adrian Vondendriesch. Revu par David Steele.)
  • Supprime l’option --lock. Cette option a été introduite avant que le répertoire de verrouillage ne puisse être situé en dehors du dépôt et est désormais obsolète.
  • Ajoute l’option --log-timestamp pour permettre de supprimer les horodatages dans la journalisation. Cela est principalement utilisé pour éviter les filtres dans la documentation automatisée.
  • Renvoie un code d’erreur approprié lorsqu’il n’est pas possible de convertir un chemin relatif en chemin absolu. (Suggéré par Yogesh Sharma.)

Fonctionnalités de la documentation :

  • Ajout de la documentation dans le Guide utilisateur pour l’option process-max. (Contribué par Cynthia Shang. Revu par David Steele.)

Notes de version v1.12

Pages Somme de contrôle, Configuration et corrections de bogues

Sortie le 12 décembre 2016

NOTE IMPORTANTE : Dans les versions antérieures, il était possible de spécifier des options en ligne de commande qui étaient non valides pour la commande courante sans recevoir d’erreur. Une erreur sera désormais générée pour les options non valides, il est donc essentiel de vérifier soigneusement les options en ligne de commande dans votre environnement afin d’éviter toute interruption.

Correctifs de bogues :

  • Corrigé un problème où des options non valides pour la commande spécifiée pouvaient être fournies en ligne de commande sans générer d’erreur. Ces options étaient ignorées et ne provoquaient aucun changement de comportement, mais pouvaient prêter à confusion. Les options non valides génèrent désormais une erreur. (Signalé par Nikhilchandra Kulkarni.)

  • Corrigé un problème où les liens symboliques internes n’étaient pas créés pour les espaces de table dans le dépôt. Ce problème n’était apparent que lorsqu’on tentait de démarrer manuellement des clusters in situ à l’aide de captures instantanées du système de fichiers, et n’affectait pas les opérations normales de sauvegarde ou de restauration.

  • Corrigé un problème qui empêchait l’affichage des erreurs sur la console avant l’initialisation du système de journalisation, c’est-à-dire pendant l’analyse des options. Les codes d’erreur étaient toujours renvoyés correctement, de sorte que cela n’aurait pas fait apparaître un processus comme ayant réussi alors qu’il avait échoué. (Signalé par Adrian Vondendriesch.)

  • Corrigé un problème où l’option db-port spécifiée sur le serveur de sauvegarde n’était pas correctement transmise au serveur distant, sauf si elle provenait de la première base de données configurée. (Signalé par Michael Vitale.)

Fonctionnalités :

  • Ajout de l’option --checksum-page permettant à pgBackRest de valider les sommes de contrôle des pages dans les fichiers de données lorsque les sommes de contrôle sont activées sur PostgreSQL >= 9.3. Notez que cette fonctionnalité nécessite une bibliothèque C qui peut ne pas être disponible initialement dans les paquets du système d’exploitation. L’option sera automatiquement activée lorsque la bibliothèque est présente et que les sommes de contrôle sont activées sur le cluster. (Suggéré par Stephen Frost.)

  • Ajout de l’option --repo-link permettant de supprimer les liens symboliques internes lorsque le dépôt est situé sur un système de fichiers qui ne les supporte pas. Cette option n’affecte pas la fonctionnalité de pgBackRest, mais le lien de commodité latest ne sera pas créé, ni les liens symboliques internes des espaces de table, ce qui affectera la capacité à initialiser manuellement des clusters à partir de captures instantanées du système de fichiers.

  • Ajout de l’option --repo-sync permettant de désactiver les synchronisations de répertoires dans le dépôt pour les systèmes de fichiers qui ne les supportent pas, par exemple NTFS.

  • Ajouté une entrée de journal prédéfinie pour indiquer qu’une commande s’est terminée avec succès. Par exemple, une sauvegarde se termine avec succès avec : INFO: backup command end: completed successfully. (Suggéré par Jens Wilke.)

Améliorations :

  • Pour simplifier, le fichier pg_control est désormais copié avec les autres fichiers, et non pas seul à la fin du processus. La commande backup n’exige pas ce comportement, et restore copie dans un fichier temporaire qui est renommé à la fin de la restauration.

Correctifs de bogues dans la documentation :

  • Corrigé un problème qui masquait les exceptions lors de la génération des PDF.
  • Corrigé une régression liée aux liens de section introduite dans la version 1.10.

Fonctionnalités de la documentation :

  • Ajout de la rétention à la section QuickStart.

Notes de version v1.11

Correction de bogue améliorant l’efficacité de l’archivage asynchrone

Sortie le 17 novembre 2016

Correctifs de bogues :

  • Corrigé un problème où l’archivage asynchrone transférait un fichier par exécution au lieu de transférer les fichiers par lots. Ce rétrograde a été introduit dans la version 1.09 et n’a affecté que l’efficacité, tous les segments WAL ont été correctement archivés en mode asynchrone. (Signalé par Stephen Frost.)

Notes de version v1.10

Création de stanza et corrections de petits bugs

Sortie le 8 novembre 2016

Correctifs de bogues :

  • Corriger un problème pouvant faire échouer une sauvegarde lorsqu’aucune modification n’avait été apportée à la base de données depuis la sauvegarde précédente et que seul pg_control avait changé.
  • Corriger un problème où des chemins de tablespace partageant le même préfixe provoquaient une erreur de lien invalide. (Signalé par Nikhilchandra Kulkarni.)

Fonctionnalités :

  • Ajouté la commande stanza-create pour formaliser la création de stanzas dans le dépôt. (Contribué par Cynthia Shang. Revu par David Steele.)

Améliorations :

  • Supprimé les directives use lib superflues des modules Perl. (Suggéré par Devrim Gündüz.)

Notes de version v1.09

9.6 Prise en charge, configurabilité et corrections de bogues

Sortie le 10 octobre 2016

Correctifs de bogues :

  • Corrigé la commande check afin d’éviter qu’un message d’erreur ne soit journalisé si le répertoire de sauvegarde n’existe pas. (Corrigé par Cynthia Shang. Revu par David Steele.)
  • Corrigé le message d’erreur pour qu’il affiche correctement la commande d’archive lorsqu’une commande d’archive invalide est détectée. (Signalé par Jason O’Donnell.)
  • Corrigé un problème où l’archivage asynchrone n’était pas lancé si archive-push ne disposait pas de suffisamment d’espace pour mettre en file une nouvelle tranche WAL. Cela signifiait que la file n’était jamais vidée sans intervention manuelle (par exemple, en appelant archive-push directement). PostgreSQL affiche désormais des erreurs lorsque l’espace est insuffisant pour stocker de nouvelles tranches WAL, mais le processus asynchrone est toujours lancé afin que l’espace soit finalement libéré. (Signalé par Jens Wilke.)
  • Corrigé un délai d’attente distant survenu lorsque un processus local générant des sommes de contrôle (lors d’une reprise ou d’une restauration) ne copiait pas de fichiers, permettant ainsi à la connexion distante de rester inactif. (Signalé par Jens Wilke.)

Fonctionnalités :

  • Les sauvegardes non exclusives sont utilisées automatiquement sur PostgreSQL 9.6.
  • Ajout de l’option cmd-ssh permettant de spécifier le client SSH. (Suggéré par Jens Wilke.)
  • Ajout de l’option log-level-stderr pour contrôler si les messages de journalisation console sont envoyés à stderr ou à stdout. Par défaut, cette option est définie sur warn, ce qui constitue un changement de comportement par rapport aux versions précédentes, même si cela peut paraître plus intuitif. Définir log-level-stderr=off permet de préserver le comportement ancien. (Suggéré par Sascha Biberhofer.)
  • Définir application_name sur "pgBackRest [command]" pour les connexions à la base de données. (Suggéré par Jens Wilke.)
  • Vérifier que archive_mode est activé lorsque l’option archive-check est activée.

Améliorations :

  • Message d’erreur clarifié lorsque l’acquisition du verrou d’advisory pgBackRest échoue, afin de préciser qu’il ne s’agit pas d’un verrou de sauvegarde PostgreSQL. (Suggéré par Jens Wilke.)
  • Numéro de version de pgBackRest inclus dans la sortie INFO du journal de démarrage de la commande.
  • Identifiant de processus (PID) inscrit dans les journaux INFO de démarrage/arrêt du processus local.

Fonctionnalités de la documentation :

  • Ajout de la documentation de l’option archive-timeout dans le guide utilisateur. (Contribué par Cynthia Shang. Revu par David Steele.)

Notes de version v1.08

Correctifs de bogues et améliorations des journaux

Sortie le 14 septembre 2016

Correctifs de bogues :

  • Corrigé un problème où les processus locaux ne se déconnectaient pas une fois terminés et pouvaient ensuite expirer. (Signalé par Todd Vernick.)
  • Corrigé un problème où la couche de protocole pouvait expirer en attendant l’arrivée des segments WAL dans l’archive. (Signalé par Todd Vernick.)

Améliorations :

  • Mémorise la sortie du journal de fichier jusqu’à la création du fichier, afin de produire un journal plus complet.

Notes de version v1.07

Thread de traitement : conversions et corrections de bogues

Sorti le 7 septembre 2016

Correctifs de bogues :

  • Corrigé un problème où les espaces de tables étaient copiés depuis le principal lors d’une sauvegarde en mode secondaire.
  • Corrigé la commande check afin que les informations de sauvegarde soient vérifiées à distance et non seulement localement. (Corrigé par Cynthia Shang. Revu par David Steele.)
  • Corrigé un problème où retention-archive n’était pas automatiquement défini lorsque retention-archive-type=diff, entraînant une expiration de l’archive moins agressive que prévue. (Corrigé par Cynthia Shang. Revu par David Steele.)

Fonctionnalités :

  • Converti les threads Perl en processus afin d’améliorer la compatibilité et les performances.
  • Exclut le contenu du répertoire $PGDATA/pg_replslot afin que les slots de réplication sur le serveur principal ne fassent pas partie de la sauvegarde.
  • Les paramètres archive-start et archive-stop sont désormais renseignés dans backup.manifest même lorsque archive-check=n. (Suggéré par Jens Wilke.)
  • Avertissements supplémentaires lorsque les paramètres de rétention de l’archive pourraient ne pas avoir l’effet escompté ou permettre une rétention indéfinie. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Prise en charge expérimentale des sauvegardes non exclusives dans PostgreSQL 9.6 rc1. Les modifications apportées aux versions du contrôle/catalogue/WAL dans les versions candidates ultérieures pourraient rompre la compatibilité, mais pgBackRest sera mis à jour à chaque version pour suivre l’évolution.

Correctifs de bogues dans la documentation :

  • Corrigé des problèmes mineurs de reproductibilité de la documentation liés aux chemins binaires.

Fonctionnalités de la documentation :

  • Documentation relative à la rétention des archives. (Contribution de Cynthia Shang. Relecture par David Steele.)

Notes de version v1.06

Sauvegarde depuis une instance de secours et corrections de bogues

Sortie le 25 août 2016

Correctifs de bogues :

  • Corrigé un problème où un lien de tablespace référençant un autre lien ne produisait pas d’erreur, mais sautait entièrement le tablespace. (Signalé par Michael Vitale.)

  • Corrigé un problème où des options qui ne devaient pas autoriser de valeurs multiples pouvaient être spécifiées plusieurs fois dans pgbackrest.conf sans lever d’erreur. (Signalé par Michael Vitale.)

  • Corrigé un problème où l’option protocol-timeout n’était pas automatiquement augmentée lorsque l’option db-timeout était augmentée. (Signalé par Todd Vernick.)

Fonctionnalités :

  • Sauvegarder depuis un cluster standby. Une connexion au cluster primaire reste nécessaire pour démarrer ou arrêter la sauvegarde et copier les fichiers non répliqués, mais l’immense majorité des fichiers est copiée depuis le standby afin de réduire la charge du primaire.
  • Assouplir la configuration des bases de données. Le primaire comme le standby peuvent être configurés sur le serveur de sauvegarde ; pgBackRest détermine automatiquement lequel est primaire. Avec un serveur de sauvegarde distinct, aucun changement de configuration n’est donc requis après un basculement du primaire vers le standby.
  • Exclure pendant la sauvegarde les répertoires que PostgreSQL nettoie, recrée ou remet à zéro au démarrage. Cela comprend pgsql_tmp et pg_stat_tmp. Le fichier postgresql.auto.conf.tmp est désormais exclu, en plus de backup_label.old, postmaster.opts, postmaster.pid, recovery.conf et recovery.done.
  • Prise en charge expérimentale des sauvegardes non exclusives dans PostgreSQL 9.6 beta4. Les modifications apportées aux versions du contrôle/catégorie/WAL dans les versions beta ultérieures peuvent entraîner une incompatibilité, mais pgBackRest sera mis à jour à chaque version pour suivre l’évolution.

Améliorations :

  • Améliorer le message d’erreur pour les liens référençant des liens dans la construction du manifeste.
  • Ajouter des indications au message d’erreur lors de la détection de chemins relatifs dans archive-push ou archive-get.
  • Améliorer les messages du journal de sauvegarde pour indiquer l’hôte d’où les fichiers sont copiés.

Notes de version v1.05

Correction d’un bogue lié à la vérification des liens de tablespace

Sortie le 9 août 2016

Correctifs de bogues :

  • Corrigé un problème où les chemins de tablespace contenant $PGDATA comme sous-chaîne étaient identifiés comme des sous-répertoires de $PGDATA, même lorsqu’ils ne l’étaient pas. Renforcement légère du contrôle des chemins relatifs. (Signalé par Chris Fort.)

Fonctionnalités de la documentation :

  • Ajout de la documentation sur la planification des sauvegardes avec cron. (Contribué par Cynthia Shang. Revu par David Steele.)

Améliorations de la documentation :

  • Déplacé la liste d’attente depuis le site web de pgBackRest vers la documentation wiki du dépôt GitHub. (Contribué par Cynthia Shang. Revu par David Steele.)

Notes de version v1.04

Divers correctifs de bogues

Sortie le 30 juillet 2016

Correctifs de bogues :

  • Corrigé un problème où une connexion distante superflue était créée, pouvant entraîner un délai d’attente ou un conflit de verrou pendant une sauvegarde/restauration multithreadées. (Signalé par Michael Vitale.)
  • Corrigé un problème où le chemin de la base de données n’était pas requis pour la commande check, ce qui provoquait une assertion en cas de manque plutôt qu’un message d’erreur explicite. (Signalé par Michael Vitale.)
  • Corrigé la commande check afin qu’elle lève une erreur lorsque la version ou l’identifiant de la base de données ne correspond pas à celle de l’archive. (Corrigé par Cynthia Shang. Revu par David Steele.)
  • Corrigé un problème où une connexion distante pouvait tenter de démarrer sa propre connexion distante lorsque l’option backup-host n’était pas présente dans pgbackrest.conf sur le serveur de base de données. (Signalé par Lardière Sébastien.)
  • Corrigé un problème où le contenu du répertoire pg_xlog était sauvegardé lorsqu’il était un lien symbolique. Cela n’avait pas d’impact sur la restauration mais représentait un gaspillage d’espace.
  • Corrigé un appel invalide à log() dans les routines de verrouillage.

Fonctionnalités :

  • Prise en charge expérimentale des sauvegardes non exclusives dans PostgreSQL 9.6 beta3. Les modifications apportées aux versions du contrôle/catégorie/WAL dans les versions bêta ultérieures peuvent rompre la compatibilité, mais pgBackRest sera mis à jour à chaque version pour suivre l’évolution.

Améliorations :

  • Supprime les bannières sur les connexions du protocole SSH.
  • Messages d’erreur distants améliorés pour identifier l’hôte où l’erreur a été levée.
  • Tous les types distants prennent désormais des verrous. Les exceptions datent de l’époque où le cadre de test et pgBackRest s’exécutaient dans la même machine virtuelle et ne s’appliquent plus.

Fonctionnalités de la documentation :

  • Ajout d’une clarification sur la raison pour laquelle la valeur par défaut de l’option backrest-user est backrest. (Suggéré par Michael Vitale.)
  • Mise à jour des informations concernant la disponibilité des paquets sur les plates-formes prises en charge. (Suggéré par Michael Vitale.)

Notes de version v1.03

Commande de vérification et corrections de bogues

Sortie le 2 juillet 2016

Correctifs de bogues :

  • Corrigé un problème où keep-alives pouvait être bloqué par de nombreuses petites fichiers lors d’une backup multithreadée. Elles étaient également complètement absentes lors de la reprise de backup en mode simple ou multithreadé et du contrôle restore des sommes de contrôle. (Signalé par Janice Parkinson, Chris Barber.)

  • Corrigé un problème où la commande expire refusait de s’exécuter lorsqu’elle était appelée explicitement en ligne de commande si l’option db-host était définie. Ce problème ne se produisait pas lorsque expire était exécuté automatiquement après un backup (Signalé par Chris Barber.)

  • Corrigé un problème où la validation était exécutée sur archive_command même lorsque l’option archive-check était désactivée.

Fonctionnalités :

  • Ajout de la commande check pour valider que pgBackRest est correctement configuré pour l’archivage et les sauvegardes. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Ajout de l’option protocol-timeout. Précédemment, protocol-timeout était défini comme db-timeout + 30 secondes.
  • Une erreur de fermeture des hôtes distants à la fin de la sauvegarde ne provoque plus d’exception. Un avertissement est désormais généré, recommandant d’augmenter protocol-timeout.
  • Prise en charge expérimentale des sauvegardes non exclusives dans PostgreSQL 9.6 beta2. Les modifications apportées aux versions du contrôle/catalogue/WAL dans les versions bêta suivantes peuvent rompre la compatibilité, mais pgBackRest sera mis à jour à chaque version pour suivre l’évolution.

Améliorations :

  • Amélioration de la gestion des utilisateurs/groupes capturés lors de la sauvegarde et qui n’existent pas sur l’hôte de restauration. Gestion explicite du cas où l’utilisateur/groupe n’est pas mappé à un nom.

  • La gestion des options est désormais bien plus stricte. Il était auparavant possible qu’une commande utilise une option non explicitement attribuée à celle-ci. Cela était particulièrement vrai pour les options backup-host et db-host, utilisées pour déterminer la localité.

Améliorations de la documentation :

  • Autorise l’utilisation d’une date statique pour la documentation afin de générer des builds reproductibles. (Suggéré par Adrian Vondendriesch.)
  • Ajout de la documentation sur l’archivage asynchrone dans le guide utilisateur. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Le lieu d’installation recommandé pour les modules pgBackRest est désormais /usr/share/perl5 car /usr/lib/perl5 a été retiré de la chaîne de recherche dans les versions plus récentes de Perl.
  • Ajout des instructions pour supprimer les versions antérieures de pgBackRest.

Notes de version v1.02

Correction de bug pour Perl 5.22

Sorti le 2 juin 2016

Correctifs de bogues :

  • Correction de l’utilisation de sprintf() en raison de nouvelles contraintes dans Perl 5.22. Les paramètres non référencés dans la chaîne de format ne sont plus autorisés. (Correctif apporté par Adrian Vondendriesch. Revu par David Steele.)

Correctifs de bogues dans la documentation :

  • Corrigé une syntaxe incorrecte incompatible avec Perl 5.2X. (Corrigé par Christoph Berg, Adrian Vondendriesch. Revu par David Steele.)
  • Corrigé les chemins absolus utilisés pour le logo PDF. (Signalé par Adrian Vondendriesch.)

Fonctionnalités de la documentation :

  • Les notes de version sont désormais divisées en sections afin de distinguer clairement les bogues, les fonctionnalités et les révisions. Une section « Notes supplémentaires » a été ajoutée pour les modifications apportées à la documentation et à la suite de tests qui n’affectent pas le code central.
  • Génération de la page de manuel ajoutée. (Contribué par Adrian Vondendriesch, David Steele.)
  • Le journal des modifications était la dernière pièce de documentation à être rendue uniquement en Markdown. Un convertisseur a été écrit afin que le document puisse être généré par les rendus standards. Le journal des modifications sera désormais disponible sur le site web et a été renommé « Versions ». (Contribué par Cynthia Shang. Revu par David Steele.)

Notes de version v1.01

Informations améliorées, restauration sélective et prise en charge de la version 9.6

Sortie le 17 mai 2016

Fonctionnalités :

  • Sortie texte améliorée de la commande info incluant des horodatages, des tailles et la liste de référence de toutes les sauvegardes. (Contribué par Cynthia Shang. Revu par David Steele.)
  • Permet la restauration sélective de bases de données à partir d’une sauvegarde de cluster. Cette fonctionnalité peut entraîner des économies importantes d’espace et de temps lorsque seules certaines bases de données sont restaurées. Les bases de données non restaurées ne seront pas accessibles, mais doivent être supprimées manuellement avant de pouvoir être supprimées du catalogue partagé. (Revu par Cynthia Shang, Greg Smith, Stephen Frost. Suggéré par Stephen Frost.)
  • Prise en charge expérimentale des sauvegardes non exclusives dans PostgreSQL 9.6 beta1. Les modifications apportées aux versions du contrôle/catalogue/WAL dans les versions bêta ultérieures peuvent rompre la compatibilité, mais pgBackRest sera mis à jour à chaque version pour suivre l’évolution. (Revu par Cynthia Shang.)

Notes de version v1.00

Nouveau format de dépôt et schéma de configuration, prise en charge des liens

Sortie le 14 avril 2016

AVERTISSEMENT IMPORTANT : Cette version de jour de rupture rompt la compatibilité avec les versions antérieures de pgBackRest. Le format du manifeste, la structure sur disque, le schéma de configuration et les noms d’exécutables/chemins ont tous été modifiés. Vous devez créer un nouveau dépôt pour stocker les sauvegardes de cette version de pgBackRest et conserver votre ancien dépôt pendant un certain temps au cas où vous devriez effectuer une restauration. Les restaurations à partir de l’ancien dépôt nécessiteront la version antérieure de pgBackRest, mais en raison des changements de nom, il est possible d’avoir 1.00 et une version antérieure de pgBackRest installées en même temps. Consultez les notes ci-dessous pour plus de détails sur les modifications apportées.

Fonctionnalités :

  • Implémenté un nouveau schéma de configuration qui devrait être bien plus simple à utiliser. Consultez le Guide utilisateur et la Référence de configuration pour plus de détails, mais pour une configuration simple, toutes les options peuvent désormais être placées dans la section stanza. Les options communes à plusieurs stanzas peuvent être placées dans la section [global]. Les configurations plus complexes peuvent toujours utiliser des sections de commande, bien que ce cas d’usage soit désormais rare. (Suggéré par Michael Renner.)

  • L’option repo-path fait désormais toujours référence au dépôt où sont stockées les sauvegardes et les archives, qu’elles soient locales ou distantes, de sorte que l’option repo-remote-path a été supprimée. La nouvelle option spool-path peut être utilisée pour définir un emplacement de mise en file d’attente des segments WAL lors de l’archivage asynchrone. Un dépôt local n’est plus obligatoire.

  • Le nom de fichier de configuration par défaut est désormais pgbackrest.conf au lieu de pg_backrest.conf. Cette modification a été effectuée pour assurer une cohérence avec d’autres changements de nommage, mais aussi pour éviter que des fichiers de configuration anciens ne soient chargés accidentellement lors de la migration vers 1.00. (Suggéré par Michael Renner, Stephen Frost.)

  • Le nom de dépôt par défaut a été modifié de /var/lib/backup à /var/lib/pgbackrest. (Suggéré par Michael Renner, Stephen Frost.)

  • Les fichiers de verrouillage sont désormais stockés par défaut dans /tmp/pgbackrest. À l’heure actuelle, /run/pgbackrest est l’emplacement recommandé, mais cela nécessiterait des scripts d’initialisation qui ne font pas partie de cette version. L’option lock-path peut être utilisée pour configurer le répertoire de verrouillage.

  • Les fichiers de journalisation sont désormais stockés par défaut dans /var/log/pgbackrest et ne comportent plus la date en suffixe, afin de pouvoir être gérés avec logrotate. L’option log-path peut être utilisée pour configurer le répertoire de journalisation. (Suggéré par Stephen Frost.)

  • Nom du fichier exécutable passé de pg_backrest à pgbackrest. (Suggéré par Michael Renner, Stephen Frost.)

  • Tous les fichiers et répertoires liés à PGDATA sont désormais inclus dans la sauvegarde. Par défaut, les liens seront restaurés directement dans PGDATA en tant que fichiers ou répertoires. L’option --link-all peut être utilisée pour restaurer tous les liens à leurs emplacements d’origine. L’option --link-map peut être utilisée pour rediriger un lien vers un nouvel emplacement.

  • Option --tablespace supprimée et remplacée par l’option --tablespace-map-all, qui indique plus clairement sa fonction.

  • Niveau de journalisation detail ajouté, qui fournit plus d’informations que info sans être aussi verbeux que debug.


Versions pré-stables

Notes de version v0.92

Correction du chemin du dépôt en ligne de commande

Sortie le 6 avril 2016

Correctifs de bogues :

  • Corrigé un problème où le processus principal transmettait --repo-remote-path au lieu de --repo-path au dépôt distant, entraînant la création des fichiers de verrouillage dans le répertoire par défaut du dépôt (/var/lib/backup), ce qui entraînait généralement un échec. Ce problème ne se produisait que lorsque --repo-remote-path était défini en ligne de commande plutôt que dans pg_backrest.conf. (Signalé par Jan Wieck.)

Notes de version v0.91

Correction de bug liée aux espaces de table et améliorations mineures

Sortie le 22 mars 2016

CORRECTION D’URGENCE POUR LES ESPACES DE TABLE : Une modification du format du dépôt a été accidentellement introduite dans la version 0.90, ce qui signifiait que la sauvegarde sur disque n’était plus un cluster PostgreSQL valide lorsque la sauvegarde contenait des espaces de table. Cela n’affectait que les utilisateurs qui ont copié directement les sauvegardes pour restaurer des clusters PostgreSQL au lieu d’utiliser la commande de restauration. Toutefois, la correction rompt la compatibilité avec les anciennes sauvegardes contenant des espaces de table, quelle que soit la méthode de restauration (pgBackRest lèvera des erreurs et refusera la restauration). De nouvelles sauvegardes complètes doivent être effectuées immédiatement après l’installation de la version 0.91 pour tous les clusters contenant des espaces de table. Si des sauvegardes anciennes doivent être restaurées, utilisez une version de pgBackRest correspondant à la version de la sauvegarde.

Correctifs de bogues :

  • Correctif apporté à une incompatibilité du dépôt introduite avec pgBackRest 0.90. (Signalée par Evan Benoit.)

Fonctionnalités :

  • Copiez global/pg_control dernier pendant les sauvegardes.
  • Écrivez les fichiers .info et .manifest dans un répertoire temporaire avant de les déplacer vers leurs emplacements finaux et de les synchroniser sur le disque.
  • Renommez l’option --no-start-stop en --no-online.

Fonctionnalités du jeu de tests :

  • Analyse statique de code à l’aide de Perl-Critic, actuellement réussie en mode doux.

Notes de version v0.90

9.5 Prise en charge, diverses améliorations et corrections de bogues mineures

Sortie le 7 février 2016

Correctifs de bogues :

  • Corrigé un problème où la spécification de --no-archive-check provoquait une erreur de configuration. (Signalé par Jason O’Donnell.)

  • Corrigé un problème où un fichier WAL temporaire laissé après un crash système bien synchronisé pouvait faire échouer le prochain archive-push.

  • L’option retention-archive peut désormais être définie en toute sécurité à une valeur inférieure à la rétention des sauvegardes (retention-full ou retention-diff) sans avoir à spécifier archive-copy=n. Le WAL nécessaire pour rendre les sauvegardes situées en dehors de la rétention d’archive cohérentes sera conservé dans l’archive. Toutefois, dans ce cas, la récupération à un point précis (PITR) ne sera pas possible pour les sauvegardes situées en dehors de la rétention d’archive.

Fonctionnalités :

  • Lors de la sauvegarde et de la restauration des espaces de tables, pgBackRest ne traite que le sous-répertoire créé pour la version de PostgreSQL utilisée. Étant donné qu’une même tablespace peut contenir plusieurs versions (notamment lors d’une mise à jour binaire), cela empêche de copier trop de fichiers lors d’une sauvegarde et d’effacer accidentellement d’autres versions lors d’une restauration. Cette règle s’applique uniquement aux versions de PostgreSQL >= 9.0 — les versions antérieures ne pouvaient pas partager un répertoire d’espace de tables.

  • Génère une erreur lorsque archive-check=y est présent mais que archive_command n’exécute pas pg_backrest. (Contribué par Jason O’Donnell. Revu par David Steele.)

  • Amélioration du message d’erreur lorsque repo-path ou repo-remote-path n’existe pas.

  • Ajout de vérifications pour les options de restauration --delta et --force afin de s’assurer que le destinataire est un répertoire $PGDATA valide. pgBackRest vérifiera la présence de PG_VERSION ou de backup.manifest (restes d’une restauration interrompue). Si aucun de ces fichiers n’est trouvé, --delta et --force seront désactivés, mais la restauration se poursuivra à moins qu’il n’y ait des fichiers dans le répertoire $PGDATA (ou dans les répertoires de tablespace), auquel cas l’opération sera interrompue.

  • Lorsqu’on restaure --set=latest (valeur par défaut), la sauvegarde réellement restaurée sera affichée dans le journal.

  • Prise en charge des segments partiels WAL de PostgreSQL 9.5 et du paramètre recovery_target_action. Le paramètre archive_mode = 'always' n’est pas encore pris en charge.

  • Prise en charge du paramètre de récupération recovery_target = 'immediate' introduit dans PostgreSQL 9.4.

  • Les vérifications suivantes relatives aux tablespaces ont été ajoutées : chemins ou fichiers dans pg_tblspc, liens relatifs dans pg_tblspc, tablespaces dans $PGDATA. Les trois cas généreront des erreurs.

Notes de version v0.89

Correction d’un bogue de délai d’attente et prise en charge des dépôts en lecture seule lors de la restauration

Sortie le 24 décembre 2015

Correctifs de bogues :

  • Corrigé un problème où les sauvegardes/restaurations plus longues entraînaient une expiration du délai lorsqu’elles étaient distantes et multithreadées. Des messages d’activité sont désormais utilisés pour s’assurer que la connexion distante du processus principal ne expire pas pendant que les threads distants effectuent tout le travail. Le message d’erreur lié aux délais d’expiration a également été amélioré afin de faciliter le débogage. (Signalé par Stephen Frost.)

Fonctionnalités :

  • Autorise les restaurations sur un dépôt en lecture seule en utilisant --no-lock et --log-level-file=off. L’option --no-lock ne peut être utilisée qu’avec les restaurations.

Notes de version v0.88

Documentation et corrections de bogues mineures

Sortie le 22 novembre 2015

Correctifs de bogues :

  • Corrigé un problème où les commandes start/stop exigeaient l’option --config. (Signalé par Dmitry Didovicher.)
  • Corrigé un problème où les fichiers de journalisation étaient écrasés au lieu d’être ajoutés. (Signalé par Stephen Frost, Dmitry Didovicher.)
  • Corrigé un problème où backup-user n’était pas facultatif.

Fonctionnalités :

  • Les liens symboliques ne sont plus créés dans les répertoires de sauvegarde du dépôt. Ces liens symboliques pouvaient pointer vers n’importe quelle localisation et présenter potentiellement un risque. Les liens symboliques sont toujours régénérés lors d’une restauration. (Suggéré par Stephen Frost.)

  • Amélioration du message lors de l’expiration d’une sauvegarde. L’expiration des sauvegardes complètes et différentielles est journalisée sur une seule ligne, accompagnée d’une liste de toutes les sauvegardes dépendantes expirées.

  • La rétention des archives est automatiquement définie sur la rétention des sauvegardes complètes si elle n’est pas configurée explicitement.

Fonctionnalités de la documentation :

  • Ajout de la documentation dans le guide utilisateur pour les restaurations incrémentielles, l’expiration, les hôtes de sauvegarde dédiés, le démarrage et l’arrêt de pgBackRest, ainsi que la réplication.

Notes de version v0.87

Site web et guide utilisateur

Sortie le 28 octobre 2015

Fonctionnalités :

  • Les fichiers backup_label.old et recovery.done sont désormais exclus des sauvegardes.

Fonctionnalités de la documentation :

  • Ajout d’un nouveau guide utilisateur couvrant les bases de pgBackRest ainsi que certains sujets avancés, notamment la récupération à un instant donné (PITR). Beaucoup d’autres contenus à venir, mais c’est un bon départ. (Contribué par David Steele, Stephen Frost. Révisé par Michael Renner, Cynthia Shang, Eric Radman, Dmitry Didovicher.)

Notes de version v0.85

Commandes de démarrage/arrêt et corrections de petits bogues

Sortie le 8 octobre 2015

Correctifs de bogues :

  • Corrigé un problème où une erreur pouvait être renvoyée après une sauvegarde ou une restauration ayant complètement réussi.
  • Corrigé un problème où une reprise échouait si des fichiers temporaires étaient présents dans le répertoire racine de la sauvegarde lorsqu’une sauvegarde échouait. Ce scénario était probable si le processus de sauvegarde était interrompu pendant la phase de copie.

Fonctionnalités :

  • Ajout des commandes stop et start afin d’empêcher les processus pgBackRest de s’exécuter sur un système où PostgreSQL est arrêté ou où le système doit être mis en veille pour une autre raison.
  • Prise en charge expérimentale de PostgreSQL 9.5 beta1. Cette fonctionnalité peut être rompue si la version de contrôle ou la magie des WAL change dans des versions ultérieures, mais elle sera mise à jour à chaque version de pgBackRest pour suivre l’évolution. Tous les tests de régression passent, sauf les tests --target-resume (cette fonctionnalité a été modifiée dans la version 9.5) et aucune vérification n’a encore été effectuée pour les segments WAL .partial.

Notes de version v0.82

Refactorisation, aide en ligne de commande et corrections de bogues mineures

Sortie le 14 septembre 2015

Correctifs de bogues :

  • Corrigé un problème où les sauvegardes compressées reprises ne conservaient pas les fichiers existants.
  • Corrigé un problème où la reprise et les sauvegardes incrémentielles/différentielles ne garantissaient pas que la sauvegarde précédente avait les mêmes paramètres de compression et de liens durs.
  • Corrigé un problème où une sauvegarde froide utilisant --no-start-stop pouvait être lancée sur un cluster PostgreSQL en cours d’exécution sans que --force soit spécifié.
  • Corrigé un problème où un thread pouvait être lancé même lorsque aucun thread n’avait été demandé.
  • Corrigé un problème où le numéro de version de pgBackRest n’était pas mis à jour dans backup.info et archive.info après une mise à jour ou une rétrogradation.
  • Corrigé un problème où la commande info lançait une exception lorsque le dépôt ne contenait aucun stanza. (Signalé par Stephen Frost.)
  • Corrigé un problème où les avertissements PostgreSQL pg_stop_backup() étaient envoyés vers stderr. (Signalé par Stephen Frost.)

Fonctionnalités :

  • Prise en charge expérimentale de PostgreSQL 9.5 alpha2. Cette fonctionnalité peut cesser de fonctionner si la version de contrôle ou la magie WAL change dans les versions futures, mais elle sera mise à jour à chaque version de pgBackRest pour suivre l’évolution. Tous les tests de régression passent, sauf les tests --target-resume (cette fonctionnalité a évolué en 9.5) et aucune vérification n’a encore été effectuée sur les segments WAL .partial.

Améliorations :

  • Option et section renommées recovery-setting en recovery-option afin d’être plus cohérentes avec les conventions de nommage de pgBackRest.
  • Chargement dynamique des modules ajouté afin d’accélérer les commandes, notamment l’archivage asynchrone.

Fonctionnalités de la documentation :

  • Aide en ligne de commande extraite désormais à partir de la même source XML utilisée pour les autres documents et inclut bien plus de détails.

Notes de version v0.80

Fonctionnalités de prise en charge, de stabilité et de commodité pour DBI

Sortie le 9 août 2015

Correctifs de bogues :

  • Corrigé un problème qui faisait que l’horodatage formaté des sauvegardes la plus ancienne et la plus récente était rapporté comme étant l’instant actuel par la commande info. Seule la sortie text était affectée — la sortie json rapportait les valeurs d’époque correctes. (Signalé par Michael Renner.)
  • Corrigé un problème de protocole empêchant la journalisation des erreurs SSH (notamment lors de la connexion).

Fonctionnalités :

  • Le dépôt est désormais créé et mis à jour avec des modes de répertoires et de fichiers cohérents. Par défaut, umask est défini sur 0000, mais cette option peut être désactivée à l’aide du paramètre neutral-umask. (Suggéré par Cynthia Shang.)
  • Ajout de l’option stop-auto permettant d’arrêter automatiquement les sauvegardes échouées lorsque une nouvelle sauvegarde démarre.
  • Ajout de l’option db-timeout pour limiter le temps d’attente que pgBackRest attendra que pg_start_backup() et pg_stop_backup() retournent.
  • Suppression du fichier pg_control au début de la restauration et copie du fichier à la fin. Cela empêche toute possibilité de démarrer une restauration partielle par PostgreSQL.
  • Ajout de vérifications pour s’assurer que le paramètre db-path est cohérent avec db-port en comparant le data_directory rapporté par le cluster au paramètre db-path et la version rapportée par le cluster à la valeur lue depuis pg_control. Le paramètre db-socket-path est vérifié afin de s’assurer qu’il s’agit d’un chemin absolu.
  • Prise en charge expérimentale de PostgreSQL 9.5 alpha1. Cette fonctionnalité peut cesser de fonctionner si la version de contrôle ou la magie WAL change dans les versions futures, mais elle sera mise à jour à chaque version de pgBackRest pour suivre l’évolution. Tous les tests de régression passent, sauf les tests --target-resume (cette fonctionnalité a évolué en 9.5) et aucune vérification n’a encore été effectuée sur les segments WAL .partial.

Améliorations :

  • Utilisation désormais de Perl DBI et DBD::Pg pour les connexions à PostgreSQL au lieu de psql. Les paramètres cmd-psql et cmd-psql-option ont été supprimés et remplacés par db-port et db-socket-path. Suivez les instructions du Guide d’installation pour installer DBD::Pg sur votre système d’exploitation.

Fonctionnalités du jeu de tests :

  • Ajout des configurations de test Vagrant pour Ubuntu 14.04 et CentOS 7.

Notes de version v0.78

Supprimer les dépendances CPAN, améliorations de stabilité

Sortie le 13 juillet 2015

Améliorations :

  • Suppression de la dépendance aux paquets CPAN pour l’exécution multithreadée. Bien qu’il puisse être pertinent de mettre à jour les paquets threads et Thread::Queue, cela n’est plus nécessaire.
  • Modification du délai d’attente pour utiliser une suite de Fibonacci au lieu d’une suite géométrique. Cela fait croître le délai d’attente de manière moins agressive tout en conservant des valeurs raisonnables.

Fonctionnalités du jeu de tests :

  • Ajout des configurations de test Vagrant pour Ubuntu 12.04 et CentOS 6.

Notes de version v0.77

Prise en charge de CentOS/RHEL 6 et améliorations de protocole

Sortie le 30 juin 2015

Fonctionnalités :

  • Ajout de synchronisations de fichiers et de répertoires à l’objet File pour une sécurité accrue lors de la sauvegarde/restauration et de l’archivage. (Suggéré par Andres Freund.)
  • Ajout du support pour Perl 5.10.1 et OpenSSH 5.3, qui sont par défaut sur CentOS/RHEL 6. (Suggéré par Eric Radman.)
  • Amélioration du message d’erreur lorsqu’une sauvegarde est exécutée sans que archive_command soit défini et sans que --no-archive-check soit précisé. (Suggéré par Eric Radman.)

Notes de version v0.75

Nouveau format de dépôt, commande info et prise en charge expérimentale de la version 9.5

Sortie le 14 juin 2015

AVERTISSEMENT IMPORTANT : Cette version de jour de flag rompt la compatibilité avec les versions antérieures de pgBackRest. Le format du manifeste, la structure sur disque et les noms binaires ont tous changé. Vous devez créer un nouveau dépôt pour stocker les sauvegardes de cette version de pgBackRest et conserver votre ancien dépôt pendant un certain temps au cas où vous devriez effectuer une restauration. Le fichier pg_backrest.conf n’a pas changé, mais vous devrez modifier toute référence à pg_backrest.pl dans cron (ou ailleurs) en pg_backrest (sans l’extension .pl).

Fonctionnalités :

  • Ajouté la commande info.
  • La journalisation utilise désormais une sortie non tamponnée. Cela devrait rendre les fichiers journaux écrits par plusieurs threads moins chaotiques. (Suggéré par Michael Renner.)
  • Prise en charge expérimentale de PostgreSQL 9.5. Cette fonctionnalité peut cesser de fonctionner si la version de contrôle ou la magie WAL change, mais sera mise à jour à chaque version.

Améliorations :

  • Ordre de fichiers plus efficace pour backup. Les fichiers sont copiés dans l’ordre décroissant de taille, afin qu’un seul thread ne se retrouve pas à copier un grand fichier à la fin. Cette optimisation était déjà mise en œuvre pour restore.

Notes de version v0.70

Améliorations de la stabilité pour l’archivage, journalisation améliorée et aide

Sortie le 1er juin 2015

Correctifs de bogues :

  • Corrigé un problème où archive-copy échouait lors d’une sauvegarde incrémentielle ou différentielle lorsque hardlink=n. Dans ce cas, le chemin pg_xlog n’existe pas encore et doit être créé. (Signalé par Michael Renner.)

  • Corrigé un problème dans l’archivage asynchrone où archive-push ne renvoyait pas correctement 0 lorsque archive-max-mb était atteint, et déplacé la vérification asynchrone après le transfert afin d’éviter de supprimer le fichier d’arrêt deux fois. Des tests unitaires ont également été ajoutés pour ce cas, et les messages d’erreur ont été améliorés pour mieux indiquer à l’utilisateur ce qui s’est produit. (Signalé par Michael Renner.)

  • Corrigé un problème de verrouillage pouvant permettre plusieurs opérations du même type contre une même stanza. Ce problème semblait sans incidence sur l’intégrité des données, mais pouvait provoquer des erreurs inutiles lors de l’archivage et entraîner des erreurs lors de la sauvegarde ou de la restauration. (Signalé par Michael Renner.)

Fonctionnalités :

  • Autoriser la sauvegarde de segments WAL en double lorsque la somme de contrôle correspond. Cela est nécessaire pour certains scénarios de récupération.
  • Autoriser les commentaires/désactivations dans pg_backrest.conf à l’aide du caractère #. Seuls les caractères # situés en première position de la ligne sont pris en compte. (Suggéré par Michael Renner.)
  • Amélioration de la journalisation avant pg_start_backup() afin de préciser clairement quand la sauvegarde attend un point de contrôle. (Suggéré par Michael Renner.)
  • Diverses corrections de comportement des commandes et de la journalisation. (Révisé par Michael Renner. Suggéré par Michael Renner.)

Améliorations :

  • Remplacé le module JSON par JSON::PP, qui est fourni avec Perl de base.

Correctifs de bogues dans la documentation :

  • Divers correctifs apportés à l’aide. (Révisé par Michael Renner. Signalement par Michael Renner.)

Notes de version v0.65

Amélioration de la journalisation de la reprise et de la restauration, restaurations compactes

Sortie le 11 mai 2015

Correctifs de bogues :

  • Corrigé un problème où un chemin absolu n’était pas écrit dans recovery.conf lorsque la restauration était exécutée avec un chemin relatif.

Fonctionnalités :

  • Meilleur support de la reprise. Les fichiers repris sont vérifiés afin de s’assurer qu’ils n’ont pas été modifiés et le manifeste est enregistré plus fréquemment afin de préserver les sommes de contrôle au fur et à mesure que la sauvegarde progresse. Plus de tests unitaires pour vérifier chaque cas de reprise.

  • La reprise est désormais facultative. Utilisez le paramètre resume ou --no-resume en ligne de commande pour la désactiver.

  • Messages d’information supplémentaires pendant la restauration. Auparavant, la plupart des messages de restauration étaient au niveau débogage, si bien qu’il n’y avait pas beaucoup de sortie dans le journal.

  • Ajout du paramètre tablespace permettant de restaurer les espaces de table dans le chemin pg_tblspc. Cela permet des restaurations compactes, pratiques pour le développement, les environnements de préproduction, etc. Actuellement, ces restaurations ne peuvent pas être sauvegardées, car pgBackRest s’attend à ce que seules des liaisons soient présentes dans le chemin pg_tblspc.

Notes de version v0.61

Correction d’un bug lié à une destination distante non compressée

Sortie le 21 avril 2015

Correctifs de bogues :

  • Corrigé une erreur de tamponnage pouvant survenir sur de grands fichiers fortement compressibles lors de la copie vers une destination distante non compressée. L’erreur a été détectée dans le code de décompression et entraînait un échec de la sauvegarde plutôt qu’une corruption, elle ne devrait donc pas affecter les sauvegardes réussies effectuées avec les versions précédentes.

Notes de version v0.60

Prise en charge améliorée des versions et améliorations du WAL

Sortie le 19 avril 2015

Correctifs de bogues :

  • L’envoi de WAL en double génère désormais une erreur. Cela fonctionnait auparavant uniquement si les sommes de contrôle étaient désactivées.

Fonctionnalités :

  • Les identifiants du système de base de données sont utilisés pour s’assurer que toutes les traces WAL archivées correspondent entre elles. Cela devrait aider à prévenir les mauvaises configurations qui enverraient des traces WAL provenant de plusieurs clusters vers le même archivage.

Fonctionnalités du jeu de tests :

  • Tests de régression fonctionnels à partir de PostgreSQL 8.3.

Notes de version v0.50

Restauration et bien plus

Sorti le 25 mars 2015

Correctifs de bogues :

  • Corrigé les sommes de contrôle endommagées, qui fonctionnent désormais avec les sauvegardes normales et reprises. Enfin compris que les sommes de contrôle et les deltas de sommes de contrôle devraient être fonctionnellement séparés, ce qui a simplifié plusieurs aspects. L’incident #28 a été créé pour les deltas de sommes de contrôle.
  • Corrigé un problème où une sauvegarde pouvait être reprise à partir d’une sauvegarde interrompue qui n’avait pas le même type ni la même sauvegarde précédente.

Fonctionnalités :

  • Ajout de la fonctionnalité de restauration.
  • Toutes les options peuvent désormais être définies en ligne de commande, rendant pg_backrest.conf facultatif.
  • La compression/décompression est désormais effectuée sans threads et la somme de contrôle/taille est calculée en flux. Cela signifie que les sommes de contrôle de fichier ne sont plus facultatives.
  • Ajout de l’option --no-start-stop pour autoriser les sauvegardes lorsque Postgres est arrêté. Si postmaster.pid est présent, --force est requis pour exécuter la sauvegarde (bien qu’une sauvegarde incohérente soit probablement créée si Postgres est en cours d’exécution). Cette option a été ajoutée principalement à des fins de tests unitaires, mais elle pourrait avoir des applications dans des environnements réels.
  • Somme de contrôle pour backup.manifest afin de détecter un manifeste corrompu ou modifié.
  • Le lien latest pointe toujours vers la dernière sauvegarde. Cette fonctionnalité a été ajoutée pour plus de commodité et pour simplifier les restaurations.

Fonctionnalités du jeu de tests :

  • Tests unitaires plus complets dans toutes les zones.

Notes de version v0.30

Restructuration centrale et tests unitaires

Sortie le 5 octobre 2014

Fonctionnalités de la documentation :

  • Ajout de documentation très utile

Fonctionnalités du jeu de tests :

  • Des tests unitaires assez complets pour toutes les opérations de base. Des travaux supplémentaires restent à accomplir ici, bien sûr, mais il reste toujours plus de travail à faire sur les tests unitaires.

Notes de version v0.19

Amélioration du rapport/dépistage des erreurs

Sorti le 13 mai 2014

Correctifs de bogues :

  • Détection et correction d’un bug grave où file_copy() était par défaut configuré pour ignorer les erreurs. Un autre problème dans file_exists() provoquait l’échec du test lorsque le fichier existait effectivement. Ensemble, ils auraient pu entraîner une sauvegarde corrompue sans aucune erreur, bien que cela soit très improbable.

Notes de version v0.18

Retourner une erreur douce lorsque l’archive est manquante

Sortie le 13 avril 2014

Correctifs de bogues :

  • La commande archive-get retourne désormais 1 lorsque le fichier d’archive est manquant, afin de le distinguer des erreurs graves (échec de connexion SSH, erreur de copie de fichier, etc.). Cela permet à PostgreSQL de savoir que le flux d’archive s’est terminé normalement. Toutefois, cela ne tient pas compte des éventuelles lacunes dans le flux d’archive. (Signalé par Stephen Frost.)

Notes de version v0.17

Avertir lorsque les répertoires d’archive ne peuvent pas être supprimés

Sorti le 3 avril 2014

Correctifs de bogues :

  • Si un répertoire d’archive qui devrait être vide n’a pas pu être supprimé, backrest lançait une erreur. Une correction définitive est en cours, mais pour l’instant, cela a été changé en avertissement afin que le traitement puisse continuer. Cela affectait les sauvegardes, car parfois le fichier d’archive final n’était pas envoyé si le premier fichier d’archive se trouvait dans un répertoire différent (plus un peu de malchance).

Notes de version v0.16

RequestTTY=yes pour les sessions SSH

Sortie le 1er avril 2014

Correctifs de bogues :

  • Ajouté RequestTTY=yes aux sessions SSH. Espérons que cela empêchera les blocages aléatoires.

Notes de version v0.15

Ajouté archive-get

Sorti le 29 mars 2014

Fonctionnalités :

  • Ajout de la fonctionnalité archive-get pour faciliter les restaurations.
  • Ajout de l’option permettant de forcer un point de contrôle au démarrage de la sauvegarde, start-fast=y.

Notes de version v0.11

Correctifs mineurs

Sortie le 26 mars 2014

Correctifs de bogues :

  • Supprimé l’option master_stderr_discard sur les connexions SSH à la base de données. Des blocages occasionnels ont été observés, qui pourraient être liés à des problèmes initialement rencontrés dans le code des fichiers. (Signalé par Stephen Frost.)

  • Modifié les conflits de fichiers verrou sur les commandes backup et expire pour qu’ils soient définis sur ERROR. Ils étaient initialement définis sur DEBUG en raison d’une copie-colle à partir des verrous d’archive.

Notes de version v0.10

La sauvegarde et l’archivage sont fonctionnels

Sorti le 5 mars 2014

Fonctionnalités :

  • La restauration n’est pas encore implémentée, mais les répertoires de sauvegarde sont des répertoires de données PostgreSQL cohérents. Vous devrez décompresser les fichiers ou désactiver la compression de la sauvegarde. Les sauvegardes non compressées sur ZFS, ou un système de fichiers similaire, peuvent être restaurées localement par instantané pour créer des sauvegardes logiques ou récupérer ponctuellement des données.

  • L’archivage est monothread. Cela n’a posé aucun problème sur nos bases de plusieurs téraoctets soumises à un fort volume d’écritures. Un grand volume WAL est recommandé, ou l’option asynchrone avec un volume proche de grande capacité.

  • Les sauvegardes sont multithreadées, mais la bibliothèque Net::OpenSSH ne semble pas sûre à 100% avec les threads et peut très occasionnellement en bloquer un. Un délai global tue le processus et résout le problème. Oui, c’est assez laid.

  • Les sommes de contrôle sont perdues lors de toute sauvegarde reprise. Seule la sauvegarde finale enregistre la somme de contrôle après plusieurs reprises. Les sommes de contrôle des sauvegardes précédentes sont correctement enregistrées, et une sauvegarde complète réinitialise tout.

  • Le backup.manifest est écrit en tant que Storable car Config::IniFile ne semble pas gérer correctement les grands fichiers. Il serait particulièrement souhaitable de les sauvegarder sous forme de texte lisible par l’humain.

Fonctionnalités de la documentation :

  • Aucune documentation (hors du code). Enfin, sauf ces notes de version.

7 - Questions fréquemment posées

Questions fréquentes sur la sauvegarde, la restauration, la configuration et le dépannage avec pgBackRest.

Introduction

Les questions fréquemment posées ont pour but de fournir des précisions sur des questions spécifiques qui peuvent ou non être traitées dans le guide utilisateur, la configuration ou la référence des commandes. Si vous ne trouvez pas de réponse à votre problème particulier ici, n’oubliez pas que la liste des problèmes pgBackRest Issues List in GitHub constitue également une ressource précieuse.


Que faire si j’obtiens l’erreur « impossible de trouver le segment WAL » ?

La cause de cette erreur peut résulter de nombreux problèmes différents, dont certains peuvent être :

  • archive_command mal configuré
  • fichiers de configuration pgBackRest incorrectement configurés
  • problème de réseau ou d’autorisations
  • problème de configuration d’un produit tiers, par exemple S3, Swift ou MinIO
  • grande quantité de WAL en attente d’archivage

Il est recommandé de :

  • vérifiez le archive_command dans PostgreSQL
  • vérifiez les paramètres de configuration de pgBackRest sur chaque hôte (par exemple, les paramètres pg* sont définis sur l’hôte du dépôt et les paramètres repo* sur l’hôte pg)
  • exécutez la commande check avec --archive-timeout défini à une valeur supérieure à celle du fichier de configuration pgBackRest (ou à la valeur par défaut) afin de vérifier si la file d’attente WAL nécessite plus de temps pour se vider. Si le système génère beaucoup de WAL, envisagez de configurer asynchronous archiving

Comment purger manuellement un jeu de sauvegarde ?

Une sauvegarde complète peut être expirée à l’aide de l’option --set, comme expliqué dans Référence des commandes : Expirer .


Comment puis-je configurer les options indépendamment pour chaque commande ?

pgBackRest peut définir des options indépendamment dans le fichier de configuration pour chaque commande. Configurer une stanza de cluster décrit cette fonctionnalité ainsi que la hiérarchie de priorité des options.

Par exemple, l’option process-max peut être optimisée pour chaque commande :

[global]
# used where not overridden
process-max=2

[global:backup]
# more cores for backup
process-max=4

[global:restore]
# all the cores for restore
process-max=8

[global:archive-push]
# more cores for archive-push
process-max=3

[global:archive-get]
# fewer cores for archive-get
process-max=1

Puis-je utiliser des points (points) dans le nom de mon bucket S3 ?

RFC-2818 n’autorise pas les caractères génériques à correspondre à un point (.), aussi les noms de bucket S3 ne doivent pas contenir de points. Si le nom de bucket S3 contient des points, une erreur telle que « unable to find hostname ‘my.backup.bucket.s3.amazonaws.com’ in certificate common name or subject alternative names » se produira.

L’exception est repo-s3-uri-style=path, qui ajoute le nom du bucket au URI au lieu de l’hôte. Comme le bucket n’est pas inclus dans le nom d’hôte, le certificat est vérifié uniquement par rapport à l’endpoint, et les points dans le nom du bucket ne posent pas de problème. Notez que les URI au format chemin ne sont pas pris en charge par toutes les solutions de stockage objet compatibles S3.


Où puis-je trouver des paquets pour les versions antérieures de pgBackRest ?

Le dépôt apt.PostgreSQL.org maintient une archive des anciennes versions . Debian maintient également des instantanés de toutes les versions de test.


Pourquoi une tentative de sauvegarde échoue-t-elle lorsque backup-standby=y et la base de données en mode standby sont hors ligne ?

Configurer la sauvegarde à partir d’un serveur secondaire est généralement destiné à réduire la charge sur le principal. Passer à la sauvegarde sur le principal lorsque le serveur secondaire est hors service contredit souvent cet objectif. Il n’est pas recommandé de surcharger le principal dans une situation où le système présente déjà des défaillances. Les sauvegardes ne sont pas critiques à condition d’en disposer une récente — ce qui compte, c’est de maintenir le archivage des WAL. Il reste ample temps pour effectuer une sauvegarde lorsque le système est à nouveau stable.

Si vous avez réellement besoin d’une sauvegarde, la solution consiste à disposer de plus de serveurs secondaires ou à supprimer backup-standby. Cette restriction peut être levée en ligne de commande grâce à --no-backup-standby, ce qui évite de réconfigurer le système pour une sauvegarde ponctuelle.


Dois-je configurer mon dépôt sur un hôte de secours ?

No. Lorsque les bases de données primaire et secondaire sont configurées, les fichiers de configuration de pgBackRest doivent être symétriques afin de gérer sans heurt les basculements. Si ce n’est pas le cas, les configurations devront être modifiées lors d’un basculement, ou des problèmes supplémentaires pourraient survenir.

Consultez la section Hôte dédié au dépôt du guide utilisateur pour plus d’informations.


La restauration à un instant donné basée sur le temps ne semble pas fonctionner, pourquoi ?

L’erreur la plus fréquente lors de l’utilisation de la restauration à un instant donné basée sur le temps est d’oublier de sélectionner un jeu de sauvegarde antérieur à l’instant cible. pgBackRest tentera de déterminer une sauvegarde à partir de laquelle poursuivre le traitement à partir de l’instant spécifié par --target= si l’option --set n’est pas précisée. Si aucun jeu de sauvegarde n’est trouvé, la restauration par défaut utilisera la dernière sauvegarde. Toutefois, si la dernière sauvegarde est postérieure à l’instant cible, alors --target= n’est pas considéré comme valide par PostgreSQL et est donc ignoré, ce qui entraîne une récupération des journaux (WAL) jusqu’à l’instant le plus récent disponible.

Pour utiliser l’option --set, sélectionnez un jeu de sauvegarde en exécutant la commande info et en identifiant la sauvegarde dont l’horodatage de fin est antérieur à l’heure cible. Ensuite, lors de la restauration, précisez l’option --set=BACKUP_LABEL où BACKUP_LABEL correspond au jeu de sauvegarde sélectionné.

Consultez la section Restauration à un instant donné du guide utilisateur pour plus d’informations.


Qu’est-ce que signifie le suffixe de l’archive WAL ?

Le suffixe est la somme de contrôle SHA1 utilisée pour vérifier l’intégrité du fichier. Il n’existe aucun moyen de l’omettre.


La restauration de types de sauvegarde spécifiques (pleine, différentielle, incrémentielle) prend-elle plus de temps ?

Les différents types de sauvegarde nécessitent le même temps de restauration. La restauration récupère les fichiers en se basant sur le manifeste de sauvegarde, qui peut faire référence à des fichiers provenant d’une sauvegarde antérieure dans le cas de sauvegardes incrémentielles ou différentielles. Bien qu’il puisse y avoir des différences dans le temps passé à créer une sauvegarde donnée (selon le type de sauvegarde), la taille de la base de données détermine le temps de restauration (le débit disque, le débit réseau, etc. étant égaux).


Comment puis-je exporter une sauvegarde pour l’utiliser dans un environnement hors réseau ?

pgBackRest utilise le dépôt non seulement pour stocker les sauvegardes et les archives WAL, mais aussi pour conserver les métadonnées essentielles nécessaires à des fonctionnalités telles que la compression, le chiffrement et le regroupement de fichiers. En raison de cela, copier simplement une sauvegarde accompagnée d’un sous-ensemble de fichiers WAL ne fonctionnera généralement pas, sauf si des conditions très spécifiques et restrictives sont respectées.

Toutefois, une solution de contournement existe si votre objectif est de créer une exportation autonome d’une base de données que vous pouvez transférer (par exemple, via une clé USB). Vous pouvez effectuer une sauvegarde avec l’option --archive-copy activée afin de garantir que les segments WAL nécessaires sont stockés conjointement avec la sauvegarde. Ensuite, procédez à la restauration à l’aide de --type=none --pg1-path=/your/target/path. Cela produit un répertoire de données PostgreSQL restauré contenant déjà tous les fichiers WAL requis dans pg_wal, de manière similaire à ce que pg_basebackup créerait.

Vous pouvez ensuite copier ce répertoire vers un autre système, et PostgreSQL devrait être en mesure de s’en remettre sans avoir besoin d’accéder au dépôt pgBackRest.

Veuillez noter qu’il ne sera pas effectué de basculement de timeline lors de la récupération de cette sauvegarde, ce qui signifie que ce cluster ne doit pas envoyer de WAL vers le dépôt d’origine d’où il a été exporté. Si le nouveau cluster est dans un environnement réseau isolé, cela ne devrait pas poser de problème.

8 - Métriques du projet

Métriques de couverture du code et statistiques de qualité du projet pgBackRest.

Couverture de code

pgBackRest vise à obtenir une couverture complète des fonctions, branches et lignes pour le code C principal dans /src.

La couverture fonctionnelle et par ligne est complète, sans exception.

La couverture de branche exclut les branches à l’intérieur des macros et les appels à assert(). Les macros ont leurs propres tests unitaires, donc elles n’ont pas besoin d’être testées à chaque endroit où elles apparaissent. Les assertions ne doivent pas être complètement couvertes en termes de branche, car elles vérifient des cas qui doivent toujours être vrais.

RépertoireFonctionsBranchesLignes
build/common32/32 (100.00%)72/72 (100.00%)268/268 (100.00%)
build/config39/39 (100.00%)564/564 (100.00%)1142/1142 (100.00%)
build/error6/6 (100.00%)22/22 (100.00%)71/71 (100.00%)
build/help13/13 (100.00%)138/138 (100.00%)265/265 (100.00%)
build/postgres8/8 (100.00%)58/58 (100.00%)149/149 (100.00%)
command17/17 (100.00%)104/104 (100.00%)210/210 (100.00%)
command/annotate1/1 (100.00%)12/12 (100.00%)30/30 (100.00%)
command/archive14/14 (100.00%)98/98 (100.00%)189/189 (100.00%)
command/archive/get10/10 (100.00%)208/208 (100.00%)447/447 (100.00%)
command/archive/push12/12 (100.00%)142/142 (100.00%)359/359 (100.00%)
command/backup50/50 (100.00%)786/786 (100.00%)1640/1640 (100.00%)
command/check13/13 (100.00%)106/106 (100.00%)214/214 (100.00%)
command/control4/4 (100.00%)34/34 (100.00%)48/48 (100.00%)
command/expire11/11 (100.00%)274/274 (100.00%)392/392 (100.00%)
command/help8/8 (100.00%)178/178 (100.00%)283/283 (100.00%)
command/info16/16 (100.00%)430/430 (100.00%)748/748 (100.00%)
command/local1/1 (100.00%)—4/4 (100.00%)
command/remote1/1 (100.00%)6/6 (100.00%)18/18 (100.00%)
command/repo9/9 (100.00%)110/110 (100.00%)195/195 (100.00%)
command/restore37/37 (100.00%)726/726 (100.00%)1350/1350 (100.00%)
command/server6/6 (100.00%)24/24 (100.00%)81/81 (100.00%)
command/stanza5/5 (100.00%)106/106 (100.00%)125/125 (100.00%)
command/verify22/22 (100.00%)366/366 (100.00%)733/733 (100.00%)
common146/146 (100.00%)624/624 (100.00%)1350/1350 (100.00%)
common/compress12/12 (100.00%)24/24 (100.00%)80/80 (100.00%)
common/compress/bz213/13 (100.00%)20/20 (100.00%)123/123 (100.00%)
common/compress/gz13/13 (100.00%)26/26 (100.00%)118/118 (100.00%)
common/compress/lz415/15 (100.00%)24/24 (100.00%)116/116 (100.00%)
common/compress/zst13/13 (100.00%)12/12 (100.00%)96/96 (100.00%)
common/crypto32/32 (100.00%)88/88 (100.00%)424/424 (100.00%)
common/error33/33 (100.00%)66/66 (100.00%)179/179 (100.00%)
common/io61/61 (100.00%)182/182 (100.00%)523/523 (100.00%)
common/io/filter31/31 (100.00%)92/92 (100.00%)276/276 (100.00%)
common/io/http58/58 (100.00%)292/292 (100.00%)685/685 (100.00%)
common/io/socket28/28 (100.00%)110/110 (100.00%)339/339 (100.00%)
common/io/tls37/37 (100.00%)122/122 (100.00%)409/409 (100.00%)
common/type335/335 (100.00%)922/922 (100.00%)3123/3123 (100.00%)
config93/93 (100.00%)1025/1026 (99.90%)1649/1649 (100.00%)
db23/23 (100.00%)94/94 (100.00%)301/301 (100.00%)
info48/48 (100.00%)240/240 (100.00%)712/712 (100.00%)
info/manifest10/10 (100.00%)132/132 (100.00%)303/303 (100.00%)
postgres36/36 (100.00%)140/140 (100.00%)336/336 (100.00%)
postgres/interface4/4 (100.00%)10/10 (100.00%)35/35 (100.00%)
protocol60/60 (100.00%)266/266 (100.00%)860/860 (100.00%)
storage68/68 (100.00%)298/298 (100.00%)754/754 (100.00%)
storage/azure26/26 (100.00%)164/164 (100.00%)487/487 (100.00%)
storage/cifs2/2 (100.00%)—6/6 (100.00%)
storage/gcs34/34 (100.00%)176/176 (100.00%)574/574 (100.00%)
storage/posix29/29 (100.00%)165/166 (99.40%)328/328 (100.00%)
storage/remote40/40 (100.00%)128/128 (100.00%)568/568 (100.00%)
storage/s331/31 (100.00%)194/194 (100.00%)651/651 (100.00%)
storage/sftp39/39 (100.00%)408/408 (100.00%)762/762 (100.00%)
TOTAL1705/1705 (100.00%)10608/10610 (99.98%)25128/25128 (100.00%)

Les modules de tests unitaires C dans /test/src/module bénéficient également d’une couverture complète fonctionnalité/ligne, mais ne sont pas inclus dans le rapport.