Probleme beim Verschieben von PostgreSQL-DB

    • Flixius
      Flixius
      Bronze
      Dabei seit: 26.08.2007 Beiträge: 157
      Hi,

      nach der Anleitung unter http://www.pokertracker.com/forums/archives/PT2/viewtopic.php?t=17740&highlight=move+postgresql habe ich versucht meine PT-Datenbank auf eine andere Partition zu bringen. Aber beim editieren der Configfile habe ich so meine Probleme.

      Nachdem ich die Variablen geändert habe kommt bei PT nun die Fehlermeldung "unable to login, connection refused". Offenbar habe ich einen ungültigen Pfad angegeben. Wie ist denn die Notation? Slashes? Doppelslashes? Backslashes? Relative Pfade für hba_file und ident_file?


      Falls jemand seine DB auch schonmal verschoben hatt, bitte ich darum, die Zeilen 38-48 in der postgre.sql-Datei mal hier zu posten. Sie befindet sich im Verzeichnis "data".

      Ich habe schon sämtliche Möglichkeiten durch, aber bislang keinen Erfolg gehabt. Momentan sieht meine File so aus:

      data_directory = 'D:\\PT-data\\data\' # use data in another directory
      # (change requires restart)
      hba_file = 'pg_hba.conf' # host-based authentication file
      # (change requires restart)
      ident_file = 'pg_ident.conf' # ident configuration file
      # (change requires restart)

      # If external_pid_file is not explicitly set, no extra PID file is written.
      #external_pid_file = '(none)' # write an extra PID file
      # (change requires restart)

      Danke!
  • 10 Antworten
    • Nazdhun
      Nazdhun
      Bronze
      Dabei seit: 10.03.2008 Beiträge: 93
      Das mit dem Verschieben ist nicht soo trivial, hab es aber letztens bei einem Kumpel hinbekommen.

      OS war Windows XP:

      1.) PostgreSQL Dienst stoppen.
      2.) Das komplette /data-Verzeichnis an den gewünschten Ort verschieben
      3.) Die Datei postgresql.conf entsprechend anpassen
      4.) Auch(!) den Pfad in den Dateien postmaster.pid und postmaster.opts anpassen. Dazu einen guten Editor (z.B. UltraEdit) nehmen. NotePad geht auch, aber dann nicht über komische Sonderzeichendarstellung wundern und bloss nix falsches überschreiben!
      5.) Einen Eintrag in der Registry wie hier unter Schritt 2 beschrieben ändern: http://wiki.postgresql.org/wiki/Change_the_default_PGDATA_directory_on_Windows

      Und gaaaanz wichtig (ich muss jetzt etwas aus dem Gedächtnis schreiben, da ich hier grad vor Vista sitze):
      Den neuen Data-Ordner dem richtigen Nutzer zuweisen! Dazu muss man in den Ordner-Ansichts-Eigenschaften von Windows XP erstmal von dem einfachen zur Erweiterten Freigabe-Optionen umschalten. Erst danach kann man Ordner gezielt Nutzern zuweisen bzw. Zugriff erlauben. Dann also dem postgres-Nutzer Vollzugriff auf den neuen Data-Ordner gewähren.

      7. PostgreSQL Dienst wieder starten.

      Sollten der Start des Dienstes endlos lange dauern, und nachher doch nicht gestartet sein, liegt es höchstwahrscheinlich daran, das ihr bei den Ordner-Freigabe-Rechten irgendwas falsch gemacht habt.
    • Flixius
      Flixius
      Bronze
      Dabei seit: 26.08.2007 Beiträge: 157
      Vielen Dank für deine Ausführliche Beschreibung. Jetzt bin ich schon ein gutes Stück weiter. Eine postmaster.pdi habe ich nicht, aber ich denke mal, dass es kein Problem ist. .pid steht wohl für ProcessId und wird beim Serverstart automatisch erstellt.

      Wenn ich den Dienst start, passiert allerdings genau das, was du oben beschrieben hast: Der start dauert ewig und wenn er fertig ist, wird der Service direkt wieder beendet.

      Bei der Ordnerfreigabe hat postgres vollzugriff und Lokaler Dienst habe ich zur Sicherheit auch nochmal ausgewählt.

      hat jemand noch eine Idee?
    • Nazdhun
      Nazdhun
      Bronze
      Dabei seit: 10.03.2008 Beiträge: 93
      Den Eintrag in der Registry auch geändert? Und wie dort beschrieben, muss man danach einmal das Dienste-Fenster komplett schliessen und wieder aufrufen, weil sonst der geänderte Eintrag aus der Registry nicht übernommen wird...
    • Flixius
      Flixius
      Bronze
      Dabei seit: 26.08.2007 Beiträge: 157
      Ja das hab ich auch gemacht. PT meldet mir "Connection Refused" als Fehlermeldung. Wenn ich "start service" über Winstart/Programme ausführe, dauert der Start in der Console genauso lange wie, wenn ich es über Dienst mache. Auch da wird die Verbindung direkt wieder geschlossen. Im Postgres und Data-Verzeichnis hab ich nochmal nach dem String "C:" gesucht - ohne Erfolg.
    • Nazdhun
      Nazdhun
      Bronze
      Dabei seit: 10.03.2008 Beiträge: 93

      data_directory = 'D:\\PT-data\\data\' # use data in another directory
      # (change requires restart)
      Also Doppel-Backslashes sind definitiv falsch, die müssen einfach sein.

      Bei mir steht:
      code:
      #data_directory = 'ConfigDir'		# use data in another directory 					# (change requires restart)


      Und ConfigDir wird ja als Startparameter dem Dienst durch den Eintrag in der Windows-Registry übergeben.
    • Flixius
      Flixius
      Bronze
      Dabei seit: 26.08.2007 Beiträge: 157
      Ach das ist mit ConfigDir gemeint. Funktioniert leider noch immer nicht. Wie sieht dein Property für hbafile aus?

      so?
      hba_file = 'ConfigDir\pg_hba.conf'

      ConfigDir endet bei mir, wie in dem Tut oben mit einem Slash.
    • netsrak
      netsrak
      Gold
      Dabei seit: 11.03.2006 Beiträge: 37.193
      Ich habe das Data Verzeichnis auch mal verschoben (postgresql 8.2.x). Hat problemlos geklappt. Die Einträge in postgresql.conf sehen bei mir so aus:

      #---------------------------------------------------------------------------
      # FILE LOCATIONS
      #---------------------------------------------------------------------------

      # The default values of these variables are driven from the -D command line
      # switch or PGDATA environment variable, represented here as ConfigDir.
      data_directory = 'D:/postgresql.data/data' # neues Verzeichnis, kki am 2.4.07
      #data_directory = 'ConfigDir' # use data in another directory
      # (change requires restart)
      #hba_file = 'ConfigDir/pg_hba.conf' # host-based authentication file
      # (change requires restart)
      #ident_file = 'ConfigDir/pg_ident.conf' # ident configuration file
      # (change requires restart)

      # If external_pid_file is not explicitly set, no extra PID file is written.
      #external_pid_file = '(none)' # write an extra PID file
      # (change requires restart)





      d.h. bis auf data_directory ist alles auskommentiert.
    • Flixius
      Flixius
      Bronze
      Dabei seit: 26.08.2007 Beiträge: 157
      Das liegt anscheinend daran, dass man den Ort von hba- und datafile nicht explizit angeben muss, wenn sie sich im dataDir befinden. Leider komme ich noch immer nicht weiter.

      Der Benutzer postgres hat bei mir auf beide Verzeichnisse und alle Unterverzeichnisse Vollzugriff. Der Benutzer ERSTELLER-BESITZER hat jedoch keinerlei Rechte. Wenn ich versuche sie ihm zu verleihen werden umgehend alle Häkchen beim Klick auf übernehmen entfernt.
      Ich habe selbstverständlich Rootrechte.

      Edit nach drei Stunden habe ich es Aufgegeben und Alles neu installiert nachdem ich die "alte" Datenbank exportiert habe. Man kann Postgres nämlich auch unter einer anderen Partition installieren!!! Hätte ich das nur früher gewusst. :)

      Allen anderen wünsche ich noch viel Erfolg. Hier sind ja eine Menge Tipps vereint. Ein großes Dankeschon an alle Helfer, auch wenn es mir am Ende nicht weitergeholfen hat.

      PS: Warum wird meine Signatur eigentlich nicht als Link dargestellt?
    • guruhalle
      guruhalle
      Bronze
      Dabei seit: 26.08.2008 Beiträge: 12
      Hi habe ein ähnliches problem würde meine datenbank auch gern auf einer anderen festplatte installieren , aber beim installieren vom elephant wird man leider nicht gefragt wo man es installieren möchte .
      kann mir jemand sagen welches postgre ich brauche zum installieren auf einer anderen platte ??
      Brauche dringend info meine platz schwindet
    • netsrak
      netsrak
      Gold
      Dabei seit: 11.03.2006 Beiträge: 37.193
      Einfach Postgresql 8.3.4 von http://www.postgresql.org laden und auf der gewünschten Partition installieren.

      Anschließend Elephant, PT, HM ... ohne Postgresql installieren und mit dem DB Server verbinden.