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