Fichier .history¶
Ce fichier sert à indiquer les changements de TimeLineID et à fournir des informations détaillées sur ces changements.
Le numéro précédant le suffixe .history
correspond au numéro du TimeLineID. Notez que 1.history
n’existe jamais, car
PostgreSQL commence à compter à partir de 2.history
. En effet, les fichiers *.history
ne sont créés que lorsque
l’instance est en mode de restauration. L’instance étant à l’initialisation sur la TimeLineID 1, après une restauration,
elle passera à la TimeLineID 2, ce qui créera le fichier 2.history
.
La création du fichier suit l’algorithme suivant :
- PostgreSQL calcule la nouvelle TimeLineID;
- il envoie un message de log indiquant la sélection de la nouvelle TimeLineID (LOG “selected new timeline ID…”);
- il travaille temporairement dans un fichier
pg_wal/xlogtemp.$pid
; - il crée et tente d’ouvrir ce fichier (un message d’erreur est généré si la création échoue);
- il tente d’ouvrir le fichier .history de l’ancien TimeLineID (un message d’erreur est généré en cas d’échec);
- si l’ouverture réussi, il copie l’ancien fichier
.history
dans le fichier temporaire; - il ajoute une ligne dans le fichier temporaire contenant les détails du changement de Timeline;
- il synchronise le fichier sur disque et le ferme;
- le fichier temporaire est renommé en
x.history
; - Enfin, le fichier est archivé.