Un message d’erreur qui peut arriver après avoir fait un ménage trop important dans les logs, un espace disque insuffisant ou un simple plantage du SGBD. Le service postgresql ne démarre plus correctement, que ce soit sur Linux ou sur Windows. En fouillant dans les logs du serveur PostgreSQL, on trouve ce message d’erreur :
PANIC: could not locate a valid checkpoint record
ou en français :
PANIC: n’a pas pu localiser un enregistrement d’un point de vérification valide
Ce tutoriel est basé sur un exemple concret : le service PostgreSQL Server ne démarre pas sur Windows et aucun message graphique n’explique le problème. Il explique comment résoudre l’erreur « PANIC: could not locate a valid checkpoint record » de PostgreSQL toutes versions, que l’on peut lire dans le fichier log courant. La réponse est un peu dans la question mais un accompagnement ne fait pas de mal pour corriger cette erreur bloquante. Ce guide montre la solution pour les versions Postgre inférieures à 10 (7, 8, 9) et supérieures/égales à 10 (10, 11…).
Solution à l’erreur Postgre : PANIC: could not locate a valid checkpoint record
Serveur PostreSQL 10 et 11
1. Ouvrir un Invite de commandes (cmd) en tant qu’Administrateur.
2. Naviguer dans le dossier d’installation « bin » de PGSQL :
cd C:\Program Files\PostgreSQL\10\bin
3. Exécuter la commande suivante pour vérifier, en indiquant le chemin des bases de données :
pg_resetwal DATADIR
soit par exemple :
pg_resetwal "D:\BasesPostgreSQL10"
4. Et celle-ci pour forter le reset :
pg_resetwal -f DATADIR
soit :
pg_resetwal -f "D:\BasesPostgreSQL10"
5. Le service PostgreSQL Server peut à nouveau démarrer.
Serveur PostreSQL 9
1. Ouvrir un Invite de commandes (cmd) en tant qu’Administrateur.
2. Naviguer dans le dossier d’installation « bin » de PGSQL :
cd C:\Program Files\PostgreSQL\9.6\bin
3. Exécuter la commande suivante pour vérifier, en indiquant le chemin des bases de données :
pg_resetxlog DATADIR
soit par exemple :
pg_resetxlog "D:\BasesPostgreSQL9"
4. Et celle-ci pour forter le reset :
pg_resetxlog -f DATADIR
soit :
pg_resetxlog -f "D:\BasesPostgreSQL9"
5. Le service PostgreSQL Server peut à nouveau démarrer correctement.