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

backup teilweise wieder einspielen

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von giabbatino, 4 November 2013.

  1. giabbatino

    giabbatino Neuer Benutzer

    Hallo,

    ich habe mittels phpmyadmin ein Backup aller Datenbanken gemacht.
    Jetzt möchte ich nicht alle, sondern nur einzelne Datenbanken wieder herstellen.?

    Kann mir bitte jemand sagen ob / wie das geht?

    Vieln Dank schon mal für die Hilfe

    Gruss

    Alex
     
  2. akretschmer

    akretschmer Datenbank-Guru

    War das Deine Frage, oder kommt die noch?


    Du nimmst den Editor Deines geringsten Mißtrauens und kopierst damit die gewünschte DB aus dem ganzen Dump-Klumpen raus.

    Mal so als Ansatz. Die Fähigkeiten wie z.B. pg_restore, wo man im Detail angeben kann, was man wiederherstellen will, bietet MySQL IIRC nicht.
     
  3. giabbatino

    giabbatino Neuer Benutzer

    uuups ein Fragezeichen zu viel...

    Aber danke für die Antwort
     
  4. gurbelunder

    gurbelunder Datenbank-Guru

    Wenn du eine Datenbank zu einem früheren Zeitpunkt wiederherstellen willst, nennt sich das auch "Point in time Recovery", kurz PITR, und wäre so ungefähr möglich:

    http://dev.mysql.com/doc/refman/5.1/de/point-in-time-recovery.html

    Bestimmte Teile recovern ist eine gute Frage, beziehst du dich hier nur auf bestimmte Tabellen oder willst du nach Datensätzen differieren? Falls Datensätze: hier könnte man prüfen, wann der letzte Datensatz, der wiederhergestellt werden soll, eingefügt wurde in die DB bzw. den Stand hatte, den man wiederherstellen will. Dann würde es über ein PITR gehen.
     
  5. akretschmer

    akretschmer Datenbank-Guru

    @gurbelunder :
    Du scheinst da ja Erfahrung zu haben. Was steht denn im binlog, wenn ich ein 'insert into ... now() ...' mache?
    Das mysqlbinlog - Tool generiert ja Anweisungen, die man an mysql verfüttern kann - fällt da aus dem mysqlbinlog einfach ein now() raus, oder was passiert?
     
    gurbelunder gefällt das.
  6. gurbelunder

    gurbelunder Datenbank-Guru

    Gute Frage, ich hab dss eigentlich sehr selten genutzt. Mir viel bei der Frage nur generell die Funktionalität ein.

    Da müsste ich mich auch erst wieder in die Materie lesen.
     
  7. akretschmer

    akretschmer Datenbank-Guru

    Nun ja. Es ist wohl so, daß da im Dump auch Zeitstempel sind, und damit könnte now() dann auch das richtige liefern. Ich seh aber weitere Probleme, z.B. wenn da ein Zufallswert in die Tabelle geschrieben werden soll. Ein 'select random()' wird wohl was anderes liefern.
    Egal. Ich halt den Ansatz, Statements nachzuspielen, für riskant. Die MySQL-Doku hat da auch einige Kapitel (die sich abentuerlich liest), und es gibt auch row-based Log deswegen. Da halte ich das WAL-Komzept von PG für erheblich robuster, natürlich mit dem Nachteil, daß es nicht Versionsübergreifend funktioniert.
     
    gurbelunder gefällt das.
  8. gurbelunder

    gurbelunder Datenbank-Guru

    Ich gebe dir vollkommen recht, allerdings wollte ich deine Aussage widerlegen, dass es nicht geht. Funktionieren tut's schon, aber ob es schlau ist, es anzuwenden, ist eine andere Geschichte.

    Generell ist es ja auch bei einer Datenbank eher gedacht, die Daten immer auf den letzten Stand wiederherzustellen. Funktionen wie PITR sind eigentlich für Entwicklungszwecke gedacht, wenn man einen Stand der Daten z.B. von vor einer Woche benötigt, um diese in einer Entwicklungs-DB zu prüfen.
     
  9. akretschmer

    akretschmer Datenbank-Guru

    Das es nicht geht, damit meinte ich aber eher, aus einem Komplettdump so ganz easy mal eben schnell eine einzelne Tabelle oder DB herzustellen. Das ist ein einfaches ASCII-File ohne Struktur und ohne Möglichkeiten, da gezielt Teile nur auszulesen, außer, man macht es händisch oder nutzt Texttools wie sed oder so.

    Bei PG kann ich im Custom-Format dumpen, dann hat man im Dump ein TOC (Table Of Contents) und kann via Optionen bei pg_restore gezielt Objekte angeben (exclude oder include).
     
    gurbelunder gefällt das.
  10. gurbelunder

    gurbelunder Datenbank-Guru

    Okay, mit PG kenne ich mich wieder nicht aus. Und die Funktionalität, wie du sie in diesem Post schreibst, kenne ich von Oracle, aber nicht von MySQL. Da zieh ich meine Aussage zurück ;)
     
    akretschmer gefällt das.
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