2016-08-19 6 views
0

MySQL用のInnoDBエンジンを使用していて、file_per_table設定が設定されていると、突然2つの.ibdファイルが壊れてサイズがゼロになりました。この2つの.ibdファイルの古いバージョンを復元できました。私は私のデータを回復するためにこれらのステップを行うMySQL InnoDBエラー1034テーブル 'tableName'のキーファイルが正しくありません。

の1-作成壊れた1つの
、3-使用「ALTER TABLE tableName DISCARD TABLESPACE
、4-コピーrecoverdの.ibdファイルと同じテーブルを空のデータベース
2-作成データフォルダ内
5- "ALTER TABLE tableName IMPORT TABLESPACE"

が、それは私に

エラー(1034)は、このエラーを与える:テーブルの不正なキーファイル 'tableNameのを';それ

と私はREPAIR TABLE tableName;を使用して、それを修復しようと、あるいは

mysqlcheck -r -u root -p databaseName と `それはテーブルのストレージエンジンが修復をサポートしていません

私は、このエラーが発生しますが

修復しよう
+0

Offtopic。これはプログラミングとは関係ありません。 DBAサイトをお試しください。 –

+0

'ALTER TABLE tablename ENGINE = InnoDB;' –

答えて

1

テーブルを回復するために間違ったアプローチをしました。ファイルシステムの不一致により、ファイルのサイズがゼロになりました。

ibdファイルは必要ありません。その中にデータが必要です。したがって、ファイルではなくデータを復元します。

前述のように、ディスクをpage_parserでスキャンし、InnoDBページ(同じツールキットのconstraints_parser)からレコードを抽出する必要があります。

+0

本当にいいと思う情報をありがとう、CentOS 7をMySQL 5.7と別のマシンにインストールし、percona-data-recovery-tool-for-innodb-0.5をインストールしてみてください。私はmyspace/data /のコピーを持ってibdata1、ib_logfile0、ib_logfile1また、.frmと.ibdを持つすべてのテーブルのフォルダが2つの.ibdファイルがゼロサイズであると議論したように、私の質問はどのように私はpage_parser私はそれに続くことができる段階的なturorialがあります、そして、私はデータベースファイルを含むハードドライブを取り付ける必要がありますか、またはそれらのコピーだけが十分です – Bayar

関連する問題