MySQL サーバーが突然動作を停止し、サービスが断続的に動作しなくなりました。サービスが実行されていないためバックアップを実行できませんでした。そのため、DATA フォルダー全体をコピーするのが精一杯でした。
また、古いバックアップがあったので、それを ibd ファイルと一緒に使用すると、最後のテーブルを除くすべてのテーブルが復元されました。 リーリー ###私は何をすべきかわかりません。
P粉3115638232023-12-31 00:08:37
できることは、バックアップ内のテーブルのバージョンに依存することだけだと思います。コピーした .ibd
ファイルを復元することはできません。
エラー メッセージは、次の 2 つのいずれかが発生したことを示します:
テーブル構造がバックアップ以降変更されたため、.ibd
ファイルはデータ ディクショナリに格納されているメタデータと一致しなくなりました。テーブルスペース ファイルの内容がメタデータと一致しない場合、InnoDB も同じ状況に陥ります。「どうすればよいかわかりません。」
他のすべてのテーブルを正常に復元すると、明らかに問題が発生します。最後のテーブルを除いて、ほとんどのテーブルには最新のデータが含まれています。このテーブルは期限切れです。これらのテーブルに相互参照する行がある場合、孤立レコード (たとえば、ユーザーが製品を購入したが、そのユーザーが Users テーブルに存在しないことを示すレコード) が存在する可能性があります。
これは残念であり、修正するのは困難です。
一般に、.ibd ファイルのコピーは、InnoDB データベースをバックアップする信頼できる方法ではありません。 mysqldump や Percona XtraBackup などの適切なバックアップ ツールを使用する必要があります。
最後のバックアップ後にデータをリカバリするもう 1 つの解決策は、バイナリ ログ ファイルを使用してポイントインタイム リカバリを行うことです。ただし、これを実現するには、最新のバックアップ以降のすべてのバイナリ ログ ファイルが必要であり、バックアップには、バックアップが作成された時点のバイナリ ログの場所に関する情報が必要です。
https://dev.mysql.com/doc /refman/en/point-in-time-recovery.html を参照してください。