2017-12-28 20 views
0

アーカイブストレージエンジンと呼ばれるエンジンを使用して作成された、非常に古いDBを持っています - 新しいバージョンのMySQLでは明らかにサポートされていません。あなたがコンパイルするときに追加するスイッチは、それをビルドします....ARCHIVEエンジンの古いmysql dbをinnodbに変換しようとしています

誰でもこのデータを復旧しようとしています: 1)すべてのテーブルのエンジンをinnodbに変換する - mysqlのバージョンでそれはアーカイブとinnodbをサポートしていますか? OR 2)どういうわけか、まだサポートしている機能するmysqlバージョンが見つかったので、どうにかテーブルをダンプして、インポート時にinnodbを実装するためにsqlファイルを変更できますか?

いずれか可能ですか?正しい方向へのガイダンスや指し示しは、非常に役に立ちます。私はこれらのエンジンについてはあまり知らないし、Archiveについてはそれほど重要ではない。私は不可能に頼んでいるかもしれませんか?

ありがとうございました!

EDIT:すべてのエンジンをサポートする古いバージョンのmysqlをダウンロードできました。ルートのmysqlディレクトリからすべてのデータベースファイルとib *ファイル(別の投稿で読む必要があります)をロードできました。各テーブルを個別のファイルとしてダンプできました。私はENGINE = ARCHIVEをすべてENGINE = InnoDBに置き換え、それらのテーブルをmysqlサーバにインポートして、すべて作業することができました。

+0

あなたはこれが機能DBだったし、それが「壊れて」行き、MySQLを台無しにmysqldumpを – exussum

+0

からのファイルのバックアップまたは生成されたものを復元しようとしています。私は../mysql/dataから移動しなければならなかった。私は最近のバックアップを使用し、スナップショットからDBディレクトリを抽出し、dbとテーブルをmysql(私はwin10上でローカルに実行しています)で見ることができました。私が[select] * [table]から試してみると、テーブルの大部分が 'テーブルは存在しません'というエラーになります.SOMEはすべての行とカラムを表示します。私の疑惑は、mysqlのバージョンがARCHIVEをサポートしておらず、一部のテーブルがmyisamを使用しているということです。私はすべてのデータにアクセスできる場合、すべてをmysqldumpしたいです – shayaknyc

+0

腐敗の多くの理由があります。アーカイブは回復するのが一番簡単ではありません。データが重要な場合は、MySQLの専門家に支払うことをお勧めします。いずれの方法でもバックアップは重要です – exussum

答えて

0

変更ログは、ARCHIVEエンジンがMySQLまたはMariaDBから削除されていないことを示しています。

実行しているバージョンは何ですか。

あなたはSELECTアーカイブテーブルから来ることができますか?もしそうなら、これはうまくいくはずです:

CREATE TABLE new (...) ENGINE=InnoDB 
    SELECT * FROM my_archive_table; 

ディレクトリにはどのようなファイルがデータベースの名前で存在しますか? my_archive_table.frmファイルと少なくとも1つのファイルが必要です。

これはあなたに何を与えるん:

SHOW TABLE STATUS LIKE 'my_archive_table'; 
関連する問題