移行方法¶
あるデータベースから別のデータベースへの移行を検討する理由はたくさんあります。移行により、新しいまたはより優れた技術を活用できます。現在のデータベースがシステムのスケーリングを可能にする適切な機能セットを提供していない場合、必要な機能を提供するデータベースに移行することは、会社にとって最適な移行です。
移行も非常に費用対効果が高くなります。多大な保守コストでシステムを移行すると、システムの維持に費やされる費用を節約できます。使用中のデータベースの数を統合することにより、社内の管理コストも削減できます。使用するデータベースプラットフォームの数を減らす(またはデータベースの互換性を活用する)ことにより、IT予算でより多くのことができます。
複数のデータベースプラットフォームを使用すると、ベンダーが価格を引き上げたり、会社の指示を変更した場合に、適切な移行パスを提供できます。 EnterpriseDBは、企業が既存のデータベースシステムを長年Postgresに移行するのを支援してきました。
移行プロセスで詳述されている方法に従うことをお勧めします 。
移行プロセス¶
Postgresへの移行パスには、次の主な手順が含まれます。
移行に含めるデータベースオブジェクトとデータを決定して、移行プロセスを開始します。ソースシステムのアーキテクチャと実装に関する十分な知識を持つ人を含む移行チームを編成します。
潜在的な移行の問題を特定します。 OracleからAdvanced Serverへの移行の場合、``Oracle開発者ガイドのデータベース互換性``を参照してください。 <https://www.enterprisedb.com/edb-docs/d/edb-postgres-advanced-server/user-guides/database-compatibility-for-oracle-developers-guide/11/toc.html>`_ Advanced Serverでサポートされている互換性機能の詳細について。このレビューを支援するために、EnterpriseDBの移行評価サービスの使用を検討してください。
移行環境を準備します。必要なソフトウェアを入手してインストールし、サーバー間の接続を確立します。
移行に大量のデータが含まれる場合は、データを移動する前にスキーマ定義を移行することを検討してください。 DDL移行の結果を確認し、移行の概要で報告された問題を解決します。 :doc:`移行エラーセクション<mtk_errors>このドキュメントの `には、移行の問題の解決に関する情報が含まれています。
データを移行します。小さいデータセットの場合は、Migration Toolkitを使用します。 (Advanced Serverへの)Oracle移行であり、データセットが大きい場合、またはデータ転送が遅いことに気づいた場合は、他の利用可能なデータ移動方法のいずれかを利用してください。
Oracleデータベースと互換性のあるAdvanced Serverデータベースリンク機能を使用します。
データにBLOBまたはCLOBデータがある場合、Oracleスタイルのデータベースリンクの代わりにdblink_oraスタイルのデータベースリンクを使用します。
これらのメソッドはどちらも、Oracle Call Interface(OCI)を使用してOracleに接続します。接続後、SQLステートメントを使用して、``リンクされた``Oracleデータベースからデータを選択し、そのデータをAdvanced Serverデータベースに挿入します。
データ移行の結果を確認し、移行の概要で報告された問題を解決します。
新しく移行されたPostgresデータベースで動作するようにアプリケーションを変換します。 JDBCやODBCなどのオープンスタンダード接続を使用するアプリケーションでは、通常、データベース接続文字列の変更とEnterpriseDBドライバーの選択のみが必要です。 Postgresへのアプリケーションの接続を参照してください 詳細については。
システムのパフォーマンスをテストし、新しいサーバーを調整します。 Advanced Serverデータベースに移行する場合は、Advanced Serverのパフォーマンスチューニングユーティリティを利用してください。
Dynatuneを使用して、データベース構成リソースを動的に調整します。
オプティマイザーヒントを使用して、クエリパスを指定します。
ANALYZEコマンドを使用して、データベース統計を取得します。
The EDB Postgres Advanced Server Guide and Database Compatibility for Oracle Developer's Guide (both available through the EnterpriseDB website) offer information about the performance tuning tools available with Advanced Server.
アプリケーションをPostgresに接続する¶
クライアントアプリケーションを変換してPostgresデータベースを使用するには、接続プロパティを変更して新しいターゲットデータベースを指定する必要があります。 Javaアプリケーションの場合、JDBCドライバー名(Class.forName)とJDBC URLを変更します。
Oracleで実行されているJavaアプリケーションには、次の接続プロパティがあります。
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con =
DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe",
"user",
"password")
接続文字列を変更して、Postgresサーバーに接続します。
Class.forName("com.edb.Driver")
Connection con = DriverManager.getConnection("jdbc:edb://localhost:5444/edb", "user", "password");
ODBCアプリケーションを変換してPostgresのインスタンスに接続するには、2段階のプロセスが必要です。 ODBCアプリケーションを接続するには、ODBCデータソース管理者を使用して、新しいターゲットデータベースの接続プロパティを定義するデータソースを作成します。
ほとんどのLinuxおよびWindowsシステムには、ODBCデータソースを作成および編集できるグラフィカルツールが含まれています。 ODBCをインストールしたら、[管理ツール]メニューでODBCデータソースアドミニストレーターへのリンクを確認します。 [追加]ボタンをクリックして、新しいデータソースの作成ウィザードを開始します。ダイアログを完了して、新しいターゲットデータソースを定義します。
次に、新しいデータソースを使用するようにアプリケーションを変更します。
アプリケーションには SQLConnect (または場合によっては SQLDriverConnect )への呼び出しが含まれます。呼び出しを編集して、データソース名を変更します。次の例では、データソースの名前は OracleDSN です:
result = SQLConnect(conHandle, // Connection handle (returned)
"OracleDSN", SQL_NTS, // Data source name
username, SQL_NTS, // User name
password, SQL_NTS); // Password
PostgresDSN という名前のデータソースで定義されたPostgresのインスタンスに接続するには、データソース名を変更します。
result = SQLConnect(conHandle, // Connection handle (returned)
"PostgresDSN", SQL_NTS, // Data source name
username, SQL_NTS, // User name
password, SQL_NTS); // Password
アプリケーションとサーバー間の接続を確立した後、アプリケーションをテストして、アプリケーションと移行されたスキーマ間の互換性の問題を見つけます。ほとんどの場合、簡単な変更により、アプリケーションで発生する非互換性が解決されます。機能がサポートされていない場合は、回避策またはサードパーティのツールを使用して、アプリケーションに必要な機能を提供してください。 移行エラーを参照してください 、いくつかの一般的な問題とその回避策についての情報。