Migration Methodology¶
あるデータベースから別のデータベースへの移行を検討する理由はたくさんあります。移行により、新しいまたはより優れたテクノロジーを活用できます。現在のデータベースがシステムを拡張するための適切な機能セットを提供していない場合、必要な機能を提供するデータベースに移行することは会社にとって最適な移行です。
移行も非常にコスト効果が高くなります。かなりのメンテナンスコストでシステムを移行すると、システムの維持に費やすお金を節約できます。使用中のデータベースの数を統合することにより、社内の管理コストも削減できます。使用するデータベースプラットフォームの数を減らす(またはデータベースの互換性性を活用する)ことにより、IT予算をより多く活用できます。
複数のデータベースプラットフォームを使用すると、ベンダが価格を引き上げたり、会社のディレクティブを変更したりした場合に、適切な移行パスを提供できます。EnterpriseDBは、企業が既存のデータベースシステムを長年Postgresに移行するのを支援してきました。
移行プロセス で詳述されている方法に従うことをお勧めします。
移行プロセス¶
Postgresへの移行パスには、次の主な手順が含まれます。
どのデータベースオブジェクトとデータを移行に含めるかを決定して、移行プロセスを開始します。ソースシステムのアーキテクチャと実装の確かな知識を持った人を含む移行チームを形成します。
潜在的な移行の問題を特定します。OracleからEDBPostgresAdvancedServerへの移行の場合、詳細については、`EnterpriseDB文書<<ahref="https://www.enterprisedb.com/edb-docs/p/edb-postgres-advanced-server">https://www.enterprisedb.com/edb-docs/p/edb-postgres-advanced-server</a>>`_を参照してください。EDBPostgresAdvancedServerでサポートされている互換性機能。このレビューを支援するために、EnterpriseDBの移行評価サービスの使用を検討してください。
移行環境を準備します。必要なソフトウェアを入手してインストールし、サーバー間の接続を確立します。
移行にラージのデータが含まれる場合は、データを移動する前にスキーマ定義を移行することを検討してスキーマ。DDL移行の結果を確認し、移行の概要で報告された問題を解決します。 移行エラーセクション このドキュメントの移行問題の解決に関する情報を含みます。
データを移行します。小さいデータセットの場合は、MigrationToolkitを使用します。(EDBPostgresAdvancedServerへの)オラクル移行であり、データセットがラージ場合、またはデータ転送が遅いことに気付いた場合は、利用可能な他のデータ移動方法のいずれかを利用してください。
オラクルデータベースと互換性のあるEDBPostgresAdvancedServerデータベースリンク機能を使用します。
データにBLOBまたはCLOBデータがある場合、オラクルスタイルのデータベースリンクではなくdblink_oraスタイルのデータベースリンクを使用します。
これらのメソッドはどちらもオラクルCallInterface(OCI)を使用してオラクルに接続します。接続後、SQLステートメントを使用して「リンクされた」オラクルデータベースからデータを選択し、EDBPostgresAdvancedServerデータベースにデータを挿入します。
データ移行の結果を確認し、移行の概要で報告された問題を解決します。
新しく移行されたPostgresデータベースで動作するようにアプリケーションを変換します。JDBCやODBCなどのオープン標準接続を使用するアプリケーションでは、通常、データベースコネクション文字列の変更とEnterpriseDBドライバの選択のみが必要です。 アプリケーションをPostgresに接続する を参照してください。
システムのパフォーマンスをテストし、新しいサーバーを調整します。EDBPostgresAdvancedServerデータベースに移行する場合、EDBPostgresAdvancedServerのパフォーマンスチューニングユーティリティを利用してください。
Dynatuneを使用して、データベース構成リソースを動的に調整します。使用して、クエリーのパスを指示する
Optimizer Hints。ANALYZEコマンドを使用して、データベース統計を取得します。
EDBPostgresAdvancedServerGuide*および*Database**Compatibility**for**オラクル**Developer's**Guide (どちらもEnterpriseDBウェブサイトから入手可能)は、EDBPostgresAdvancedServerで利用可能なパフォーマンスチューニングツールに関する情報を提供します。
アプリケーションをPostgresに接続する¶
クライアントアプリケーションを変換してPostgresデータベースを使用するには、接続プロパティを変更して新しいターゲットデータベースを指定する必要があります。Javaアプリケーションの場合、JDBCドライバ名前( Class.forName )およびJDBCURLを変更します。
オラクルで実行されている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 Data Source AdministratorへのリンクについてはAdministrative Toolsメニューを確認してください。Addボタンをクリックして、Create New Data Sourceウィザードをスタートします。ダイアログを完了して、新しいターゲットデータソースを定義します。
新しいデータソースを使用するようにアプリケーションを変更します。
アプリケーションには、 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
アプリケーションとサーバー間の接続を確立した後、アプリケーションをテストして、アプリケーションと移行されたスキーマ間の互換性の問題を見つけます。ほとんどの場合、シンプル変更により、アプリケーションで発生する非互換性が解決されます。機能がサポートされていない場合は、回避策またはサードパーティのツールを使用して、アプリケーションに必要な機能を提供してください。一般的な問題とその回避策については、 MigrationErrors を参照してください。