Postgres-Dienst startet nach Verschieben der Daten nicht mehr

Hallo!

Ich habe nach dieser Anleitung (Change the default PGDATA directory on Windows - PostgreSQL Wiki) meine Daten auf eine andere Partition verschoben.

Beim Starten des Dienstes bekomme ich aber nun eine “drwtsn32.exe Fehlermeldung”: “Die Anwendung konnte nicht richtig initialisiert werden.”

Ich kann aber in der DOS-Eingabeaufforderung den Server per "C:\Programme\PostgreSQL\8.3\bin\pg_ctl.exe start -w -N “pgsql-8.3” -D “D:\data” starten und alles funktioniert einwandfrei.

Weiß jemand, wie ich den Dienst wieder zum Laufen bekomme?

Danke und Frohe Weihnachten.

Vermutlich wirst Du in der zentralen Müllhalde, ähm, Registry, suchen müssen.

Andreas

Jetzt habe ich mich extra in diesem Forum angemeldet, weil ich mir hier kompetente Hilfe erhofft hatte — und das ist die Antwort die ich kriege :confused: :frowning:

Hast du mal geschaut welchen Befehl der Dienst zum Ausführen anwendet?

Rechtsklick auf den Dienst -> Eigenschaften
Da gibts irgendwo ein Feld in dem der Befehl steht.

Der müsste ja mit deiner manuellen Eingabe überein stimmen mit der es funktioniert.


Gruß
Sparrow

Da steht unter “Pfad zur EXE-Datei” <C:\Programme\PostgreSQL\8.3\bin\pg_ctl.exe runservice -w -N “pgsql-8.3” -D “D:\data”> — Also genau der gleiche Befehl nur dass statt dem Argument start das Argument runservice übergeben wird.

Dann gib doch mal bitte den entsprechenden Befehl direkt in die Konsole (Eingabeaufforderung) ein, inkl. runservice, um zu schauen ob das Problem dann auch auftritt.

So kannst du das wenigstens darauf eingrenzen.

Gruß
Sparrow

Ja. Hatte ich schon probiert. Da bekomme ich die Fehlermeldung, dass ich runservice nicht als Argument benutzen darf.

Es gibt ja im Postgre-Startmenü auch eine Verknüpfung “Start service”. Der zugehörige Befehl lautet “C:\WINDOWS\system32\net.exe start pgsql-8.3”

Weil heute Weihnachten ist, vergesse ich mal Deine pampige Antwort und verweise nochmals auf die Registry.

Stichwort: HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Services\pgsql-8.3
Key: Data Directory

Aber nochmals schlage ich Dich nicht mit der Zaunslatte.

Andreas

Ich fand meine Antwort nicht pampig, ich war nur enttäuscht.
Dein Tipp hat leider nicht geholfen, aber du scheinst mir sehr kompetent zu sein und ich hoffe, dass du mir aus deiner weihnachtlichen Laune heraus vielleicht doch helfen kannst.

Ich beschreibe nochmal Schritt für Schritt, was ich gemacht habe:

  • Dienst gestoppt
  • Verzeichnis data aus C:\Programme\PostgreSQL\8.3 nach D:\ kopiert und in “Postgres83-Data” umbenannt
  • In C:\Programme\PostgreSQL\8.3\data alle Dateien bis auf pg_hba.conf, pg_ident.conf und postgresql.conf gelöscht
  • In postgresql.conf die Zeile >data_directory = ‘D:/Postgres83-Data’< eingefügt
  • In D:\Postgres83-Data alle Dateien bis auf die Verzeichnisse und PG_VERSION gelöscht


  • Versucht Dienst zu starten -> Fehlermeldung siehe oben
  • Server manuell gestartet


  • Server manuell gestoppt und deinen letzten Tipp ausprobiert -> wieder gleiche Fehlermeldung beim Serverstart

Danke und Frohe Weihnachten.

[quote=“pgf_1”][/QUOTE]

Möglicherweise stimmen die Dateirechte nicht. Ich nix Windoze, weiß also nicht wirklich genau, was man da flasch machen kann bzw. wie man das prüft und richtig macht.

Andreas

Danke. Das war es. Die Dateirechte stimmten nicht. Der Dienst wurde für den Benutzer postgres gestartet, der “Postgres83-Data”-Ordener ist allerdings in “Eigene Dateien” eines anderen Benutzers gespeichert. Damit darf der Benutzer Postgres natürlich nicht auf diesen Ordner zugreifen.

Ich habe >Fajo< installiert, damit ich mit XP Home auch die Zugriffsrechte für Dateien ändern kann. Allerdings gibt es das Benutzerkonto Postgres nicht. Weiß jemand, wie ich dien Zugriff auf den Ordner erlauben kann?

Eine unsaubere Lösung wäre, den Benutzer “Jeder” die Rechte zu geben. Das ist aber wirklich schmutzig und dann hat auch wirklich jeder das Recht auf diese Dateien zuzugreifen.