2016-08-19 1 views
0

Ich verwende InnoDB-Engine für MySQL und file_per_table Einstellung wird gesetzt, plötzlich zwei der .ibd-Dateien wurde beschädigt und ihre Größe wurde Null Byte, jetzt habe ich es geschafft, alte Version dieser beiden .ibd-Dateien und wiederherstellen ich mache diese Schritte, um meine Daten wiederherstellenMySQL InnoDB Fehler 1034 Falsche Schlüsseldatei für Tabelle 'Tabellenname'; versuche, es zu reparieren

1- eine leere Datenbank
2- erstellen Sie eine Tabelle die gleiche wie beschädigt ein
3- use „ALTER TABLE tableName DISCARD TABLESPACE
4- Kopie der recoverd erstellen .ibd Datei im Datenordner
5- Verwendung "ALTER TABLE tableName IMPORT TABLESPACE"

aber es gibt mir diesen Fehler

Error (1034): Falsche Schlüsseldatei für Tabelle 'tablename'; versuchen Sie es

zu reparieren und wenn ich versuche, es zu reparieren mit REPAIR TABLE tableName; oder sogar mit

mysqlcheck -r -u root -p databaseName `es gibt mir diesen Fehler

Die Speicher-Engine für die Tabelle nicht Reparatur unterstützt

+0

Offtopic. Das hat nichts mit Programmierung zu tun. Probieren Sie die DBA-Site aus. –

+0

Versuchen Sie 'ALTER TABLE Tabellenname ENGINE = InnoDB;' –

Antwort

1

Sie haben einen falschen Ansatz gewählt, um die Tabelle wiederherzustellen. Die Dateigröße wurde aufgrund von Inkonsistenzen des Dateisystems auf Null zurückgesetzt.

Sie benötigen die ibd-Datei nicht, Sie brauchen die Daten darin. Stellen Sie also die Daten wieder her, nicht die Datei.

Wie wir besprochen haben, sollten Sie die Festplatte mit page_parser scannen und dann Datensätze aus InnoDB Seiten (constraints_parser aus dem gleichen Toolkit) extrahieren.

+0

Danke für die Information, die wirklich gut klingt, ich installierte CentOS 7 auf anderem Rechner mit MySQL 5.7, und installierte auch percona-Datenwiederaufnahme-tool-for-innodb-0.5 und Ich habe eine Kopie von mysal/data/das enthält ibdata1, ib_logfile0, ib_logfile1 und auch einen Ordner für alle Tabellen mit .frm und .ibd aber wie ich diskutiert habe zwei .ibd-Dateien sind null Größe, ist meine Frage, wie verwende ich page_parser Gibt es eine Schritt-für-Schritt-Anleitung, der ich folgen kann, und muss ich die Festplatte anfügen, die Datenbankdateien enthält oder nur eine Kopie davon ist genug – Bayar