Vérifie tes slots de réplication avec `SELECT * FROM pg_replication_slots;`. Si un slot est inactif ou si le standby ne consomme pas les WALs assez vite, ils s'accumulent. Tu peux aussi avoir `wal_level` trop élevé ou `max_wal_size` trop grand dans `postgresql.conf`.
Si tu utilises un archivage WAL avec `archive_mode = on` et `archive_command`, assure-toi que ton `archive_command` fonctionne correctement et n'est pas bloqué. Un `archive_command` qui échoue fera s'accumuler les WALs indéfiniment.
SELECT * FROM pg_stat_archiver;
Pour purger manuellement les anciens WALs (si tu es sûr que plus aucun standby n'en a besoin ou si c'est un serveur standalone sans réplication) tu peux utiliser `pg_archivecleanup` mais c'est risqué. Mieux vaut régler la source du problème.
Effectivement un de mes slots de réplication était inactif depuis des jours. Je l'ai supprimé et les WALs ont commencé à être purgés. J'ai aussi baissé `max_wal_size` en attendant. Merci pour les pistes !
Vous devez être connecté pour poster un message !
Recevoir les derniers articles gratuitement en créant un compte !
S'inscrire
alfred66
Membre depuis le 25/07/2024actif
Mon serveur PostgreSQL est complètement saturé au niveau du disque. Je remarque que le répertoire `pg_wal` prend des centaines de gigas même si j'ai de la réplication.
Comment je gère cette accumulation de WALs avant que tout ne crash ?