翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
拡張機能を使用して 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 プランorafce
、psql
デフォルト) 間の 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) ファイルが含まれます。
Amazon RDS for Oracle DB インスタンス (ソース DB) を起動します。
aws_oracle_ext
Word AWSSCTorafce
拡張パックを使用して、ソースコードを Oracle から PostreSQL に変換します。この変換により、PostgreSQL でサポートされている移行された .sql ファイルが生成されます。
変換されていない Oracle 拡張コードを手動で PostgreSQL (
psql
) コードに変換します。手動変換では、PostgreSQL でサポートされている変換された .sql ファイルが生成されます。
これらの .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_ext
しorafce
、拡張機能コードを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 |
エクステンションを確認します。 |
| DBA |
PostgreSQL データベースが使用可能であることを確認します。 | PostgreSQL データベースが稼働していることを確認します。 | DBA |
タスク | 説明 | 必要なスキル |
---|---|---|
AWS SCT をインストールします。 | AWS SCT の最新バージョンをインストールします。 | DBA |
AWS SCT を設定します。 | Oracle () AWS および PostgreSCT () 用の Java Database Connectivity (JDBC | DBA |
AWS SCTパックまたはテンプレートを有効にします。 | AWS SCT プロジェクト設定で、Oracle データベーススキーマの | DBA |
スキーマを変換します。 | AWS SCT、スキーマを変換を選択して Oracle から PostgreSQL に変換し、.sql ファイルを生成します。 | DBA |
タスク | 説明 | 必要なスキル |
---|---|---|
コードを手動で変換します。 | 添付ドキュメントに詳述されているように、拡張適用のコードの各行を | DBA |
コードを検証 | (オプション) PostgreSQL データベースでコードを一時的に実行して、コードの各行を検証します。 | DBA |
PostgreSQL データベースにオブジェクトを作成します。 | PostgreSQL データベースにオブジェクトを作成するには、AWS SCT によって生成され、前の 2 つのステップで変更された .sql ファイルを実行します。 | DBA |
関連リソース
データベース
AWS SCT
AWS SCT の拡張機能
追加情報
詳細については、添付文書のコードを手動で変換するための構文および例が付いた詳細なコマンドを参照してください。
添付ファイル
このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip」