Vous n'êtes pas identifié(e).
Bonjour,
Je me pose une question sur le redémarrage et le parcours des fichiers WAL en cas de reprise après crash...
Dans les fichiers WAL, si j'ai bien compris, une information indique le début et la fin d'un checkpoint.
Quand un checkpoint se termine, tous les buffers dirty présents avant le début du checkpoint et correspondant à des transactions validées sont écrits sur le disque, c'est bien ça ?
Mais pendant la réalisation du checkpoint, d'autres données peuvent être simultanément modifiées par la validation de transaction concomitantes...
Du coup, en cas de reprise après un crash survenu en cours de checkpoint (commencé mais pas fini), PostgreSQL repart, pour écrire les infos manquantes sur disque au moment du crash, de l'avant-dernier checkpoint ? Et parcours tout le fichier WAL de ce point de départ jusqu'à la fin ?
C'est juste une question de détail... mais c'est pour être certain d'avoir compris le mécanisme.
Merci d'avance pour votre aide,
Cédric
Hors ligne
Bonjour,
Oui, c'est bien ça.
Sinon, la position du dernier checkpoint n'est modifiée qu'une fois le checkpoint terminé. En cas d'arrêt brutal durant un checkpoint, le rejeu s'effectuera donc depuis le début du checkpoint d'avant, donc de tous les WAL générés depuis.
Julien.
https://rjuju.github.io/
Hors ligne
Parfait.
Merci pour la réponse rapide.
Hors ligne