Bonjour,

j'ai 2 serveurs sous debian, j'ai presque toujours compris le principe de réplication entre 2 serveurs en "local" mais depuis qu'ils sont sur le Net et que la réplication passe par le Net, certaines notions m'échappent et j'aimerai confirmer mon travail.

J'utilise Postgresql 13 sur les 2 serveurs et voici la conf:

sur le master:
max_wal_senders = 10
wal_keep_size = 20GB
max_replication_slots = 10
hot_standby = on
archive_mode = on
archive_command = 'cp %p /mnt/psql_wal_archive/%f'
max_wal_size = 1GB
le slave:
hot_standby = on
primary_conninfo = 'ip du master'

Quand je restarte la DB sur le Master, le répertoire /mnt/psql_wal_archive commence à se remplir avec des fichiers de 16 Mo.
La DB Slave se synchronise proprement, tout va bien.

Au bout d'un certain nombre de jours / semaines, forcément, sur le serveur Master, le répertoire "/mnt/psql_wal_archive" commence à être très très gros et il ne semble pas y avoir de "purge automatique".
A un moment donné, je supprime donc les fichiers les plus anciens (vieux de plus de 7 jours).

Et là, patatrac, la DB Slave commence à paniquer et affiche les logs connus de tous:
FATAL: n'a pas pu recevoir des données du flux de WAL : ERREUR: le segment demandé du journal de transaction, 0000000100001A03000000BE, a déjà été supprimé

Donc, comment se gère une vraie purge automatique sur la DB Master ? Mes paramètres de conf sont faux ?

J'ai pourtant suivi pas mal de tutos récents, mais aucun n'arrive à faire cela. Mes préférés sont:
https://www.migops.com/blog/setting-...ion-internals/
https://blog.capdata.fr/index.php/po...ication-en-12/

Si je dois ajouter ici la valeur d'autres parametres des 2 confs, je peux le faire parce que je pense qu'il y a un oubli quelque part mais je n'arrive pas à mettre le doigt dessus.

Merci.