1

相互にクロス データベース関係を持つ複数の MySQL innodb データベースのバックアップに関する質問があります。懸念事項は、データベースのバックアップおよび復元中のデータのリレーショナル整合性です。

この使用例は、1 つのデータベースに統合できない複数の別個のドメインのユーザー情報などの最上位データを保持するために 1 つの「マスター」データベースが使用されている状況です。これを設定することは問題ではありません。MySQL では innodb 外部キーとのクロス データベース リレーションが許可されているからです。

ただし、バックアップ中に外部キーを壊さずに、マスター データベースとセカンダリ データベースを (同じサーバー上にあると仮定して) 適切にバックアップするにはどうすればよいでしょうか。

その瞬間にこれらのデータベースの「スナップショット」をキャプチャする方法を探しています。または、バックアップ時に関係を維持することができない場合...

4

1 に答える 1

1

質問を正しく理解していることを願っています。

2 つのデータベース (db1 と db2) があり、db2 の 1 つ以上のテーブルからの外部キー制約が db1 の何かを参照しているとします。

バックアップを作成するときにすべてが特定の時点で一貫していることを確認したい場合は、mysqldumpに任せることができます。mysqldump を実行するたびに、次の--single-transactionようにオプションを発行します。

mysqldump -u... -p... --single-transaction --databases db1 db2 > db1_db2.sql

内部チェックポイントが作成されるため、バックアップ中に db1 と db2 が参照整合性とポイント イン タイムで一貫性を保つことができます。

mysqldump の復元中は、クリーンで高速なリロード リロードを可能にするために、外部キーが無効になります。オプションを使用して mysqldump が作成された場合に限り、復元中に外部キーが無効になっていることを信頼でき--single-transactionます。

于 2012-06-15T19:40:20.300 に答える