# Purge des fichiers de Backup PITR

WAL-G dispose de commandes permettant de purger les Clusters Backups et WAL Segments liés.

Muppy permet de mettre en oeuvre la purge de 2 manières:

* A partir du serveur qui héberge le Cluster PostgreSQL sur lequel le PITR est configuré.
* A partir de Muppy, via une Muppy Task configurée avec un CRON (Préconisation Muppy)

## Purge à partir du serveur PostgreSQL

La configuration de la purge est expliquée dans le paragraphe [#lancement-via-crontab-du-user-postgres](https://docs.muppy.io/guides/postgresql/lancement-des-clusters-backups#lancement-via-crontab-du-user-postgres "mention") de la page [lancement-des-clusters-backups](https://docs.muppy.io/guides/postgresql/postgresql-pitr/lancement-des-clusters-backups "mention").

Cette configuration de la purge pose le même problème que les backups. Muppy n'est pas informé des backups purgé et vous devez créer exécuter périodiquement une Task d'actualisation des Cluster Backups comme décrit dans [#actualisation-de-la-liste-des-clusters-backups](https://docs.muppy.io/guides/postgresql/liste-des-clusters-backups-wal-g#actualisation-de-la-liste-des-clusters-backups "mention").

Le groupe de paramètres **Full Backups Configuration** présent dans l'onglet **Backup / WAL-G** du formulaire des **Database Clusters** permet de planifier la **Purge** des fichiers de backup quand elle est exécutée à partir du **Database Cluster**.

Dans ce cas, les commandes de purge de WAL-G sont lancées via le CRONTAB du user **postgres.**

Lorsque vous cochez **Activate WAL-G in CRONTAB,** Muppy affiche les groupes de paramètres suivants:

![Configuration de la purge des fichiers de backup WAL-G à partir du serveur PostgreSQL](https://3772830354-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJQEyyq3uo2ur4VSBiaCB%2Fuploads%2FBU2qbgTjs4MU1A8ihjtg%2FCleanShot%202021-12-28%20at%2018.11.07.png?alt=media\&token=e27e24fa-cd22-46ad-82dd-3c85321c5f61)

1. Ces 4 paramètres permettent de:
   * Définir le nombre de Backups et fichiers WAL à conserver ou de **désactiver** la **purge** via le **CRONTAB** si la **valeur** est **0**
   * Planifier l'exécution des Purges en indiquant les paramètres **heures, minutes et "jour de la semaine"** d'une ligne de CRON (Voir <https://crontab.guru/> )&#x20;
2. Le fichier CRONTAB avec son timestamp collecté à l'issue de la dernière reconfiguration par Muppy. <mark style="background-color:green;">Si la purge est activée, le CRONTAB contient une ligne avec la commande 'delete retain  ...'</mark>

{% hint style="info" %}
Muppy n'écrase pas le CRONTAB du user postgres mais injecte un bloc contenant les commandes nécessaires à la purge des Backups WAL-G (Cf. figure précédente).

Ce bloc est généré par un fichier Template Muppy qui est défini avec le paramètre CRONTAB Template.&#x20;

Le template est utilisé pour planifier les backups et la purge.
{% endhint %}

### Application de la Configuration

Une fois que vous avez configuré ou modifié la configuration des Full Backups, cliquez sur le bouton ![](https://3772830354-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJQEyyq3uo2ur4VSBiaCB%2Fuploads%2Fz6ln17zLsvnHSzi97IJQ%2FCleanShot%202021-12-24%20at%2019.19.46.png?alt=media\&token=8abdb540-4d60-41f6-b800-153852e0dcdc)pour mettre à jour le CRONTAB afin d'activer et configurer ou désactiver la purge des fichiers de backups en fonction du paramètre **Nb. of Cluster Backups to keep**.&#x20;

{% hint style="warning" %}
Lorsque la purge est réalisée directement via un CRON sur le serveur PostgreSQL, Muppy n'a pas connaissance des backups purgés. La liste des backups doit donc être mise à jour comme indiqué dans le paragraphe [#actualisation-de-la-liste-des-clusters-backups](https://docs.muppy.io/guides/postgresql/liste-des-clusters-backups-wal-g#actualisation-de-la-liste-des-clusters-backups "mention")
{% endhint %}

## Purge à partir de Muppy (via une Muppy Task)

<mark style="background-color:green;">Notre recommandation est d'utiliser une Muppy Task planifiée pour lancer la purge des fichiers de</mark> <mark style="background-color:green;">backups générés pas WAL-G.</mark>

L'utilisation d'une Muppy Task permet:

* de pouvoir recevoir des notifications en cas d'erreur et/ou de succès de la purge
* de disposer des logs d'exécution
* d'avoir une liste des Cluster Backups (WAL-G) à jour

La Muppy Task **walg\_backup\_delete** purge les fichiers de backups et **actualise** la liste des **Clusters Backups (WAL-G)** à l'issue de la purge.

### Mise en oeuvre

Créez un **Task Run** avec les paramètres suivants (Cf. figure suivante) :

1. La Muppy Task **walg\_backup\_delete**
2. Le Host qui héberge le Cluster PostgreSQL dont vous souhaitez purger les backups
3. Le PostgreSQL **Database Cluster**  dont vous souhaitez purger les backups
4. Le nombre de **Cluster Backups (WAL-G)** (et WAL Segments) à conserver (La valeur par défaut est 20).
5. Par défaut (**confirm non coché)** la purge est exécutée en mode Dry Run et aucun fichier n'est effacé. Si vous cochez **confirm**, les fichiers seront effacés.
6. Utilisez le bouton <img src="https://3772830354-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJQEyyq3uo2ur4VSBiaCB%2Fuploads%2FngalGc1vN46GJqOryPOk%2FCleanShot%202021-12-28%20at%2010.35.48.png?alt=media&#x26;token=d8b64b11-6c10-4dfd-92b5-2672f15a5e1b" alt="" data-size="line"> pour planifier l'exécution périodique de la purge

A l'issue de l'exécution, la Task renvoie un json (#7 sur le schéma suivant) qui contient:

* **data**: les lignes renvoyées par la commande sur la console (stdout)
* **walg\_backup\_list\_result**: la liste des Cluster Backups actualisée à l'issue de la purge.

{% hint style="info" %}
En mode Dry Run (confirm=False), le contenu de **walg\_backup\_list\_result** contient toujours les fichiers de Backups qui n'ont pas été supprimés !
{% endhint %}

![Example de Task Run de Purge des Backups et WAL Segments](https://3772830354-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJQEyyq3uo2ur4VSBiaCB%2Fuploads%2FEiwicgA070rZFbt699xy%2FCleanShot%202021-12-28%20at%2012.52.11.png?alt=media\&token=0735fbb4-09d0-4beb-b347-26d26276fd56)
