mysql Datenbank in Pokertracker importieren

    • Muhgl2
      Muhgl2
      Bronze
      Dabei seit: 24.07.2006 Beiträge: 49
      Hi Leutz...

      ich habe bis jetzt Pokeroffice ( mit mysql Datenbank benutzt) und bin jetzt auf Ace und Tracker umgestiegen. Die Frage ist nun wie ich meine bisherigen Datenbanken in Pockertracker bekomme. Habe leider im Forum keine Tipps gefunden. Neue Hände sind kein Problem und ich habe auch postgresql installiert. Nur habe ich für verschieden Limits eben mysql Datenbanken mit ca. 1,2 Mio Händen pro Limit, da wäre es schade wenn die Daten fehlen würden. Vielleicht kann mir ja jemand helfen....

      Gruß Muhgl
  • 19 Antworten
    • Crovax
      Crovax
      Black
      Dabei seit: 10.09.2006 Beiträge: 11.328
      schieb
      würd mich auch interessieren, weil postgre will bei mir irgendwie nicht funzen
    • Muhgl2
      Muhgl2
      Bronze
      Dabei seit: 24.07.2006 Beiträge: 49
      Sorry, ich muss das Thema nochmal hochholen, weil sich bis jetzt noch keine Lösung gefunden hat.
    • Temar
      Temar
      Bronze
      Dabei seit: 14.07.2006 Beiträge: 536
      Original von Muhgl2
      Sorry, ich muss das Thema nochmal hochholen, weil sich bis jetzt noch keine Lösung gefunden hat.
      Du musst die HandHistories aus der MySQL DB exportieren und in PT neu einlesen. Eine andere Möglichkeit kenne ich nicht. PT kann nicht mit MySQL DBs umgehen.

      Gruss,
      Alex
    • Fenris
      Fenris
      Black
      Dabei seit: 23.01.2005 Beiträge: 4.079
      Hm.

      Also ich musste windows neuinstallen.
      Hatte davor auch mit sql dbs für pt/pa gearbeitet.
      Ich hab auch noch die ganzen daten, aber sie liegen halt unter pogramme/postgre, also nicht in exportierter form vor.
      Es muss aber doch eine möglichkeit geben, die wieder in mein neues pokertracker einzubinden!?
      Thx für Antworten

      P.S.:Für den fall, dass das nicht gehen sollte, noch mal explizit ins manual schreiben, dass man die nur in exportierter form benutzen kann.
    • pryce99
      pryce99
      Bronze
      Dabei seit: 31.03.2006 Beiträge: 11.092
      Original von Temar
      Original von Muhgl2
      Sorry, ich muss das Thema nochmal hochholen, weil sich bis jetzt noch keine Lösung gefunden hat.
      Du musst die HandHistories aus der MySQL DB exportieren und in PT neu einlesen. Eine andere Möglichkeit kenne ich nicht. PT kann nicht mit MySQL DBs umgehen.

      Gruss,
      Alex
      Wie genau kann man denn HandHistorys mit MSQL exportieren? Kannst du dafür mal die Befehle aufschreiben bzw. ne kurze Anleitung geben?
    • Temar
      Temar
      Bronze
      Dabei seit: 14.07.2006 Beiträge: 536
      Original von pryce99
      Wie genau kann man denn HandHistorys mit MSQL exportieren? Kannst du dafür mal die Befehle aufschreiben bzw. ne kurze Anleitung geben?
      Das sollte eigentlich PO können. Wie das geht weiss ich nicht, da ich kein PO habe.

      Falls PO keine Exportfunktion anbietet, dann kannst du auch ein SQL-Dump deiner MySQL Datenbank machen und die HHs daraus extrahieren. Zumindest geht das bei PT ohne Probleme. Ich nehme mal, dass PO die HHs auch im Klartext in der DB speichert.

      Gruss,
      Alex
    • Temar
      Temar
      Bronze
      Dabei seit: 14.07.2006 Beiträge: 536
      Original von eSa.Fenris
      Also ich musste windows neuinstallen.
      Hatte davor auch mit sql dbs für pt/pa gearbeitet.
      Ich hab auch noch die ganzen daten, aber sie liegen halt unter pogramme/postgre, also nicht in exportierter form vor.
      Es muss aber doch eine möglichkeit geben, die wieder in mein neues pokertracker einzubinden!?
      Thx für Antworten
      Wenn du die gleiche Major-Version von PostgreSQL verwendest, dann kannst du die Datenbank wieder einbinden. Unter Windows XP Home ist das allerdings nicht ganz so einfach, da du die Rechte auf die Dateien und Ordner korrekt setzten muss. Da XP Home standardmässig im Dummy-Modus arbeitet, siehst du den "Sicherheit"-Reiter nicht. Prinzipiell hast du mehrere Möglichkeiten:

      1) Du konfigurierst den PostgreSQL-Windows-Service so um, dass er auf die alte Datenbank zeigt - auf den "data" Ordner um genau zu sein. Die Rechte auf dem "data" Ordner müssen so gesetzt sein, dass der "postgresql" Benutzer Vollzugriff hat.

      2) Du gibst bei der Neuinstallation von PostgreSQL deinen alten "data" Ordner an und nimmst das Häkchen bei "Init Database Cluster" raus. Dann verwendet er die alten Daten. Die Rechte müssen dabei ebenfalls wieder korrekt gesetzt sein. Unter Umständen übernimmt das aber der Installer für dich.

      3) Du stoppst die PostgreSQL Datenbank, verschiebst den INHALT des "data" Ordners an eine andere Stelle und kopierst dann die Daten aus dem "data" Ordner deines Backups in den neuen rein. Dabei sollten die Rechte korrekt vererbt werden. Falls nicht, dann musst du sie wieder per Hand setzten.

      Um das Rechteproblem kommst du also nur bei der 3. Möglichkeit rum und selbst da ist es nicht sicher, dass die Rechte korrekt vererbt werden. So lange die Rechte nicht passen, wird PostgreSQL nicht starten.

      Gruss,
      Alex
    • pryce99
      pryce99
      Bronze
      Dabei seit: 31.03.2006 Beiträge: 11.092
      also eine export funktion für HH hab ich bei PO nicht endeckt. man müsste jede manuell exportieren und dies würde "jahre" dauern ;-)

      kenne mich mit MSQL nocht nicht so gut aus. wir hatten das thema gerade in der berufsschule, jedoch nur "abfragen". wenn du kurz erklären bzw. einen link posten könntest, wie genau das mit dem exportieren über MSQL geht!?

      btw. Ich habe vorhin ein bisschen mit dem ADMIN Tool von MSQL getestet und eine Raked Hand Abfrage hinbekommen, also Grundlagen sind schonmal vorhanden :D
    • Temar
      Temar
      Bronze
      Dabei seit: 14.07.2006 Beiträge: 536
      Original von pryce99
      also eine export funktion für HH hab ich bei PO nicht endeckt. man müsste jede manuell exportieren und dies würde "jahre" dauern ;-)

      kenne mich mit MSQL nocht nicht so gut aus. wir hatten das thema gerade in der berufsschule, jedoch nur "abfragen". wenn du kurz erklären bzw. einen link posten könntest, wie genau das mit dem exportieren über MSQL geht!?

      btw. Ich habe vorhin ein bisschen mit dem ADMIN Tool von MSQL getestet und eine Raked Hand Abfrage hinbekommen, also Grundlagen sind schonmal vorhanden :D
      Bei MySQL ist ein Kommandozeilentool namens "mysqldump" dabei. Dieses Tool kannst du nehmen um SQL Dumps der Datenbank anzufertigen. Das Ergebnis ist dann eine Textdatei mit lauter "INSERT" Statements. Aus diesem Textfile kann man dann die HHs relativ einfach extrahieren - vorausgesetzt PO speichert die HHs genau wie PT auch noch einmal komplett in der DB. Mit einem kleinen PERL Skript kannst du dir das SQL File schnell umformatieren lassen und die HHs extrahieren. Bei PT habe ich das mal so gemacht - ging recht gut.

      Gruss,
      Alex
    • pryce99
      pryce99
      Bronze
      Dabei seit: 31.03.2006 Beiträge: 11.092
      big thx für die anleitung. werde es heute abend mal testen.
    • Fenris
      Fenris
      Black
      Dabei seit: 23.01.2005 Beiträge: 4.079
      Original von Temar
      Original von eSa.Fenris
      Also ich musste windows neuinstallen.
      Hatte davor auch mit sql dbs für pt/pa gearbeitet.
      Ich hab auch noch die ganzen daten, aber sie liegen halt unter pogramme/postgre, also nicht in exportierter form vor.
      Es muss aber doch eine möglichkeit geben, die wieder in mein neues pokertracker einzubinden!?
      Thx für Antworten
      Wenn du die gleiche Major-Version von PostgreSQL verwendest, dann kannst du die Datenbank wieder einbinden. Unter Windows XP Home ist das allerdings nicht ganz so einfach, da du die Rechte auf die Dateien und Ordner korrekt setzten muss. Da XP Home standardmässig im Dummy-Modus arbeitet, siehst du den "Sicherheit"-Reiter nicht. Prinzipiell hast du mehrere Möglichkeiten:

      1) Du konfigurierst den PostgreSQL-Windows-Service so um, dass er auf die alte Datenbank zeigt - auf den "data" Ordner um genau zu sein. Die Rechte auf dem "data" Ordner müssen so gesetzt sein, dass der "postgresql" Benutzer Vollzugriff hat.

      2) Du gibst bei der Neuinstallation von PostgreSQL deinen alten "data" Ordner an und nimmst das Häkchen bei "Init Database Cluster" raus. Dann verwendet er die alten Daten. Die Rechte müssen dabei ebenfalls wieder korrekt gesetzt sein. Unter Umständen übernimmt das aber der Installer für dich.

      3) Du stoppst die PostgreSQL Datenbank, verschiebst den INHALT des "data" Ordners an eine andere Stelle und kopierst dann die Daten aus dem "data" Ordner deines Backups in den neuen rein. Dabei sollten die Rechte korrekt vererbt werden. Falls nicht, dann musst du sie wieder per Hand setzten.

      Um das Rechteproblem kommst du also nur bei der 3. Möglichkeit rum und selbst da ist es nicht sicher, dass die Rechte korrekt vererbt werden. So lange die Rechte nicht passen, wird PostgreSQL nicht starten.

      Gruss,
      Alex
      Hm, also ich hab mich für "3)" entschieden, aber leider hat das mit den rechten wohl nur bei meiner einen db geklappt, bei meiner wichtigeren leider nicht. Kannst du mir erklären, wie ich die rechte richtig setze?
      big thx!
      Fenris
    • Temar
      Temar
      Bronze
      Dabei seit: 14.07.2006 Beiträge: 536
      Original von eSa.Fenris
      Hm, also ich hab mich für "3)" entschieden, aber leider hat das mit den rechten wohl nur bei meiner einen db geklappt, bei meiner wichtigeren leider nicht.
      Hmm, das macht irgendwie keinen Sinn. Entweder die Rechte passen global - dann startet PostgreSQL - oder aber sie passen nicht - dann startet PostgreSQL auch nicht. Das PostgreSQL auf eine DB zugreifen kann, auf die andere aber nicht, macht irgendwie keinen Sinn. Was bekommst du denn für eine Fehlermeldung, wenn du auf die zweite DB zugreifen willst?


      Kannst du mir erklären, wie ich die rechte richtig setze?
      Das ist eine längere Prozedur, weil du erst einmal ein Zusatztool installieren musst. Kann ich dir erklären, aber schau erst mal nach der Fehlermeldung. Kann gut sein, dass du ein ganz anderes Problem hast.

      Gruss,
      Alex
    • Fenris
      Fenris
      Black
      Dabei seit: 23.01.2005 Beiträge: 4.079
      Thx schon mal für die schnelle Antwort.
      Naja, also PT zeigt mir halt eine meiner alten DBs an (wenn ich mich nicht total irre), die andere aber nicht.
      Und so wie ich das sehe, kann man nicht manuell über PT nach SQL DBs browsen (ausnahme natürlich diejednigen, die man exportiert hat, was ja nun bei mir nicht der fall ist..).

      Jedoch macht er einen error, wenn ich die eine alte compressen will, daher wird mit ihr wohl auch etwas nicht i.o. sein.
      Fehlermeldung beim compressen
      " 7 - SQLSTATE = S1000
      Error: xlog flush request 8/44CB9038 is not satisfied --- flushed only to 0/34FFEE("

      Es könnte auch theoretisch sein, dass meine DB beschädigt worden ist, weil meine festplatte von meinem netzteil einen schlag Abbekommen hat, jedoch funktionieren, so weit ich das bis jetzt sehen kann, alle anderen daten ohne probleme.
      Gibts vielleicht auch eine repairfunktion für SQL DBs?

      Fenris
    • Temar
      Temar
      Bronze
      Dabei seit: 14.07.2006 Beiträge: 536
      Original von eSa.Fenris
      Und so wie ich das sehe, kann man nicht manuell über PT nach SQL DBs browsen
      Doch kannst du. Du gehst auf "File->Maintain Database Names" und fügst dort eine DB hinzu. Dann klickst du in die weisse Spalte rechts neben dem Namen und wählst "Select Existing PostgreSQL Database".



      Error: xlog flush request 8/44CB9038 is not satisfied --- flushed only to 0/34FFEE
      Ganz übel. Das heisst in der Regel, dass beim schreiben der DB auf die Platte was schiefgegangen ist und deshalb die Relation nicht vollständig vorhanden ist. Normalerweise bedeuted das: Backup einspielen.


      Es könnte auch theoretisch sein, dass meine DB beschädigt worden ist, weil meine festplatte von meinem netzteil einen schlag Abbekommen hat.
      Das macht Sinn und passt zu der Fehlermeldung. Die DB ist geschrottet - du musst sie auf jedenfall neu initialisieren. Wenn die Relation mit den HandHistories noch intakt ist, dann kannst du die HandHistories vielleicht noch exportieren. Arbeiten würde ich mit der Datenbank auf jedenfall nicht mehr.


      Gibts vielleicht auch eine repairfunktion für SQL DBs?
      Jein - für diesen Fehler nicht (zumindest so weit ich weiss). Hier fehlen einfach Teile der Relation und die kannst du nicht aus dem Nichts wiederherstellen. Wo nichts ist, kann auch nix repariert werden.

      Versuch auf jedenfall mal die DB per Hand in PT einzubinden und die HandHistories zu exportieren. Wenn das nicht klappen sollte, dann hast du zu 90% Pech gehabt und musst wieder bei Null starten.

      Gruss,
      Alex
    • Fenris
      Fenris
      Black
      Dabei seit: 23.01.2005 Beiträge: 4.079
      Original von Temar
      Original von eSa.Fenris
      Und so wie ich das sehe, kann man nicht manuell über PT nach SQL DBs browsen
      Doch kannst du. Du gehst auf "File->Maintain Database Names" und fügst dort eine DB hinzu. Dann klickst du in die weisse Spalte rechts neben dem Namen und wählst "Select Existing PostgreSQL Database".
      Ja, das ist schon klar, aber hier kann man ja eben nicht browsen, sonder nur eine der dbs auswählen, die er einem anzeigt, aber hier wird eben nur eine meiner alten dbs angezeigt.

      Original von Temar
      Original von eSa.Fenris
      Gibts vielleicht auch eine repairfunktion für SQL DBs?
      Jein - für diesen Fehler nicht (zumindest so weit ich weiss). Hier fehlen einfach Teile der Relation und die kannst du nicht aus dem Nichts wiederherstellen. Wo nichts ist, kann auch nix repariert werden.

      Versuch auf jedenfall mal die DB per Hand in PT einzubinden und die HandHistories zu exportieren. Wenn das nicht klappen sollte, dann hast du zu 90% Pech gehabt und musst wieder bei Null starten.

      Gruss,
      Alex
      Aber wenn ein teil der db beschädigt ist, dann müsste man die doch so reparieren können, dass er alle noch funktionierenden daten übernimmt und die kaputten eben rausschmeißt, er soll die ja nicht wieder herstellen.... kann doch nicht sein, dass es so eine funktion nicht gibt !?

      Tjo, also per hand einbinden geht nicht per main database, gibts da noch einen "richtigen" browse?

      Fenris
    • Temar
      Temar
      Bronze
      Dabei seit: 14.07.2006 Beiträge: 536
      Original von eSa.Fenris
      Original von Temar
      Doch kannst du. Du gehst auf "File->Maintain Database Names" und fügst dort eine DB hinzu. Dann klickst du in die weisse Spalte rechts neben dem Namen und wählst "Select Existing PostgreSQL Database".
      Ja, das ist schon klar, aber hier kann man ja eben nicht browsen, sonder nur eine der dbs auswählen, die er einem anzeigt, aber hier wird eben nur eine meiner alten dbs angezeigt.
      Das ist ein richtiger Browser. Dieses Auswahlmenü zeigt alle Datenbanken an, die erkannt wurden. Alles was du da drin nicht siehst, wirst du vermutlich auch nicht in pgAdmin sehen. Es sei denn PT überprüft noch die DBs bevor er sie anzeigt, kann es aber nicht, weil die DB geschrottet ist. Bei einer intakten Datenbank siehst du in diesem Auswahlfeld alle PT-Datenbanken.


      Original von eSa.Fenris
      Original von Temar
      Jein - für diesen Fehler nicht (zumindest so weit ich weiss). Hier fehlen einfach Teile der Relation und die kannst du nicht aus dem Nichts wiederherstellen. Wo nichts ist, kann auch nix repariert werden.
      Aber wenn ein teil der db beschädigt ist, dann müsste man die doch so reparieren können, dass er alle noch funktionierenden daten übernimmt und die kaputten eben rausschmeißt, er soll die ja nicht wieder herstellen.... kann doch nicht sein, dass es so eine funktion nicht gibt !?
      Das stellst du dir ein wenig zu einfach vor. In einer Datenbank werden die Daten in grossen Blöcken abgespeichert - innerhalb dieser Blöcke liegen die eigentlichen Daten (vereinfacht gesagt) kreuz und quer durcheinander. Um die Daten für jeden Eintrag zu finden werden enorme Verwaltungsstrukturen benötigt, die die einzelnen Daten in den grossen Blöcken den Einträgen zuordnen. Sind diese Header beschädigt, dann gibt es keine Möglichkeit mehr zu sagen, welche Daten zu welchem Eintrag gehören.

      Es mag sein, dass jemand ein Tool geschrieben hat, welches versucht die ßberreste einer DB zu analysieren und zu backupen. Mir ist auf jedenfall keines bekannt. Du kannst versuchen das ganze mit "pg_resetxlog" zumindest soweit zu bringen, dass wieder was angezeigt wird. Ob du dann auf die Daten zugreifen kannst ist fraglich - aber vielleicht kannst du noch ein wenig retten.


      Original von eSa.Fenris
      Tjo, also per hand einbinden geht nicht per main database, gibts da noch einen "richtigen" browse?
      Mit pgAdmin kannst du "richtig" browsen. Vielleicht erkennt der mehr als PT.

      Um genauere Aussagen machen zu können, was genau bei dir geschrottet ist, müsstest du auch mal das PostgreSQL Logfile posten. Dieses liegt im Ordner "logs" innerhalb des "data" Datenbank Ordners.

      Gruss,
      Alex
    • Fenris
      Fenris
      Black
      Dabei seit: 23.01.2005 Beiträge: 4.079
      Also im data ordner gibts den ordner pg_log und pg_xlog und in beiden gibts es mehrere dateien.
      pgAdmin hat mich auch nicht weiter gebracht.
    • Temar
      Temar
      Bronze
      Dabei seit: 14.07.2006 Beiträge: 536
      Original von eSa.Fenris
      Also im data ordner gibts den ordner pg_log und pg_xlog und in beiden gibts es mehrere dateien.
      pgAdmin hat mich auch nicht weiter gebracht.
      Da ich PostgreSQL nur unter UNIX verwende bin ich mit der Windows Verzeichnisstruktur nicht so bewandert. "pg_xlog" dürften allerdings die Transaktionslogs sein - das sind datenbankinterne Logs. Demnach sollten in "pg_log" die eigentlichen Logfiles liegen. Such einfach nach einer Datei "postgresql.log".

      Gruss,
      Alex
    • GiGi34
      GiGi34
      Bronze
      Dabei seit: 19.08.2006 Beiträge: 98
      HI!

      Bzgl: PO Hände in PT importieren

      Hab da auch nach einer Möglickeit gesucht und für mich ne Lösung gefunden.
      Diese Variante, ist ein etwas unkomfortabler Fußweg, aber nen versierter Script Schreiber kann ja vielleicht noch was draus machen.

      Zunächst unter PO auf Overview das zu exportierende Limit anklicken.
      Unten auf der Seite in "Game Details" erscheinen dann ja die einzelnen Hände. Dort kann man einfach mehrere ID's markieren und öfnnen mit "Show Hand History" (am besten immer nur 500 bis 1000 Hände auf einmal!!!). Dann öffnet sich ein Textfenster mit den Händen. Den Text komplett markieren, kopieren und in einen Editor (am besten Word 2003) wieder einfügen.

      Dieses Textfile kann PT aber SO leider nicht einlesen.
      PO schreibt nämlich im txt.-File "Texas Holdem" ohne ein Apostrof, PT mit einem... "Texas Hold'em". Das kann man einfach über die "Suchen und Ersetzen" Funktion von Word korrigieren, sonst erkennt PT die Hand nicht als Hold'em Spiel.

      Jetzt hat man noch das kleine Problem, daß PT den Beginn des nächsten Spiels im .txt-File durch die Zeile:
      "Game #54XXXXXXXX starts."
      erkennt. Ein Blick in die von PT selbst erzeugten .txt Files beim exportierten zeigt, das die Zeile auch
      "Game #<do not remove this line!> starts."
      lauten darf... die Game ID selbst wird woanders erkannt.

      Also hab ich nochmals die "Suchen und Ersetzen" Funktion von Word bemüht. Diesmal mit folgenden Einstellungen:
      Suchen nach: "***** Hand"
      Ersetzen durch: "Game #<do not remove this line!> starts.^p**** Hand"
      Durch das ^p kommt ein Zeilenumbruch rein, der sein muß.

      So, jetzt das ganze abspeichern (in reinem Textformat) und dann in PT über die Hand Import Funktion wieder einlesen.

      Sowohl beim ßffnen des PO Textfenster, als auch beim Einlesen in PT ist es von Vorteil, wenn man immer nur ca. 500-1.000 Hände in ein File nimmt.

      Für ne Millionen Hände ist das vielleicht nix, aber meine eigenen 20k gingen an einem Abend in die PostgreSQL von PT :D

      Viel Spass beim nachmachen,

      Tobias