Migration methodology¶
多くの理由で、あるデータベースから別のデータベースへの移行を検討する場合があります。移行により、新しいまたはより優れたテクノロジーを活用できます。現在のデータベースがシステムのスケーリングを可能にする適切な機能セットを提供していない場合、必要な機能を提供するデータベースに移行することは、会社にとって最適な動きです。
移行はコスト効果も高くなります。かなりのメンテナンスコストでシステムを移行すると、システムの維持に費やすお金を節約できます。使用中のデータベースの数を統合することにより、社内の管理コストも削減できます。使用するデータベースプラットフォームの数を減らす(またはデータベースの互換性性を活用する)ことにより、IT予算をより多く活用できます。
複数のデータベースプラットフォームを使用すると、ベンダが価格を引き上げたり、会社のディレクティブを変更した場合に、適切な移行パスを提供できます。 EnterpriseDBは長年にわたり、企業が既存のデータベースシステムをPostgresに移行するのを支援してきました。
</ div>
移行プロセス¶
推奨されるPostgresへの移行パスには、次の主な手順が含まれます。
1.移行に含めるデータベースオブジェクトとデータを決定して、移行プロセスを開始します。ソースシステムのアーキテクチャと実装の確かな知識を持った人を含む移行チームを形成します。
2.潜在的な移行の問題を特定します。 OracleからEDB Postgres Advanced Serverへの移行の場合、EDB EDB Postgres Advanced Serverでサポートされている互換性機能の詳細については、EnterpriseDB Postgres Advanced Server documentationを参照してください。このレビューにヘルプEnterpriseDB移行評価サービスの使用を検討してください。
3.移行環境を準備します。必要なソフトウェアを入手してインストールし、サーバー間の接続を確立します。
4.移行にラージのデータが含まれる場合は、データを移動する前にスキーマ定義を移行することを検討してください。 DDL移行の結果を確認し、移行の概要で報告された問題を解決します。 Migration errorsには、移行の問題の解決に関する情報が含まれています。
5.データを移行します。小さいデータセットの場合は、 Migration Toolkitを使用します。 オラクルがEDB Postgres Advanced Serverに移行し、データセットがラージ場合、またはデータ転送が遅いことに気付いた場合は、他の利用可能なデータ移動方法のいずれかを利用してください。
-Oracleデータベースと互換性のあるEDB Postgres Advanced Serverデータベースリンク機能をオラクルします。 -データにBLOBまたはCLOBデータがある場合、 オラクルスタイルのデータベースリンクの代わりにdblink_oraスタイルのデータベースリンクを使用します。
これらのメソッドはどちらもオラクル Call Interface(OCI)を使用してオラクルに接続します。接続後、 SQLステートメントを使用して「リンクされた」 オラクルデータベースからデータを選択し、 EDB Postgres Advanced Serverデータベースにデータを挿入します。
6.データ移行の結果を確認し、移行の概要で報告された問題を解決します。
7.新しく移行されたPostgresデータベースで動作するようにアプリケーションを変換します。 JDBCやODBCなどのオープンスタンダード接続を使用するアプリケーションでは、通常、データベースコネクション文字列とEnterpriseDBドライバの選択のみを変更する必要があります。詳細については、Connecting an application to Postgresを参照してください。
8.システムのパフォーマンスをテストし、新しいサーバーを調整します。 EDB Postgres Advanced Serverデータベースに移行する場合は、 EDB Postgres Advanced Serverのパフォーマンスチューニングユーティリティを利用してください。
-Dynatuneを使用して、データベース構成リソースを動的に調整します。 -オプティマイザーヒントを使用して、クエリーを指定しパス。 -
ANALYZEコマンドを使用して、データベース統計を取得します。EDB Postgres Advanced Serverで利用可能なパフォーマンスチューニングツールに関する情報および参照。
</ div>
アプリケーションをPostgresに接続する¶
クライアントアプリケーションを変換してPostgresデータベースを使用するには、接続プロパティを変更して新しいターゲットデータベースを指定する必要があります。
Javaアプリケーションの場合、
JDBCドライバ名前(Class.forName)とJDBC URLを変更します。
オラクルで実行されている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データソースアドミニストレーターへのリンクを確認します。 [追加]を選択して、新しいデータソースの作成ウィザードをスタートします。次に、ダイアログを完了して、新しいターゲットデータソースを定義します。
2.新しいデータソースを使用するようにアプリケーションを変更します。
アプリケーションには、
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
アプリケーションとサーバー間の接続を確立した後、アプリケーションをテストして、アプリケーションと移行されたスキーマ間の互換性の問題を見つけます。ほとんどの場合、シンプル変更により、アプリケーションで発生する非互換性が解決されます。機能がサポートされていない場合は、回避策またはサードパーティのツールを使用して、アプリケーションに必要な機能を提供してください。一般的な問題とその回避策については、Migration errorsを参照してください。