Postgres startet nicht mehr

Hallo,
wenn ich den postgres-service starten will, tritt folgende Fehlermeldung auf:

PostgreSQL Database Server 8.3 wird gestartet…

PostgreSQL Database Server 8.3 konnte nicht gestartet werden.

Der Dienst hat keine Fehler gemeldet.


ich hab wirklich keine Ahnung was ich da tun soll… :frowning:
gibt es irgendwie ne möglichkeit die bereits gespeicherten daten aus der datenbank zu erhalten wenn ich das programm neu installieren muss?

Die erste Idee wäre einen Blick in die Prokolle zu werfen. Die findest du i. d. R. im Datenverzeichnis unter pg_log. Ein paar Hinweise zum Server (OS,…) wären auch von Vorteil.

habe windows XP
das letzte log ist leider vom 23.04.2010 mit folgendem inhalt:

2010-04-23 16:25:01 CEST LOG: loaded library “$libdir/plugins/plugin_debugger.dll”
2010-04-23 16:25:01 CEST FATAL: the database system is starting up
2010-04-23 16:25:01 CEST LOG: database system was shut down at 2010-04-23 16:22:16 CEST
2010-04-23 16:25:02 CEST LOG: database system is ready to accept connections
2010-04-23 16:25:02 CEST LOG: autovacuum launcher started
2010-04-23 16:25:02 CEST LOG: loaded library “$libdir/plugins/plugin_debugger.dll”

Wenn das in der Tat der letzte Eintrag ist, ist alles in bester Ordnung, der DB-Server läuft.
Kannst du die DB connecten? Versuch mal

psql -d postgres

in dem Verzeichnis, in dem die Binaries liegen (C:\Programme\PostgreSQL\8.3\bin) oder so. Wenn du dann z. B. mit \l (klein L) die Liste der Datenbanken bekommst, ist der Beweis erbracht.

Falls das nicht geht, was steht im Ereignisprotokoll? Hast du im Datenverzeichnis eine Datei postmaster.pid? In der steht die ProzessID des Servers. Gibt es eine solche ProzessID und gehört sie zum PG-Server?

Im Zweifelsfall hast du auch Rechteprobleme. PG ist recht strikt, was Permissions angeht. Wurde das Datenverzeichnis mal kopiert oder darf der PG-User (meist postgres) auf das Verzeichnis und alle Unterverzeichnisse voll zugreifen?

Ansonsten allgemein gefragt: Was ist passiert, seitdem der Server zuletzt lief? Hardware, Software, Firewall…?

den Befehl
psql -d postgres

kann ich nicht ausführen:

psql: could not connect to server: Connection refused.
Wie gesagt, die logdatei ist auch schon ein wenig älter…


Hier der Inhalt der postmaster.pid:

[.ShellClassInfo]
LocalizedResourceN

Wo soll es so eine ProzessID geben? Und wie komme ich an das Ereignisprotokoll?

Das Ereignisprotokoll findest du in der Verwaltung von Windows.
Dein PG-Server wird aber nicht starten, da es die postmaster.pid gibt. Benenne diese Datei einfach mal um und starte den Dienst noch einmal.

Deine postmaster.pid sollte in etwa so aussehen:

180
C:/Programme/PostgreSQL/8.3/data

Die 180 ist dabei die ProzessID.

irre, das Löschen der postmasters.pid hats gebracht, der service läuft nun wieder.
ich bedanke mich mal recht herzlich für die sehr schnelle und wirklich kompetente Hilfe =)

Gerne.
Du solltest aber für den Fall der Fälle, in dem das nicht so simpel ist, über ein brauchbares Backup nachdenken. Fakt ist nämlich, dass PG beim normalen stoppen des Servers die Datei löscht. Und da sie bei dir noch da war, stimmt etwas nicht…

er wurde auch nicht normal gestoppt. hatte in letzter zeit ein paar probleme mit “bösartiger software” durch die ich meinen pc oftmals nur auf die radikale weise, d.h. stecker ziehen, ausschalten konnte. wurde gestern aber alles behoben. trotzdem werde ich wohl mal backups anlegen müssen.

Na denn…