2017-02-02 6 views
1

Kürzlich wurde unser Server unerwartet heruntergefahren und beim nächsten Mal, als ich versuchte, mysql zu starten, gab es einen Fehler. Wir hatten keine Datensicherung, also haben wir unseren Datenordner einfach an einen sicheren Ort kopiert. Ich habe ib Protokolldateien und ib Datendateien zusammen mit allen Datenbanknamen mit frm und ibd Dateien. Wie kann ich meine Datenbanken wiederherstellen?MySQL Datenrettung mit INNODB

Ich kann meine Datenbank und Tabellennamen in MySQL Workbench sehen, aber wenn ich die Tabelle abfrage, heißt es, dass die Tabelle nicht existiert.

+1

Ist Ihr Server Windows oder Linux? – Adrian

+1

Willkommen bei SO, bitte geben Sie ein bisschen mehr Details an (Bearbeiten der Frage): Haben Sie die Dateien vor oder nach dem Absturz kopiert? Auf den gleichen PC? Windows/Linux? Welche Fehler haben Sie (siehe Protokolle)? Btw: Ich bin mir nicht sicher, ob diese Frage besser für http://dba.stackexchange.com – agold

+0

Ich benutze Windows. Ich habe Dateien nach dem Absturz kopiert. Ich habe auch den folgenden Fehler beim Starten von MySQL. Die Protokollfolgenummern 39493811412 und 39493811412 in ibdata-Dateien stimmen nicht mit der Protokollfolgenummer 39493811432 in den ib_logfiles überein –

Antwort

1

Diese Schritte halfen mir in einem sehr ähnlichen Fall:

  1. Set innodb_force_recovery = 1 in der my.cnf Konfiguration gewaltsam InnoDB zu starten. Vergessen Sie nicht, den Dienst tatsächlich (neu) zu starten. MySQL sollte jetzt laufen.
  2. Verwenden mysqldump, um einen SQL-Dump
  3. (Optional) erstellen pt-show-grants können Sie zusätzlich Zuschüsse
  4. Installieren Sie die Datenbank sichern oder löscht ibdata und ib_logfile Dateien (siehe https://dba.stackexchange.com/questions/23361/innodb-force-recovery-when-innodb-corruption)
  5. Import beid SQL-Dumps: die eigentliche Datenbank Dump, und die Zuschüsse dump