クライアントには、Oracle DB に基づく古いシステムがあります。現在の (2013) バージョンの MySQL または PostGreSQL (ストアド プロシージャ、トリガーなども考慮) では、Oracle DB データを転送するのにどちらが簡単 (工数/時間もかからない) でしょうか?
それとも無関係ですか?
クライアントには、Oracle DB に基づく古いシステムがあります。現在の (2013) バージョンの MySQL または PostGreSQL (ストアド プロシージャ、トリガーなども考慮) では、Oracle DB データを転送するのにどちらが簡単 (工数/時間もかからない) でしょうか?
それとも無関係ですか?
かなり単純なデータベース (複雑なユーザー関数や型などがない) の場合は、ora2pgを試すことができます。私は過去にそれで成功しました。明らかに、移植後にテストが必要です。
代替オプション -- 同じ db 構造 (テーブルの名前が同じ、同じ列など) の場合、スキーマのみの postgres db を作成し、Oracle テーブルを 1 つずつ csv にダンプしてから、次を使用して postgres にロードできます。コピー。
別のオプションは、postgres db を作成し (データなし、スキーマのみ)、oracle_fdw外部データ ラッパーを使用して、Oracle から postgres db に直接データをプルする (postgres db 内から実行される) ことです。
以前は oracle を使用していましたが、現在は postgresql を使用しています。
構造的には、それらは非常に似ています。しかし...あるDBから別のDBへの1つのアプリケーションの移植は、1日、1週間、または1か月の仕事ではありません。
次の準備をしてください。
1.すべてのSQLをテストする
2.すべてのストアド プロシージャ、トリガー、関数などをテストする
3. すべてのアプリケーション モジュールをテストする
4.モデル句、スナップショットなど、オラクル固有の機能の代替手段を見つける
要するに、魔法の薬はありません。しかし、両方の私の経験から、それらを移植する方が簡単であることがわかります。
このタイプの質問には、実際に移植した人を除いて誰も答えることができません。コンパイルしてインストールできたとしても、高速に (または十分に高速に) 実行されるとは限りません。
これは、アプリケーションで使用されている SQL 機能と、これらが新しいデータベースにどのようにマップされるかによって異なります。
そのため、アプリケーションの 95% では移植が非常に簡単かもしれませんが、Oracle のマテリアライズド ビューの代わりをすぐに見つけなければならない場合、たとえば PostgreSql では面倒な作業になる可能性があります。
したがって、ポートは実際にはアプリケーションの設計段階から始まります。そうしないと、多くの問題が発生する可能性があります。これを見てください。
あなたの場合、すべての SQL 機能と、これらが PostgreSql と MySQL にどれだけ簡単にマップされるかを特定する必要があります。
たとえば、ここでPostgreSql と MySQL の違いを確認できます。私は PostgreSql を選択します。なぜなら、Oracle と PostgreSql で動作するアプリケーションを開発するのに大きな問題はなかったからです。ウィンドウ集約、再帰 CTE、Java のストアド プロシージャなどの機能は、両方のシステムで利用できます。