拡張機能を使用して Oracle ネイティブ関数を PostgreSQL に移行する - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

拡張機能を使用して Oracle ネイティブ関数を PostgreSQL に移行する

作成者: Pinesh Singal (AWS)

環境:PoC またはパイロット

ソース:データベース:リレーショナル

ターゲット: Amazon RDS PostgreSQL

Rタイプ: リアーキテクト

ワークロード:Oracle、オープンソース

テクノロジー:データベース、移行

AWS サービス: Amazon EC2、Amazon RDS

[概要]

この移行パターンは、 aws_oracle_extおよび orafce拡張機能を Postgre step-by-step () ネイティブ組み込みコードに変更することで、Oracle データベースインスタンスの Amazon Relational Database Service (Amazon RDSpsql) を Amazon RDS for PostgreSQL または Amazon Aurora PostgreSQL 互換エディションデータベースに移行するための SQL ガイダンスを提供します。これにより、処理時間を節約します。

このパターンでは、トランザクション数が多いマルチテラバイトの Oracle ソースデータベースを、ダウンタイムなしでオフラインで手動で移行する方法を示しています。

移行プロセスでは、 aws_oracle_ext および orafce拡張機能で AWS Schema Conversion Tool (AWS SCT) を使用して、Amazon RDS for Oracle データベーススキーマを Amazon RDS for PostgreSQL または Aurora PostgreSQL 互換データベーススキーマに変換します。その後、コードは手動で PostgreSQL がサポートするネイティブpsql組み込みコードに変更されます。これは、拡張機能呼び出しが PostgreSQL データベースサーバーのコード処理に影響するためであり、すべての拡張機能コードが完全に苦情を申し立てたり、PostgreSQL コードと互換性があるわけではありません。

このパターンは、主に SQL と拡張機能 aws_oracle_extおよび を使用した SCT AWS コードの手動移行に焦点を当てていますorafce。既に使用されている拡張機能をネイティブ PostgreSQL (psql) 組み込みに変換します。次に、拡張の参照をすべて削除し、それに応じてコードを変換します。

前提条件と制限

前提条件

  • アクティブな AWS アカウント 

  • オペレーティングシステム (Windows または Mac) または Amazon EC2 インスタンス (稼働中) 

  • Orafce

機能制限

aws_oracle_ext または orafce拡張機能を使用するすべての Oracle 関数をネイティブ PostgreSQL 関数に変換できるわけではありません。PostgreSQL ライブラリでコンパイルするには、手動による再作業が必要になる場合があります。

AWS SCT 拡張機能を使用する欠点の 1 つは、結果の実行と取得のパフォーマンスが遅いことです。そのコストは、添付のドキュメントのパフォーマンス比較チェックセクションで説明されているようにaws_oracle_ext、Oracle SYSDATE関数の PostgreSQL 関数への移行に関するシンプルな PostgreWord EXPLAIN プラン (ステートメントの実行プラン) から 3 つのコードすべて (、orafcepsqlデフォルト) 間の PostgreSQL NOW()関数への移行から理解できます。

製品バージョン

  • ソース: Enterprise Edition、Standard Edition、Standard Edition 1、Standard Edition 2 の Amazon RDS for Oracle Database 10.2 以降 (10.x の場合)、11g (11.2.0.3.v1 以降)、および最大 12.2、18c、および 19c (以降)

  • ターゲット: Amazon RDS for PostgreSQL または Aurora PostgreSQL 互換データベース 9.4 以降 (9.x の場合)、10.x、11.x、12.x、13.x、14.x (およびそれ以降)

  • AWSSCT: 最新バージョン (このパターンは 1.0.632 でテスト済み)

  • Orafce: 最新バージョン (このパターンは 3.9.0 でテスト済です)

アーキテクチャ

ソーステクノロジースタック

  • バージョン 12.1.0.2.v18 の Amazon RDS for Oracle データベースインスタンス

ターゲットテクノロジースタック

  • バージョン 11.5 の Amazon RDS for PostgreSQL または Aurora PostgreSQL 互換データベースインスタンス

データベース移行アーキテクチャ

次の図は、ソース Oracle データベースとターゲット PostgreSQL データベース間のデータベース移行アーキテクチャを示しています。このアーキテクチャには、AWS Cloud、仮想プライベートクラウド (VPC)、アベイラビリティーゾーン、プライベートサブネット、Amazon RDS for Oracle データベース、AWS SCT、Amazon RDS for PostgreSQL または Aurora PostgreSQL 互換データベース、Oracle の拡張機能 (aws_oracle_ext および orafce)、構造化クエリ言語 (SQL) ファイルが含まれます。

このプロセスは、次のリストで説明されています。
  1. Amazon RDS for Oracle DB インスタンス (ソース DB) を起動します。

  2. aws_oracle_ext Word AWSSCT orafce拡張パックを使用して、ソースコードを Oracle から PostreSQL に変換します。

  3. この変換により、PostgreSQL でサポートされている移行された .sql ファイルが生成されます。

  4. 変換されていない Oracle 拡張コードを手動で PostgreSQL (psql) コードに変換します。

  5. 手動変換では、PostgreSQL でサポートされている変換された .sql ファイルが生成されます。

  6. これらの .sql ファイルを Amazon RDS for PostgreSQL DB インスタンス (ターゲット DB) で実行します。

ツール

ツール

AWS サービス

  • AWS SCT AWS Schema Conversion Tool (AWS SCT) は、既存のデータベーススキーマをあるデータベースエンジンから別のデータベースエンジンに変換します。リレーショナルオンライントランザクション処理 (OLTP) スキーマまたはデータウェアハウススキーマを変換できます。変換されたスキーマは、Amazon RDS for MySQL DB インスタンス、Amazon Aurora DB クラスター、Amazon RDS for PostgreSQL DB インスタンス、または Amazon Redshift クラスターに適しています。変換されたスキーマは、Amazon EC2 インスタンスのデータベースで使用することも、Amazon S3 バケットにデータとして保存することもできます。

    AWS SCTは、ソースデータベースのデータベーススキーマをターゲット Amazon RDS インスタンスと互換性のある形式に自動的に変換するプロジェクトベースのユーザーインターフェイスを提供します。 

    AWS を使用してSCT、Oracle ソースデータベースから前述のターゲットに移行できます。AWS SCT、スキーマ、ビュー、ストアドプロシージャ、関数などのソースデータベースオブジェクト定義をエクスポートできます。 

    AWS SCT を使用して、Oracle から Amazon RDS for PostgreSQL または Amazon Aurora PostgreSQL 互換エディションにデータを変換できます。 

    このパターンでは、AWS SCT を使用して Oracle コードを変換して PostgreSQL に移行aws_oracle_extorafce、拡張機能コードをpsqlデフォルトまたはネイティブの組み込みコードに手動で移行します。

  • AWS SCT拡張パックは、オブジェクトをターゲットデータベースに変換するために必要なソースデータベースに存在する関数をエミュレートするアドオンモジュールです。AWS SCTパックをインストールする前に、データベーススキーマを変換する必要があります。

    データベースまたはデータウェアハウススキーマを変換すると、AWS SCT はターゲットデータベースにスキーマを追加します。このスキーマは、変換されたスキーマをターゲットデータベースに書き込むときに必要なソースデータベースの SQL システム関数を実装します。この別のスキーマは、拡張パックスキーマと呼ばれます。

    OLTP データベースの拡張パックスキーマは、ソースデータベースに従って名前が付けられます。Oracle データベースの場合、拡張パックスキーマは AWS_ORACLE_EXT です。

その他のツール

  • Oracle」 — Oracle は Oracle 互換の関数、データ型、およびパッケージを実装するモジュールです。これは、誰でも使用できるバークレーソースディストリビューション (BSD) ライセンスを持つオープンソースツールです。このorafceモジュールは、PostgreSQL に多くの Oracle 関数が実装されているため、Oracle から PostgreSQL への移行に役立ちます。

コード

AWS SCT 拡張コードの使用を避けるために Oracle から PostgreSQL によく使用されるコードと移行されたコードのリストについては、添付のドキュメントを参照してください。

エピック

タスク説明必要なスキル

Oracle データベースインスタンスを作成します。

Amazon RDS コンソールから Amazon RDS for Oracle または Aurora PostgreSQL 互換データベースインスタンスを作成します。

一般的なAWS、DBA

セキュリティグループを設定します。

インバウンドとアウトバウンドのセキュリティグループを設定します。

一般的なAWS

データベースを作成します。

必要なユーザーとスキーマを使用して、Oracle データベースを作成します。

一般的なAWS、DBA

オブジェクトを作成します。

オブジェクトを作成し、スキーマにデータを挿入します。

DBA
タスク説明必要なスキル

PostgreSQL データベースインスタンスを作成します。

Amazon RDS コンソールから Amazon RDS for PostgreSQL または Amazon Aurora PostgreSQL データベースインスタンスを作成します。

一般的なAWS、DBA

セキュリティグループを設定します。

インバウンドとアウトバウンドのセキュリティグループを設定します。

一般的なAWS

データベースを作成します。

必要なユーザーとスキーマを使用して PostgreSQL データベースを作成します。

一般的なAWS、DBA

エクステンションを確認します。

aws_oracle_extorafceが PostgreSQL データベースに正しくインストールおよび設定されていることを確認します。

DBA

PostgreSQL データベースが使用可能であることを確認します。

PostgreSQL データベースが稼働していることを確認します。

DBA
タスク説明必要なスキル

AWS SCT をインストールします。

AWS SCT の最新バージョンをインストールします。

DBA

AWS SCT を設定します。

Oracle () AWS および PostgreSCT () 用の Java Database Connectivity (JDBCojdbc8.jar) ドライバーを使用して SQLWord を設定しますpostgresql-42.2.5.jar

DBA

AWS SCTパックまたはテンプレートを有効にします。

AWS SCT プロジェクト設定で、Oracle データベーススキーマの aws_oracle_extおよび orafce拡張機能を使用して組み込み関数の実装を有効にします。

DBA

スキーマを変換します。

AWS SCT、スキーマを変換を選択して Oracle から PostgreSQL に変換し、.sql ファイルを生成します。

DBA
タスク説明必要なスキル

コードを手動で変換します。

添付ドキュメントに詳述されているように、拡張適用のコードの各行を psql デフォルトのビルトインコードに手動で変換します。例えば、AWS_ORACLE_EXT.SYSDATE() または ORACLE.SYSDATE()NOW() に変更します。

DBA

コードを検証

(オプション) PostgreSQL データベースでコードを一時的に実行して、コードの各行を検証します。

DBA

PostgreSQL データベースにオブジェクトを作成します。

PostgreSQL データベースにオブジェクトを作成するには、AWS SCT によって生成され、前の 2 つのステップで変更された .sql ファイルを実行します。

DBA

関連リソース

追加情報

詳細については、添付文書のコードを手動で変換するための構文および例が付いた詳細なコマンドを参照してください。

添付ファイル

このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip