Merci pour la question !
Avec Oracle Dataguard, la primaire envoie les infos vers la standby via log_archive_dest ou autre mais, en théorie, avec PostgreSQL c'est la standby qui demande les infos à la primaire :
https://www.postgresql.org/docs/10/stan ... tings.html . L'archive_command de la primaire n'est pas utile pour envoyer les WAL à la standby.
L'outil de sauvegarde vient en complément, il permet en fait d'avoir 2 canaux pour les informations de journalisation.
Je n'ai pas encore utilisé pgBackRest en environnement primaire/standby mais j'ai beaucoup utilisé Barman dans ce cas et les possibilités doivent être identiques.
Voici un schéma possible :

- exemple_pra.jpg (84.23 Kio) Vu 262501 fois
L'idée est d'archiver les WAL normalement vers Barman (pgBackRest dans votre cas) via archive_command, qu'il y ait une standby ou non. Une standby peut d'ailleurs aussi archiver les informations de journalisation avec archive_mode = always.
La standby, elle, demande les infos de journalisation dont elle a besoin via 2 chemins (paramétrage dans recovery.conf avec pg 10) :
- Le streaming des WAL depuis la primaire : primary_conninfo = ...
- Le repository Barman en cas de besoin : restore_command = 'barman-wal-restore -U barman XXXXX XXXX %f %p' (=> à remplacer par la stanza pgBackRest primaire dans votre cas)
L'intérêt : la primaire ne se préoccupe pas de la standby et n'a pas à converser les WAL au risque de saturer l'espace. Si la standby est trop en retard (interruption réseau ou autre), Barman (ou pgBackRest) les a de toute façon encore (évidemment tout de même dans la limite de la fenêtre de recover...).
C'est une config quasi sans entretien une fois qu'elle est en place.
Il doit être tout à fait possible de faire la même chose avec pgBackRest, je publierai un exemple sur le site prochainement.
Cdlt. Phil - pgphil.ovh