MySQLデータベースアプリケーションがクラッシュしました。 システムがクラッシュしてから約1週間後にバックアップを取り、復元しました。その間私達はバックアップデータベースアプリケーションを使用しました。今週のギャップからのデータをデータベースに追加する方法を教えてください。
これを行う最善の方法は何でしょうか?
EDIT。
テーブル構造は同じです。外部キーを持つテーブルがいくつかあります。
本質的に私の質問はこれに帰着する:
2台のサーバーの主キーは次のようになります。
serv1: 123456---
serv2: 123---456
これらはすべてセカンダリテーブルの外部キーです。
2つをマージしたいのですが、対応するデータを他のテーブルから移動するときに2番目のテーブルのすべての主キーを外部キーの関係に反映させる必要があります。
回答:
回答№1は0データベースのバージョンが少ない場合は、オンラインデータベースと不足しているデータの間でデータを同期するのが最善の方法です。
試してみることができます: http://www.red-gate.com/products/mysql/mysql-data-compare/ または: http://www.devart.com/dbforge/sql/datacompare/
ワークベンチを使用すると、スキーマを比較できます。 http://dev.mysql.com/doc/workbench/en/wb-database-diff-report.html
しかし、最善の方法は最初にテスト環境でバックアップを作成してから比較を試みることです。2つの場所に同じIDが存在し、データベースに最適なソリューションを見つける必要があるかもしれません。
- 両方のデータベースを配置します(2つのテスト環境で稼働中のデータベースと最新のデータベース)。
- それらを同期させて違いを確認する
問題がなければテストで修正を実行してから、本番でそれを実行します。