MySQL Server は、InnoDB と MyISAM という 2 種類のデータベース ストレージ エンジンを使用します。 InnoDB ストレージ エンジンが使用される場合、MySQL Server はデータとインデックスを .ibdata ファイルに保存し、テーブル スキーマを .frm ファイルに保存します。 InnoDB テーブルが破損した場合、データベース全体のバックアップを復元する代わりに、.ibdata および .frm ファイルから InnoDB MySQL テーブルのデータを簡単に復元できます。この記事では、MySQL Server の .ibdata および .frm ファイルからデータを復元する方法について説明します。
MySQL Server の .frm および .ibdata ファイルから InnoDB テーブルのデータを復元する手順を段階的に説明します。
まず、新しい MySQL データベースを作成する必要があります。このためには、PhpMyAdmin にログインし、[データベース] オプションをクリックし、データベース名 (例: クライアント) を入力して、[作成] をクリックします。
次に、XAMPP インストールのフォルダーに移動して、新しく作成されたデータベースを確認します。デフォルトの場所は C:xamppmysqldata.
新しいデータベースを開くと、テーブルが含まれていないことがわかります。テーブルを作成するにはテーブルのスキーマが必要です。更新されたバックアップ ファイルがある場合は、データベースのスキーマと名前を取得できます。同じ名前を使用してテーブルを作成できます。ただし、バックアップがない場合は、.frm ファイルを使用してテーブルのスキーマを抽出できます。テーブル スキーマの抽出に役立つ、信頼性の高いさまざまなユーティリティがオンラインで利用可能です。
次に、同じスキーマを使用して、新しく作成したデータベースにテーブルを作成します。
テーブルを作成すると、データベース フォルダーに新しい .frm および .ibd ファイルが自動的に作成されます。
次に、XAMPP インストール フォルダーに移動し、.ibd ファイルを削除します。
次に、元の .ibd ファイルをコピーして、新しいデータベースに貼り付けます。
元の .ibd ファイルをコピーする前に、以下のクエリを実行します。
ALTER TABLE テーブル名 DISCARD TABLESPACE;
注: DISCARD TABLESPACE コマンドは、MySQL テーブルとテーブルスペース間のリンクを切断するため、不整合やその他の問題を防ぐのに役立ちます。
次に、以下のコマンドを使用して、MySQL テーブルとテーブルスペース間のリンクを復元します。
ALTER TABLE テーブル名 IMPORT TABLESPACE;
注: .frm および .ibd ファイルを使用すると、一度に 1 つのテーブルからデータを復元できます。複数のテーブルを復元する必要がある場合は、各テーブルのすべての手順を手動で実行する必要があるため、時間がかかります。
MySQL Server データベースから複数の InnoDB テーブルを一度に迅速かつ簡単に復元するには、専門的な MySQL データベース回復ツールを使用できます。 Stellar Repair for MySQL は、破損した MySQL データベースから InnoDB テーブルや主キー、ビュー、トリガーなどのその他のデータを回復できる使いやすいツールの 1 つです。このツールは、機能豊富でインタラクティブなユーザー インターフェイスを備えており、わずか数ステップで修復および回復操作を迅速に実行できます。
Stellar Repair for MySQL の主な機能をいくつか示します。
MySQL Server 8.0.36 以前のバージョンをサポート
11.3.2 までのすべての MariaDB バージョンをサポート
削除されたレコードやパーティション テーブルを含むすべてのデータを MySQL データベースから復元します
MySQL テーブルを完全な精度で修復します
保存する前に修復されたデータの拡張プレビューを提供します
複数のデータベースを一度に修復できます
修復した MySQL データベースを MySQL、MariaDB、SQL Script、CSV、HTML、XLS などの複数の形式で保存できます
CentOS 7 (64 ビット) / Red Hat Enterprise Linux 7 (64 ビット) および Ubuntu 16.04 (32 ビットおよび 64 ビット) / Ubuntu 18.04 を含む、Windows および Linux オペレーティング システムの両方と互換性があります。 19.10 (64 ビット)
上記では、ibdata および .frm ファイルから InnoDB MySQL テーブル データを回復するための詳細な段階的なプロセスについて説明しました。ただし、テーブルごとにすべての手順を手動で実行する必要があるため、これは複数のテーブルの復元には適していません。あるいは、Stellar Repair for MySQL などの専門的な MySQL データベース回復ツールを使用すると、破損したデータベース ファイルからテーブル、主キー、ビュー、トリガーなどを含むすべてのオブジェクトを完全な整合性を保って抽出できます。このツールは、InnoDB と MyISAM ストレージ エンジンの両方を使用して作成されたデータベースの修復をサポートしています。これは、MySQL データベースの破損に関連した幅広いエラーに対処するように設計されています。 Stellar Repair for MySQL の無料デモ バージョンも利用可能で、データベース ファイルをスキャンして回復可能なデータをプレビューできます。
以上がibdata および frm ファイルから InnoDB MySQL テーブル データを復元する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。