En raison d'une coupure de courant soudaine, le serveur PostGres
s'exécutant sur ma machine locale s'est arrêté brusquement. Après le redémarrage, j'ai essayé de redémarrer Postgres et je reçois cette erreur:Comment réparer Postgres afin qu'il démarre après un arrêt brusque?
$ pg_ctl -D /usr/local/pgsql/data restart
pg_ctl: PID file "/usr/local/pgsql/data/postmaster.pid" does not exist
Is server running?
starting server anyway
server starting
$:/usr/local/pgsql/data$ LOG: database system shutdown was interrupted at 2009-02-28 21:06:16
LOG: checkpoint record is at 2/8FD6F8D0
LOG: redo record is at 2/8FD6F8D0; undo record is at 0/0; shutdown FALSE
LOG: next transaction ID: 0/1888104; next OID: 1711752
LOG: next MultiXactId: 2; next MultiXactOffset: 3
LOG: database system was not properly shut down; automatic recovery in progress
LOG: redo starts at 2/8FD6F918
LOG: record with zero length at 2/8FFD94A8
LOG: redo done at 2/8FFD9480
LOG: could not fsync segment 0 of relation 1663/1707047/1707304: No such file or directory
FATAL: storage sync failed on magnetic disk: No such file or directory
LOG: startup process (PID 5465) exited with exit code 1
LOG: aborting startup due to startup process failure
Il n'y a pas de fichier postmaster.pid
dans le répertoire de données. Ce qui pourrait éventuellement être la raison de ce genre de comportement et bien sûr, quelle est la sortie?
Juste pour que vous le savez, les chances sont que vous pourriez avoir à restaurer à partir de sauvegarde. Mais avant cela, partagez avec nous votre version de Postgres (v8.1.5 et v8.1.6 IIRC il y avait un bogue déclenchant cette erreur pendant la récupération) et le type de système de fichiers (vous voudrez peut-être changer cela avant la panne suivante) – vladr
indice: "restart", vous dites à PostgreSQL qu'il est en cours d'exécution et doit être redémarré. Il ne fonctionne pas, il n'y a donc pas de fichier d'identification de processus (.pid). – Kurt
Quelle version de postgres utilisez-vous, et quel est le type du système de fichiers '/ usr/local/pgsql/data'? – vladr