DB aus altem postgres-System in neues kopieren

    • valuDe
      valuDe
      Black
      Dabei seit: 15.11.2007 Beiträge: 1.672
      Hey Leute,

      Hab schon mit der SuFu rumgespielt und in den HM-Supportforen gestöbert aber nichts gefunden und hab keine Lust jetzt noch ewig rumzusuchen, deswegen frag ich jetzt hier:

      Ich hatte postgres v.8.3 und hab diese deinstalliert (da ich irgendwie HM nicht mehr starten konnte bzw. den Dienst nicht) und habe dann die neue Version, v.8.4 neu installiert.

      Nun ist aber bei der 8.4er wie erwartet meine alte DB vom Holdem Manager nicht drin. Jetzt hab ich aber im pgAdmin gesehen, dass postgres 8.3 noch drauf ist und ich dort auch meine alte DB aus Holdem Manager dort sehen kann.

      Allerdings kann ich mit HM bei der automatischen Verbindung zu postgres mich nur zum 8.4er verbinden. Gibt es nun irgendne Möglichkeit, meine DB aus dem postgres 8.3 in das postgres 8.4 System zu kopieren, damit ich mit HM darauf zugreifen kann? (Im Moment kann ich mit HM nur auf 8.4 und somit nicht auf meine DBs aus 8.3-Zeiten zugreifen).
  • 8 Antworten
    • netsrak
      netsrak
      Gold
      Dabei seit: 11.03.2006 Beiträge: 37.180
      Du kannst bei der Neuinstallation von Postgresql ein vorhandenes Data Verzeichnis wieder einbinden (= der Cluster): http://faq.holdemmanager.com/questions/71/Reinstall+PostgreSQL+Preserving+Old+Database

      Ob das aber auch für Postgresql 8.4 mit einbinden eines 8.3 data Verzeichnisses geht kann ich dir nicht sagen.

      Wenn dir die Daten wirklich wichtig sind könnte evt. folgende Vorgehensweise Erfolg bringen:
      - ich gehe davon aus, dass Postgresql 8.4 läuft und HM mit einer neuen Datenbank funktioniert?
      - Neuinstallation von Postgresql 8.3 auf einem anderen Port, z.B. 5433. Dabei wie im obigen Link beschrieben die vorhandenen Datenbanken einbinden.
      - wenn das klappt solltst du 2 Postgresql Server parallel laufen haben, einen auf Port 5432 mit dem 8.4 Datenbank Server und einen auf 5433 mit der alten Datenbank unter 8.3
      - Jetzt verbindest du dich per pgadmin mit dem 8.3 Server auf 5433 und machst ein Backup der Datenbank (Coding der Datenbank merken, vermutlich SQL_ASCII)
      - Zur Sicherheit solltest du dich im Holdemmanager auch nochmal mit der alten Datenbank verbinden und einen Export aller Hände und Notes machen.
      - Im pgadmin mit dem 8.4 Datenbank Server verbinden und eine neue Datenbank mit dem gleichen Coding wie die alte anlegen (bei SQL_ASCII musst du auf template0 umstellen).
      - Backup wiederherstellen
      - HM auf diese neue Datenbank umstellen, falls das nicht klappt bleibt dir noch der Import der Hände in die aktuelle 8.4 Datenbank.
      - Postgresql Server 8.3 deinstallieren.
    • valuDe
      valuDe
      Black
      Dabei seit: 15.11.2007 Beiträge: 1.672
      Hey,

      Erstmal schonmal danke für den Post... habs so versucht, wie du gesagt hast, aber nun habe ich das Problem, dass ich mich nicht zum 8.3-Server verbinden kann? Habe somit keine Möglichkeit, auf die alte Datenbank auf 8.3 unter dem anderen Port zuzugreifen.

      Dabei wird folgender Fehler angezeigt:

      Der Server antwortet nicht
      Der Server akzeptiert keine Verbindungen: Die Verbindungslibrary berichtet
      could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port 5433?


      Ich habe nun bereits folgendes gemacht bzw. ausprobiert:

      1. In meiner Windows-Firewall unter "Ausnahmen" unter dem Namen "Postgres 8.3" den Port 5433 hinzugefügt (Ist da der Name egal? Oder muss das exakt der Name der Programm-exe sein oder sowas?)

      2. Habe in meinem Router unter "NAT & Portregeln / Regeldefinition" ne neue Portregel hinzugefügt für "Umgeleitete Ports - Öffentlich: 5433" und "Umgeleitete Ports - Private Client: 5433" mit "Protokoll: TCP"
      Ist das überhaupt richtig? War die einzige Kategorie in meinem Router, wo ich überhaupt irgendwas zu Ports gefunden habe.. aber ka ob ich da ueberhaupt richtig war?

      3. Habe in der postgresql.conf unter "port" 5433 hinzugefügt.

      Hat aber alles nichts gebracht.. ich kann nun auf meinen 8.4-Server mit dem Port 5432 zugreifen, aber nicht! auf meinen 8.3-Server mit dem Port 5433.

      Sry, hab recht wenig Ahnung von der Materie :(
    • netsrak
      netsrak
      Gold
      Dabei seit: 11.03.2006 Beiträge: 37.180
      Hast du denn jetzt 2 Postgresql Dienste parallel laufen?

      1. der Name ist nicht egal. Es muss der Name der exe sein.

      2. Keine Ahnung: falls du nur lokal arbeitest sollten die Router Einstellungen eigentlich egal sein.

      3. Das verstehe ich nicht. Die 8.3 Installation müsste für Port 5433 bei der Installation richtig konfiguriert sein. Die 8.4 darfst du nicht anfassen. Beide haben getrennte .conf Dateien.
    • valuDe
      valuDe
      Black
      Dabei seit: 15.11.2007 Beiträge: 1.672
      Also:

      1. Was denn dann für ne exe? Also wo finde ich überhaupt die richtige exe-Datei zum 8.3-Dienst?
      Ich musste übrigens noch nie, weder für 8.3 damals (oder auch gestern bei der Neuinstallation.. da habe ich aber für den 8.3-Dienst auch den Port 5432 angegeben) irgendwas am Router/Firewall/Virusprogramm einstellen.. und in der Firewall ist auch keine Ausnahme für den Port 5432 angegeben, das lief bisher alles einfach so.

      3. Ja, beide Dienste sind installiert und werden auch im pgAdmin angezeigt. Ich habe nach der Anleitung den 8.3-Dienst mit dem Port 5433 installiert (wird auch unter Eigenschaften so angezeigt). Das einzige Problem ist, dass andauernd die obige Fehlermeldung kommt, wenn ich mich mit dem 8.3-Dienst verbinden will. Da der 8.4-Dienst mit dem 5432-Port einwandfrei funktioniert (und gestern nach Neuinstallation des 8.3-Dienstes mit 5432-Port dieser ebenfalls), muss es auf jeden Fall am Port liegen. Das mit der conf-Datei hab ich aus der Hilfe:

      Wenn diese Meldung auftaucht, sollte geprüft werden ob der PostgreSQL-Server tatächlich auf dem angegebenen Port läuft. Ist Netzwerk-Connectivity von der Client-Maschine zur Servermaschine gegeben? Sind Netzwerk/VPN/SSH-Tunnel korrekt konfiguriert? Aus Sicherheitsgründen reagiert PostgreSQL anfänglich nicht auf allen verfügbaren IP-Adressen der Servermaschine. Um den Server über das Netzwerk ansprechen zu können, müssen die Interfaces erst aktiviert werden. Für PostgreSQL-Server ab Version 8.0 wird dies durch den "listen_addresses"-Parameter in the postgresql.conf-Datei gesteuert. Hier wird die Liste aller zu bedienenden IP-Adressen eingetragen, oder einfach '*' um alle verfügbaren Interfaces zu bedienen. Für ältere Versionen (Version 7.3 oder 7.4), ist der Parameter "tcpip_socket" auf 'true' zu setzen.

      Ich habe da natürlich die conf-Datei aus dem 8.3-Verzeichnis genommen.. habe halt bisschen rumprobiert und mal bei "listen_address" n "*" eingegeben und bei "port" 5433 statt 5432 (was vorher drinstand und ja eig. falsch ist oder? Ist auch ganz sicher das richtige Verzeichnis). Naja bleibt aber immer die obige Fehlermeldung.
    • netsrak
      netsrak
      Gold
      Dabei seit: 11.03.2006 Beiträge: 37.180
      Kannst du dich denn im pgadmin mit beiden Diensten=Datenbankservern verbinden oder kommt da auch schon die Fehlermeldung?

      Die .exe Dateien befinden sich im bin Unterverzeichnis, müsste pg_ctl.exe und noch irgendwas sein. http://faq.holdemmanager.com/questions/339/Software+Security+Problems+%28Firewall%29
      Aber wenn du das vorher nicht gebraucht hast glaube ich auch nicht dass es daran liegt.
    • valuDe
      valuDe
      Black
      Dabei seit: 15.11.2007 Beiträge: 1.672
      Ja die Fehlermeldung kommt, wenn ich mich im pgAdmin mit dem 8.3-Server verbinden will.

      Wenn ich 8.3 mit nem 5432-Port installiere, kann ich mich mit dem pgAdmin damit verbinden, aber nicht mit HM (Dienst kann nicht gestartet werden wird mir dort immer angezeigt).
    • netsrak
      netsrak
      Gold
      Dabei seit: 11.03.2006 Beiträge: 37.180
      Das kann aber nur daran liegen dass du HM nicht als Administrator startest (holdemmanager.exe, hmhud.exe und dbcontrolpanel.exe).

      Wenn du 8.3 jetzt laufen hast kannst du ja auch erstmal Backup etc. machen.
    • LordPC
      LordPC
      Bronze
      Dabei seit: 24.06.2007 Beiträge: 677
      also häng grad am selben problem, so vorgehen:

      wie schon beschrieben backups machen und wiederherstellen

      wenn der server nicht antwortet sind die dienste deaktiviert

      unter systemsteuerung verwaltung dienste die postgres dienste starten