MySQL 5.0 で誤って削除されたデータベースを復元する必要があります。バックアップ ファイルを確認したところ、データベース データを保持するための .FRM ファイルしかないようです。
バックアップからデータベースの復元/インポートを実行するために必要なのはこれだけなのか、それともこれを完了するために他に必要なファイルがあるのか 誰にもアドバイスできますか?
.frm ファイルはデータ ファイルではなく、「データ ディクショナリ情報」を格納するだけです ( MySQL のマニュアルを参照)。InnoDB は、そのデータを ib_logfile* ファイルに保存します。これは、バックアップ/復元を行うために必要なものです。詳細については、こちらを参照してください。
innodb の復元: (データ フォルダーが C:\ProgramData\MySQL\MySQL Server 5.5\data であると仮定)
3 つの ibdata ファイルをデータ フォルダー ex にコピーします。(C:\ProgramData\MySQL\MySQL Server 5.5\data)
_ib_logfile0 _ib_logfile1 _ibdata1
ファイルを右クリックして、_ib_logfile0 のサイズを MB 単位で取得します (_ib_logfile1 と同じである必要があります)。
innodb_log_file_size=343M が正確に ibdata ファイルのサイズになるように、mysql 構成ファイル (mysql\bin\my.ini) を編集します。
走る
mysqld --defaults-file=mysql\bin\my.ini --standalone --console --innodb_force_recovery=6
これで、データがデータベースに戻るはずです。phpmysql またはその他のツールを使用してエクスポートします。
ああ、あなたは困っています。データベースをシャットダウンします。innodbファイルをバックアップします。データベースを削除した後、何もしなかったことを祈ってください。
Perconaの担当者(MySQL Performance Blogの作成者を含む)があなたを助けることができるはずです:Percona緊急サポート。
自分で冒険する場合は、これを持っていきましょう:Data Recovery ToolkitforInnodb。
それのロジスティクス?すべてのページ(コンピューター用語ページ... Innodbの場合は16kブロック)を読み取り、その方法でデータを再構築する必要があります。これは非常に低レベルの作業であり(ツールキットで処理されない場合は、16進エディターを開いてバイト数のカウントを開始します)、経験豊富なプログラマーでない場合は、問題が発生します。 。
ここで見つけることができる詳細な解決策:
http://www.unilogica.com/mysql-innodb-recovery/ (ポルトガル語の記事)
innodb_force_recoveryのフラグに加えて、別の解決策を見つけました: innodb_file_per_table、MyISAM テーブルのように各ファイルで InnoDB テーブルを分割します。
クラッシュ リカバリでは、単一ファイルibdata1よりも少ないデータを失う可能性があります。