web-dev-qa-db-ja.com

OracleデータベースをMySQLサーバーに移行する方法

現在、アプリケーションはOracle 11gデータベースを使用して実行されています。 MySQLクラスターで動作するアプリケーションの新しいバージョンを開発しています。 OracleデータベースからMySQLデータベースにデータを移行する必要があります。これは、データベースオブジェクトの直接コピーではありません。新しいバージョンのアプリケーションスキーマ(テーブルの構造と関係)が変更されました。また、監査テーブルもコピーする必要があります。古いOracleスキーマと新しいMySQLスキーマのテーブル、列をマップし、コピーを適用してデータをコピーする方法はありますか?

この活動は2つのステップで行うことを考えています。 1. OracleデータベースをMySQLデータベースに変換します。 2.テーブルごとにテーブルをコピーするストアドプロシージャを記述します。

あるRDBMSベンダーから別のRDBMSベンダーへのこの種のデータベース移行を実行する際のベストプラクティスはありますか?これに利用できるオープンソースまたは商用ツールはありますか?

8
Suren Raju

この移行は2つのステップで行うことをお勧めします。

  1. MySQL Workbenchを使用して、ほとんどのdbオブジェクトとデータをMySQLに移行します(テーブルデータもこのプロセスによってコピーされます)。詳細は MySQL Workbench Migration Wizardの使用 を参照してください。これにより、ストアドプロシージャなどの特定のオブジェクトを手動で操作することができます。ストアドルーチンはOracleとMySQLの間で大きく異なるため、どのツールも自動移行を実行できません。
  2. MySQL Workbenchを使用して、移行したデータベースをモデルにリバースエンジニアリングします。
  3. このモデルを使用して、オブジェクトを新しいスキーマ構造に調整します。
  4. モデルをサーバーに同期して、変更を適用します。行った変更によっては、これが破壊的でない場合もありますが、もちろん、バックアップをとることは常に良い考えです。

スキーマを段階的に調整したい場合は、ステップ3と4を何度でも繰り返すことができます。同期は、他のユーザーがスキーマで行った変更も引き継ぎます(双方向同期)。

OracleからMySQLへの移行は、MySQL Workbenchではサポートされていません。上記の私の提案はすべてそれだけです。少なくとも部分的に機能させるために試すことができるアイデアです。ただし、前述のとおり、OracleからMySQLへの移行はサポートされていないため、テストは行われていません。

5
Mike Lischke

最近 DBConvert というプログラムを使用してOracle DBをMySQLに変換しました。大きなテーブルに透かしを挿入する無料のバージョンがありますが、修正することができます。 ;)完全ではなく、変換後に修正するために多少の調整が必要になる場合があります。

0
Hatandboots