frm および ibd ファイルからテーブル構造を復元する
P粉637866931
P粉637866931 2023-10-19 10:01:37
0
2
774

PMA でデータベースを復元しようとしていますが、アクセスできるのは frm ファイルと ibd ファイルのみです。必要な ib_log ファイルにはアクセスできません。

データベース データを回復できない可能性があることはわかっていますが、frm ファイルからテーブルの構造を回復することは可能ですか?

P粉637866931
P粉637866931

全員に返信(2)
P粉043566314

InnoDB ではデータ リカバリに ib_log ファイルが必要ですが、データ ディクショナリと、場合によってはテーブルの保留中のデータが含まれる ibdata1 ファイルも必要です。

データ ディクショナリは、テーブルの構造を記録し、テーブル ID をテーブル データを含む物理 .ibd ファイルと照合する繰り返しシステムです。

InnoDB データ ディクショナリなしでは .ibd ファイルを移動することはできません。データ ディクショナリは .ibd ファイル内で見つかったテーブル ID と一致する必要があります。 .ibd ファイルを再添付してデータを回復することはできますが、このプロセスは気の弱い人向けではありません。 http://www.chriscalender.com/ibd ファイルのみからの innodb テーブルの回復/ を参照してください。

.frm ファイルを使用して、いくつかのファイルトリックを使用して構造を復元することはできますが、そもそもそれらを InnoDB テーブルとして作成することはできません。 .frm ファイルを MyISAM テーブルに復元する方法を説明したブログは次のとおりです。

http://www.percona.com/blog/2008/12/17/recovering-create-table-statement-from-frm-file/" percona.com/blog/2008/12/17/recovering- frm ファイルからテーブル ステートメントを作成/

これには PMA を使用できません。サーバー上のデータ ディレクトリへのスーパーユーザー アクセスが必要です。

いいねを押す +0
P粉569205478

.frm および .idb ファイルからのみテーブルを復元しました。

テーブルの作成に使用される SQL クエリを取得します

テーブルのスキーマがすでにわかっている場合は、この手順をスキップできます。

  1. まず、MySQL ユーティリティをインストールします。 これで、コマンド プロンプト (cmd) で mysqlfrm コマンドを使用できるようになります。

  2. 2 番目に、mysqlfrm コマンドを使用して、.frm ファイルから SQL クエリを取得します。 ああああ

その後、SQL クエリを取得して、同じ構造化テーブルを作成できます。 このような:### リーリー

テーブルの作成

上記の SQL クエリを使用してテーブルを作成します。

古いデータがまだ存在する場合は、最初に対応するデータベースとテーブルを削除する必要がある場合があります。データ ファイルのバックアップがあることを確認してください。

###データ復旧###

次のクエリを実行して新しいテーブル データを削除します:

リーリー

これにより、新しい

.frm

ファイルと (新しい空の)

.idb

ファイル間の接続が削除されます。また、フォルダー内の .idb ファイルも削除します。 次に、古い .idb ファイルを新しいフォルダーに置きます。例:

リーリー

mysql ユーザーが

.ibd

ファイルを読み取れることを確認します。たとえば、フォルダー内で chown -R mysql:mysql *.ibd を実行します。 次のクエリを実行して古いデータをインポートします: リーリー これにより、

.idb

ファイルからデータがインポートされ、データが復元されます。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート