Guide: Postgres DB auf externen Speichermedium (Bsp. USB Stick, ext. HDD)

    • Prototype
      Prototype
      Bronze
      Dabei seit: 17.09.2006 Beiträge: 1.407
      Hallo allerseits!

      Dies ist ein Guide mit dem man seine PostgresDB auf ein externes Medium speichern kann.
      Somit kann man, mit 2 Installationen von Pokertracker auf 2 versch. Rechnern, seine DB immer mit dabei haben - beispielsweise als USB stick, wenn dieser ausreicht.
      Ich verwende die DB beispielsweise am Notebook und am PC und habe sie auf einer ext. HDD.

      Diese Anleitung wurde für Postgres 8.0 und Windows XP Service Pack 1 geschrieben - gut möglich dass es auch mit anderen Versionen funktioniert

      1 - Datenbank sichern

      Zu allererst müsst ihr die DB in PT sichern. Dazu geht ihr in PokerTracker auf Utilities -> PostgresSQL Database Function -> Backup
      Dieses Backup solltet ihr gleich auf eure ext. HDD spielen.

      2 - externe Datenbank anlegen

      Nun muss eine externe Datenbank auf dem Medium auf dem sie bleiben soll angelegt werden. Dazu sind folgende Schritte notwendig:

      a - neuen Windows Benutzer anlegen

      Öffnet mit Start -> Ausführen -> cmd, (Enter) die Kommandline.
      tippt:
      code:
      net user psql_ext password /add
      

      und enter.

      Danach muss der User aus der Gruppe Benutzer genommen werden
      code:
      net localgroup Benutzer psql_ext /delete
      

      enter

      b - Datenkbank anlegen

      Um eine Datenbank anzulegen, startet ihr mit euren so eben erstellten Benutzer eine Commandline. Dies ist nötig, da sich postgres aus sicherheitsgründen nur von unauthorisierten Benutzern ausführen lässt.
      Ihr tippt in der noch offenen Commandline von vorhin ein:

      code:
      runas /user:psql_ext cmd
      

      enter

      Danach öffnet sich ein neues Fenster in dem ihr nun weiterarbeitet. Wenn ihr nach einem Passwort gefragt werdet, gebt ihr das oben genannte Passwort, in dem Fall "password", an.
      Das vorherige Commandlinefenster könnt ihr nun schließen.

      Im neuen Fenster tippt ihr nun ein:

      code:
      c:\programme\PostgreSQL\8.0\bin\initdb h:\ExternePokerDB
      


      Nun wird eine Datenbank auf dem von euch gewählten Verzeichnis angelegt. Es ist möglich dass eure Postgres installation in einem anderen Ordner ist, das müst ihr bitte selbst herausfinden. Auch der Zielordner (auf eurem externen Speicherplatz - zB. USB Stick) kann unterschiedlich sein, und einen anderen laufwerksbuchstaben haben. Dazu seht bitte im Arbeitsplatz nach, welchen Laufwerksbuchstaben euer alternativer Speicherort hat.

      c - Datenbank starten

      Da bereits ein Postgres service im hintergrund läuft, könnt ihr (wenn ihr postgres nur für PT braucht) den beenden. Dazu öffnet ihr, wie oben, eine neue Commandline und gebt folgendes ein:

      code:
      net stop pgsql-8.0
      


      nun wechselt ihr in die commandline die ihr mit "runas /user:psql_ext cmd" geöffnet habt. hier tippt ihr ein:

      code:
      c:\programme\PostgreSQL\8.0\bin\postmaster -D h:\ExternePokerDB
      


      Nun solltet ihr sowas bekommen:

      code:
      LOG:  checkpoint record is at 0/AB6CC0
      LOG:  redo record is at 0/AB6CC0; undo record is at 0/0; shutdown TRUE
      LOG:  next transaction ID: 544; next OID: 17230
      LOG:  database system is ready
      


      Solange dieses Fenster geöffnet ist, läuft Postgres mit eurer externen DB. Wenn ihr das Fenster schließt wird postgres autom. sauber heruntergefahren.

      d - DB in PT verwenden
      Um diese DB in PT zu verwenden müsst ihr PT noch konfigurieren. Zunächst solltet ihr unter "Utilities" -> "PostgreSQL Settings..." einen neuen Eintrag mit dem psql_ext user und dem password anlegen. Danach könnt ihr unter "Maintain Poker Tracker Database Names" die neue DB auswählen die ihr noch händisch anlegen müsst. Dazu bitte den Guide von ps.de ansehen! Unter "Utilities" -> "PostgreSQL Database Function" könnt ihr euer backup von vorhin nun "Restore"n.

      edit: Hier würde ich vorher die alte DB rausnehmen!


      - Postgres als Service starten

      um die postgres db nicht immer von hand starten zu müssen, empfehle ich euch ein service anzulegen.
      Dazu geb ihr in der Commandline folgendes ein:

      code:
      sc create psql_ext_service binPath= "C:\Programme\PostgreSQL\8.0\bin\pg_ctl.exe runservice -N "pgsql-8.0" -D "h:\ExternePokerDB"" DisplayName= "Externer PSQL Dienst" obj= ".\psql_ext" password= password
      


      Nun könnt ihr PT bequem mit Batch datei aufrufen.

      code:
      C:\Programme\Poker Tracker V2\ptrack2.exe
      net stop pqsql-8.0
      net start psql_ext_service
      


      Solltet ihr auf das alte pgsql-8.0 service nicht angewiesen sein, könnt ihr es auch einfach auf start= demand stellen und euer psql_ext_service auf start= boot

      Hoffe ihr konntet damit was anfangen!
      Viel Spaß beim probieren & LG
  • 9 Antworten
    • josef123
      josef123
      Bronze
      Dabei seit: 12.08.2006 Beiträge: 2.146
      Würd mich mal interessieren wie die Perfomance mit so einem USB-Stick ist.
      Müsste ja relativ schnell sein.
      Und wie siehts mit Hitzeentwicklung bei intensiver Beanspruchung?
    • Kampfschildkroete
      Kampfschildkroete
      Bronze
      Dabei seit: 05.06.2006 Beiträge: 1.833
      Original von josef123
      Würd mich mal interessieren wie die Perfomance mit so einem USB-Stick ist.
      Müsste ja relativ schnell sein.
      Und wie siehts mit Hitzeentwicklung bei intensiver Beanspruchung?
      Da ein USB Stick nicht mehr wie 2,5W verbrauchen darf, sollte die Hitzeentwicklung nicht allzugroß sein.
    • Prototype
      Prototype
      Bronze
      Dabei seit: 17.09.2006 Beiträge: 1.407
      Habs auf der ext. HDD laufen. Die Beanspruchung hält sich in Grenzen und übermäßiger Anstieg der Raumtemperatur konnte auch nicht verzeichnet werden

      edit: @ performance: wieso müsste ein usb stick schneller sein als die HDD?? ansonsten bin ich zufrieden mit der performance. merke da quasi nix davon
    • Apfelbuch
      Apfelbuch
      Bronze
      Dabei seit: 21.05.2007 Beiträge: 448
      Absolut falsch, dass USB-Sticks genrell schneller sind als Festplatten.

      USB-Sticks haben langsamere Lese- und Schreibraten als Festplatten, aber schnellere Zugriffszeiten

      Würde einmal behaupten auch für eine Datenbank könnte sich das positiv auswirken. Naja hab einen extra PostgreSQL-Server auf meinem Heimserver.
    • phonocar
      phonocar
      Bronze
      Dabei seit: 20.08.2006 Beiträge: 827
      Hi,

      könntest du dass noch etwas genauer erklären. Ab dem Punkt wo steht "ins Guide gucken"...

      Bei mir hat danach nichts mehr funktioniert. Habe es nach langem hin und her jetzt erstmal wieder so hinbekommen wie es vorher mal war.

      Und wie ist das mit dem Port bei "Utilities" -> "PostgreSQL Settings..." ? den gleichen Port kann man ja nicht nehmen. Ist es egal welchen ich nehme oder muss ich den alten Eintrag löschen?


      Gruß phonocar
    • Prototype
      Prototype
      Bronze
      Dabei seit: 17.09.2006 Beiträge: 1.407
      Original von phonocar
      Hi,

      könntest du dass noch etwas genauer erklären. Ab dem Punkt wo steht "ins Guide gucken"...

      Bei mir hat danach nichts mehr funktioniert. Habe es nach langem hin und her jetzt erstmal wieder so hinbekommen wie es vorher mal war.

      Und wie ist das mit dem Port bei "Utilities" -> "PostgreSQL Settings..." ? den gleichen Port kann man ja nicht nehmen. Ist es egal welchen ich nehme oder muss ich den alten Eintrag löschen?


      Gruß phonocar
      Also wenn die externe PostgresDB mal läuft dann solltest du die alte vorher beendet haben (siehe: net stop ...)
      Danach wirst du, wenn du PT startest eine Fehlermeldung bekommen dass die DB nicht vorhanden ist. Du löscht dann den alten DB eintrag aus PT raus und ersetzt ihn mit dem neuen. Die neue DB kann dann auf gleichem Port laufen, da die alte ja nicht mehr läuft.

      Hier Ist der Guide wie man mit PT und Datenbanken umgeht.

      hoffe dir geholfen zu haben, lg
    • Sjard
      Sjard
      Bronze
      Dabei seit: 09.07.2005 Beiträge: 476
      Ich habe das Problem, dass ich wenn sich das DOS Fenster öffnet und ich das passwort eingeben soll, ich nichts schreiben kann. ich kann dann nur noch enter drücken und ein backup wurde nicht erstellt.
      Ziemlich blöd...
    • Prototype
      Prototype
      Bronze
      Dabei seit: 17.09.2006 Beiträge: 1.407
      Original von Sjard
      Ich habe das Problem, dass ich wenn sich das DOS Fenster öffnet und ich das passwort eingeben soll, ich nichts schreiben kann. ich kann dann nur noch enter drücken und ein backup wurde nicht erstellt.
      Ziemlich blöd...
      du hast ein postgres passwort, welches du wahrscheinlich auch in Pokertracker eingegeben hast (unter postgressql settings oder so).

      Dieses Passwort musst du dann im DOS Fenster eingeben und dann enter drücken. Aus Sicherheitsgründen siehst du nicht was du getippt hast, du musst es also "blind" eingeben. Danach startet das Backup. Bei mir hat es mit 200k Händen ~10 Minuten gedauert (5+-)

      LG
    • Sjard
      Sjard
      Bronze
      Dabei seit: 09.07.2005 Beiträge: 476
      Meine Güte warum fühl ich mich manchmal so zurückgeblieben? =)

      Vielen dank und schönen Gruß


      Sjard