Hello,
Citation :
À quel moment postgreSQL décide de lancer la commande d'archivage ?
En d'autres termes, quand est-ce que la commande d'archivage des fichiers wal (qui est définie dans le paramètre archive_command de postgresql.conf) est lancée ? Est-ce dès qu'fichier WAL est complet ?
|
La commande d'archivage est lancée dès lors qu' un WAL est complet oui.
Il exécute alors la commande présente la commande d'archivage du WAL (archive_command= ... ).
Citation :
Une fois le ou les fichiers WAL archivés, ceux-ci sont-ils supprimés automatiquement ? Si non y a t'il un mécanisme de recyclage des fichiers wal ? Si non le dossier WAL va grossir indéfiniment !
|
La gestion des WAL reste un mécanisme interne, il est préférable de ne pas purger manuellement, au risque de virer un WAL courant (=> ) ou un fichier texte (d'info backup/resto, sans lesquels tu peux avoir des problèmes). Il faut s'appuyer sur les paramètres min_wal_size et max_wal_size (sans parler de wal_keep_segments en cas en cas de réplication).
C'est alors postgres qui gère lui même au moment du checkpoint il me semble.
C'est une taille cible que tu donnes; si ça s'agrandit au delà de la max_wal_size, c'est qu'un backup est en cours pas exemple (avec la méthode stream).
Citation :
De même, y a t'il un mécanisme de recyclage ou purge des fichiers archivés ?
|
Non c'est à toi de le gérer manuellement de base (avec pg_archivecleanup par ex). Sinon les outils tels que pg_backrest gèrent cette problématique, c'est assez bien intégré.
Mais de base, avec un backup (pg_basebackup), il n'y a pas de getion des WAL archivés.
Citation :
Quand on lance une sauvegarde complète, nombre de fichiers WAL et Archives deviennent du coup obsolètes. Faut-il les supprimer manuellement une fois la sauvegarde faite ?
|
Les WAL entre ton début de backup et fin de backups sont indispensables pour retrouver une base cohérente.
Les archives sont nécessaires quand on fait un restauration dans le temps (PITR), quand on a de la réplication (et encore, c'est moins vrai depuis la 10), mais jamais nécessaires à la vie de l'instance.
Les backups full (pg_basebackup) et backup des archives (à faire soi-même, c'est une copie de fichier au final) sont à gérer de tel manière de ne jamais perdre des archives, donc les avoir backupées avant. Avec pg_backrest (patroni ou d'autres doivent en faire de même), tu n'as pas à te soucier de ça, et en plus tu peux faire des vrais backups incrémentaux.
Il y a certainement des approximations dans tout ce que j'ai dit, mais le principe est là.
Message édité par seb4stien le 19-03-2021 à 16:20:32