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

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

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

作成者: Pinesh Singal (AWS)

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

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

ターゲット: Amazon RDS PostgreSQL

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

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

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

AWS サービス: Amazon EC2、Amazon RDS

[概要]

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

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

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

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

前提条件と制限

前提条件

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

  • オペレーティングシステム (Windows または Mac) または Amazon EC2インスタンス (起動および実行) 

  • Orafce

機能制限

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

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

製品バージョン

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

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

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

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

アーキテクチャ

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

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

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

  • バージョン 11SQL.5 の Amazon RDS for PostgreSQL または Aurora Postgre 互換データベースインスタンス

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

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

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

  2. aws_oracle_ext および orafce拡張パックAWSSCTで を使用して、ソースコードを Oracle から Postre に変換しますSQL。

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

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

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

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

ツール

ツール

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 ソースデータベースから前述のターゲットのいずれかに移行できます。を使用するとAWSSCT、スキーマ、ビュー、ストアドプロシージャ、関数などのソースデータベースオブジェクト定義をエクスポートできます。 

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

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

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

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

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

その他のツール

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

コード

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

エピック

タスク説明必要なスキル

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

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

全般AWS、 DBA

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

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

全般 AWS

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

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

全般AWS、 DBA

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

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

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

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

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

全般AWS、 DBA

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

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

全般 AWS

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

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

全般AWS、 DBA

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

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

DBA

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

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

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

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

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

DBA

を設定しますAWSSCT。

Oracle (JDBC) および PostgreSQL () 用の Java Database Connectivity (ojdbc8.jar) ドライバーAWSSCTを使用して を設定しますpostgresql-42.2.5.jar

DBA

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

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

DBA

スキーマを変換します。

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

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

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

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

DBA

コードを検証

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

DBA

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

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

DBA

関連リソース

追加情報

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

添付ファイル

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