Announcement

Collapse
No announcement yet.

Daten einer MySQL-Datenbank retten/wiederherstellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Daten einer MySQL-Datenbank retten/wiederherstellen

    Hallo!

    Mir ist vorgestern meine Festplatte kaputt gegangen (bootet nicht mehr). Auf dieser befand sich eine MySQL-Installation mit einer von mir gepflegten Datenbank (namens "db_cedar"). Mittlerweile habe ich es geschafft, besagte Festplatte an einem Rechner als Zweit-Festplatte anzuschließen. Das heißt, ich habe vollen Zugriff auf das Dateisystem dieser Festplatte, und somit auch auf die MySQL-Dateien/Ordner.

    Gibt es eine Möglichkeit die Daten(sätze) meiner Datenbank (db_cedar) oder gar die komplette Datenbank zu retten, indem ich ganz bestimmte MySQL-Dateien/Ordner kopiere und diese auf meiner neuen Festplatte mit frisch installierter MySQL-Version packe? Die frisch installierte MySQL-Version entspricht exakt der gleichen Version der alten MySQL-Version.


    Würde mich über Hilfe sehr freuen!

  • #2
    Schau mal in deinen MySQL Ordner, da müsste sich ein Unterverzeichnis "data" befinden.

    Comment


    • #3
      Hallo,

      je nach verwendeter DB-Engine werden die Daten anders im Dateisystem abgelegt. Bei MyISAM existiert für jede DB ein Verzeichnis mit deren Namen. In diesem Verzeichnis gibt es für jede Tabelle drei Dateien (name.frm, name.MYD, name.MYI).
      Diese Verzeichnisse kannst du theoretisch einfach in das Datenverzeichnis deiner neuen MySQL-Instanz kopieren. Evtl. müssen die Tabellen dann noch gecheckt und repariert werden, falls beim Crash irgendwas nicht ordnungsgemäss geschlossen wurde.
      Bei der Verwendung der InnoDB-Engine existiert im Datenverzeichnis eine (oder mehrere) ibdata Datei(en). Diese beinhaltet alle Inno-DB Tabellen und kann theoretisch ebenfalls einfach kopiert werden.

      Gruß Falk
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment


      • #4
        @ Paul Bartulec:

        Im damaligen Installationspfad ".../Program Files/MySQL/MySQL Server 5.5/" befindet sich der Ordner "data". Dieser Ordner enthält die zwei folgenden Ordner: "mysql" und "performance_schema". Von einem Ordner namens "db_cedar" jedoch keine Spur ("db_cedar" so heißt meine Datenbank, die ich gerne retten/wiederherstellen möchte).

        Dann gibt es aber noch im folgenden Pfad ".../ProgramData/MySQL/MySQL Server 5.5/" ebenfalls ein "data"-Ordner. In diesem befinden sich die drei Ordner "mysql", "performance_schema" und "db_cedar". Der Ordner "db_cedar" beinhaltet verschiedene Dateien mit den Endungen ".frm", ".TRG" und ".TRN" und eine Datei namens "db.opt".

        Was genau müsste ich denn jetzt machen?


        @ Falk Prüfer:

        Deine Ausführungen klingen sehr vielversprechend. Vielleicht noch ein paar Infos an dieser Stelle: Die DB-Engine, die ich damals während der Installation ausgewählt habe, war die InnoDB. Folgende Auswahl habe ich damals getroffen: "Transactional Database Only - Optimized for application servers and transactional web applications. This will make the InnoDB the main storage engine. Note that the MyISAM engine can still be used".
        Ich habe damals wie jetzt den "MySQL Community Server 5.5.11 (64 bit)" installiert (mit den identischen Einstellungen).

        Im Pfad ".../ProgramData/MySQL/MySQL Server 5.5/" befindet sich ein "data"-Ordner. In diesem befinden sich die drei Ordner "mysql", "performance_schema" und "db_cedar". Des Weiteren beinhaltet der "data"-Ordner 5 Dateien. Eine davon heißt "ibdata1", zwei weitere heißen "ib_logfile0" und "ib_logfile1". Meinst Du diese "ibdata1"-Datei? Ansonsten habe ich keine weiteren Dateien gefunden, die in etwa so heißen (weder im Pfad ".../Program Files/MySQL/MySQL Server 5.5/" noch im Pfad ".../ProgramData/MySQL/MySQL Server 5.5/").

        Da ich nun die InnoDB-Engine verwende, muss ich also nur diese "ibdata1"-Datei ins gleiche Verzeichnis meiner frisch installierten MySQL-Installation packen? Oder muss ich auch noch den "db_cedar"-Ordner (beinhaltet Dateien mit den Endungen ".frm", ".TRG" und ".TRN" und eine Datei namens "db.opt".) kopieren?


        Euch beiden an dieser Stelle schon mal vielen Dank!

        Comment


        • #5
          Hallo,

          kopiere die ibdata1 Datei und die kompletten Ordner ALLER InnoDB Datenbanken.
          Das Einfachste wäre die Daten deiner Neuinstallation zu sichern und KOMPLETT durch das data-Verzeichnis aus dem backup zu ersetzen. Damit hättest du den Altbestand wieder hergestellt ohne irgendwelche Inkonsitenzen fürchten zu müssen.

          Gruß Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment


          • #6
            Tausend Dank! Es hat geklappt!!! ->

            Ich hab beide Varianten ausprobiert, mit folgenden Ergebnissen:

            Variante 1 (nur die "ibdata1"-Datei und den "db_cedar"-Ordner):

            Nachdem ich wie gesagt auf meiner neuen Festplatte ein und dieselbe MySQL-Installation verwendet habe und von der alten Festplatte die "ibdata1"-Datei und den "db_cedar"-Ordner ins Verzeichnis der neuen Installation (unter "C:/ProgramData/MySQL/MySQL Server 5.5/data/") gepackt habe (hierfür musste ich den MySQL-Dient kurz anhalten), konnte ich alle Daten meiner Datenbank wiederherstellen.

            Es fehlen z. B., die damals von mir angelegten MySQL-User, und auch meine ganzen "Stored Procedures" der db_cedar-Datenbank. Was aber nicht weiter tragisch gewesen wäre, da ich hierfür alle SQL-Skripte noch gehabt hätte. Das Wichtigste waren die Daten(sätze) - und die sind wieder da.

            Variante 2 (den kompletten "data"-Ordner):

            Wenn ich den kompletten "data"-Ordner kopiere, dann ist ALLES wieder beim Alten. Datenbanken, die Daten der Datenbanken, MySQL-User und Stored Procedures. Gegebenenfalls kann man auch noch alle "my.ini"-Dateien in den entsprechenden Ordner kopieren und man hat dann auch noch alle MySQL-Datenbankeinstellungen zurück gesichert.


            Also an dieser Stelle nochmal vielen lieben Dank für die Unterstützung!


            Ach, vllt. noch als Info:
            Ich habe wie gesagt ein und dieselbe MySQL-Version verwendet, sowie dieselbe Datenbank-Engine wie bei der damaligen Installation. Ich weiß also nicht, ob das ganze auch dann geklappt hätte, wenn ich z. B. eine andere MySQL-Installationsversion verwendet hätte.

            Comment

            Working...
            X