Comment modifier la fréquence et la période de conservation des snapshots PostgreSQL (PWR) ?
6 min de lecture
L'équivalent, pour PostgreSQL, de dbms_workload_repository.modify_snapshot_settings côté Oracle : comment vérifier et modifier la fréquence de capture et la durée de rétention des snapshots PWR, en mode Direct (interface) comme en mode Agent (fichier config/.env du Collector).
Côté Oracle : DBA_HIST_WR_CONTROL et modify_snapshot_settings
Sur une base Oracle, on vérifie la fréquence et la rétention des snapshots AWR en interrogeant la vue DBA_HIST_WR_CONTROL (colonnes SNAP_INTERVAL et RETENTION), puis on les modifie avec dbms_workload_repository.modify_snapshot_settings(interval => ..., retention => ...) — des valeurs exprimées en minutes qu'il faut convertir soi-même (par exemple 30 jours = 30*24*60 = 43200 minutes).
PWR reprend exactement le même besoin (garder un historique de snapshots exploitable sans saturer le stockage ni perdre l'incident qu'on cherche à analyser plus tard), mais l'expose différemment selon votre mode de connexion : un formulaire dans l'interface en mode Direct, ou un simple fichier de configuration en mode Agent — sans jamais avoir à écrire de PL/SQL ni de requête sur une vue système.
Vérifier la configuration actuelle de vos snapshots
En mode Direct, la fréquence et la rétention actives sont affichées directement dans le formulaire "Configurer la capture" de l'onglet Connexions — pas besoin de requêter une table pour les connaître.
En mode Agent, ces mêmes valeurs sont lisibles en clair dans le fichier config/.env, sur la machine où le Collector est installé, sous forme de variables d'environnement commentées.
Modifier la fréquence et la rétention en mode Direct (interface)
Depuis l'onglet "Connexions" de votre espace compte, cliquez sur le bouton "Configurer la capture" de la connexion concernée.


Choisissez la fréquence de capture en minutes (par exemple 15, 30 ou 60) et la durée de rétention en jours (par exemple 7 ou 30), puis activez la planification automatique. Le changement est pris en compte immédiatement, sans redémarrage ni intervention côté base de données — le planificateur interne de PWR applique la nouvelle fréquence dès le prochain cycle (vérifié toutes les 30 secondes côté serveur).
Modifier la fréquence et la rétention en mode Agent (config/.env du Collector)
En mode Agent, la fréquence et la rétention ne passent pas par l'interface web mais par le fichier config/.env, sur la machine où le Collector est installé chez vous. Ouvrez ce fichier et modifiez les deux variables ci-dessous.
- SNAPSHOT_INTERVAL_MINUTES — équivalent du SNAP_INTERVAL d'Oracle : l'intervalle en minutes entre deux captures automatiques (par exemple 15, 30 ou 60).
- RETENTION_DAYS — équivalent du RETENTION d'Oracle : le nombre de jours d'historique conservé avant que les snapshots les plus anciens ne soient purgés automatiquement.
- PURGE_BATCH_SIZE — réservé pour la compatibilité de format ; n'a pas besoin d'être modifié pour changer la fréquence ou la rétention.
# Intervalle (minutes) entre deux captures automatiques.
SNAPSHOT_INTERVAL_MINUTES=30
# Nombre de jours de retention avant purge des anciens snapshots.
RETENTION_DAYS=30
# Reserve pour compatibilite de format.
PURGE_BATCH_SIZE=500Redémarrer le Collector pour appliquer le changement
Contrairement au mode Direct (pris en compte immédiatement), une modification de config/.env en mode Agent nécessite un redémarrage du service Collector pour être prise en compte, puisque ces valeurs sont chargées une seule fois au démarrage du processus.
Restart-Service PWRCollectorsudo systemctl restart pwr-collectorCombien de snapshots seront réellement conservés ?
Que ce soit en mode Direct ou en mode Agent, le nombre maximal de snapshots conservés à un instant donné suit la même formule : snapshots_par_jour = floor(1440 / fréquence_minutes), puis max_snapshot = rétention_jours × snapshots_par_jour (avec un minimum de 1).
Exemple : une fréquence de 30 minutes et une rétention de 30 jours donnent 48 snapshots par jour, soit 1 440 snapshots conservés au maximum avant que les plus anciens ne soient automatiquement purgés.
Bonnes pratiques de fréquence et de rétention
Une fréquence trop faible (par exemple 1 heure) risque de "rater" un incident court mais sévère entre deux captures — à l'inverse, une fréquence trop élevée (par exemple 1 minute) multiplie inutilement le volume stocké sans apporter de granularité utile dans la plupart des cas.
Pour un usage courant de diagnostic (comparer un avant/après incident, suivre une tendance sur quelques jours), un intervalle de 15 à 30 minutes avec une rétention de 7 à 30 jours couvre la grande majorité des besoins. Augmentez la rétention (60 à 90 jours) si vous devez pouvoir comparer un comportement à plusieurs mois d'écart (par exemple avant/après une montée de version ou un pic saisonnier).
Conclusion
Modifier la fréquence et la rétention des snapshots PostgreSQL avec PWR ne demande ni requête SQL sur une vue système, ni appel PL/SQL — juste un formulaire dans l'interface en mode Direct, ou deux variables d'environnement en mode Agent. Le résultat est le même objectif que dbms_workload_repository.modify_snapshot_settings côté Oracle : garder juste assez d'historique pour diagnostiquer un incident passé, sans faire exploser le volume de données stockées.
