Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

MySQL Transaktionsprotokolle

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von gurbelunder, 11 Juni 2014.

  1. gurbelunder

    gurbelunder Datenbank-Guru

    Moin Leute,

    heute hab ich mal wieder nach langem eine Frage: Es muss doch by MySQL eine Art Transaktionsprotokoll geben, mit welchem ich einen Datensatz in einer Tabelle zurücksetzen kann? Wie kann ich das anstellen bei MySQL?

    Achso, was helfen könnte: 5.0.72-enterprise-log MySQL Enterprise Server (Commercial)

    Danke euch und Grüße,
    David
     
    Zuletzt bearbeitet: 11 Juni 2014
  2. akretschmer

    akretschmer Datenbank-Guru

    Was genau willst Du machen, Point-In-Time - Recovery?
     
    gurbelunder gefällt das.
  3. gurbelunder

    gurbelunder Datenbank-Guru

    Eigentlich brauche ich nur 5 Datensätze aus einer Tabelle von heute Morgen. Also schon PIT. Halt nur nicht komplett.
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Ich denk mal eher schlecht.

    Zum einen muß PIT vorher eingerichtet sein, zum anderen geht das nicht für eine Tabelle separat.

    Wenn man sowas will (oh, ich hab vor 2 Stunden in Tabelle X leider 10 Millionen Rows gelöscht, wo bekommen wir DIE wieder her? ) sollte man sich VORHER ein Setup ausdenken, was das ermöglicht. Das können Logtabellen sein, die Änderungen protokollieren, oder eine zeitversetzte Replikation. Ich weiß z.B., daß Zalando in mehreren Stufen zeitversetzte Replikation macht.

    Die InnoDB-Logfiles kannst Du für das, was Du willst, jedenfalls vergessen: "The ib_logfile* files do not contain queries, but rather 512-byte aligned instructions on how to re-apply changes made by queries" (Stackoverflow)
     
    gurbelunder gefällt das.
  5. gurbelunder

    gurbelunder Datenbank-Guru

    OK danke dir. Damit habe ich schon fast gerechnet. Das dümmste ist halt, dass die Anwendung, die die Änderungen in die Tabelle eingetragen hat, natürlich schön ein commit nach jeder Anweisung durchführt. Ist also auch nichts mit rollback...
     
  6. ukulele

    ukulele Datenbank-Guru

    Wenn es tatsächlich nur 5 Zeilen waren könnte man vieleicht mit einem dieser Tools zum lesen der binären Transaction Log irgendwie manuell raus suchen, versucht habe ich sowas aber noch nie. Generell würde ich auch sagen, doofe Idee...

    http://dev.mysql.com/doc/refman/5.0/en/mysqlbinlog.html
     
    gurbelunder gefällt das.
  7. gurbelunder

    gurbelunder Datenbank-Guru

    Interessanter Ansatz. In meinem Fall wurden nur leider keine binlogs geschrieben.

    Gelöst habe ich es an sich auch, allerdings auf anderem Wege: ich habe einfach aus einem Systembackup die Datendateien der Datenbank zum Zeitpunkt X wiederhergestellt. Hat auch super funktioniert.Ist halt nur schlecht, wenn die entsprechende Anwendung MySQl gleich mitbringt und leider auch nichts anderes kann. Ich muss mir hier mal eine Backupstrategie überlegen.

    Danke euch und Grüße,
    David
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden