検索

ホームページ  >  に質問  >  本文

frm および ibd ファイルからテーブル構造を復元する

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

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

P粉637866931P粉637866931408日前728

全員に返信(2)返信します

  • P粉043566314

    P粉0435663142023-10-20 00:08:59

    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

    P粉5692054782023-10-20 00:04:57

    .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
  • キャンセル返事