Aller au contenu

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é.