En plus de peut-être vous sauver la vie un jour, cela permet également d'utiliser des fonctionnalités comme:
- Les sauvegardes physiques à chaud
- La réplication
- Le Point In Time Recovery
Archive_mode
Les valeurs les plus utilisées de ce paramètre sont 'off' (valeur par défaut) et 'on'. Cependant, si on regarde attentivement la documentation, on voit qu'il existe une valeur 'always' pour ce paramètre.Lorsque le paramètre est valorisé à 'off', les WAL ne sont pas archivés. Une fois qu'ils ne sont plus utiles, ils ne sont pas copiés alors et lorsqu'on aura besoin de place, on les recyclera. C'est la valeur par défaut et, encore une fois, je vous conseille de ne pas utiliser cette valeur.
Lorsque le paramètre est valorisé à 'on', les WAL sont archivés lors du fonctionnement normal de l'instance (c'est à dire lorsque des requêtes envoyées par les clients modifient la structure ou les données).
La dernière valeur (qui est peu utilisée), 'always', permet de créer des WAL y compris lors des opérations de recovery. En effet, lorsqu'une instance est en recovery, elle modifie la structure et les données des bases de données.
On pourrait considérer qu'étant donné qu'on a les WAL qui ont permis le recovery, il n'est pas nécessaire de créer des nouveaux WAL. Cependant, si nous nous plaçons dans le cas d'une streaming replication, les blocs sont streamés directement et pour éviter d'envoyer à nouveau ces informations à la standby via les WALs complets (avec archive_command ou pg_receivexlog), il est possible de demander à la standby de créer ses propres WAL. Cela permet d'économiser un peu la bande passante.
Pour en savoir plus
Cette fonctionnalité est disponible depuis la version 9.5.Vous trouverez la documentation officielle ici: https://www.postgresql.org/docs/current/static/runtime-config-wal.html#GUC-ARCHIVE-MODE