

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

# Oracle SQL Developer と AWS SCT を使用して Amazon RDS for Oracle から Amazon RDS for PostgreSQL に段階的に移行
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct"></a>

*Amazon Web Services、Pinesh Singal*

## 概要
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-summary"></a>

多くの移行策略やアプローチは、複数のフェーズに分かれて、数週間から数ヶ月間かかることもあります。この間、PostgreSQL DB インスタンスに移行するソース Oracle DB インスタンスのパッチ適用またはアップグレードが原因で、遅延が発生する可能性があります。このような状況を回避するには、残りの Oracle データベースコードを PostgreSQL データベースコードに段階的に移行することを推奨します。

このパターンでは、最初の移行後に多数のトランザクションが実行される、そして PostgreSQL データベースに移行する必要があるマルチテラバイトの Oracle DB インスタンスに対して、ダウンタイムのない、段階的な移行戦略を提供します。このパターンのステップバイステップのアプローチを使用すれば、 Amazon Web Services (AWS) マネジメントコンソールにサインインする必要なく、Oracle DB インスタンスのAmazon Relational Database Service (Amazon RDS) を Amazon RDS for PostgreSQL インスタンスに段階的に移行できます。

このパターンでは、「[Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html)」 を使用して、ソース Oracle データベース内の二つのスキーマの差分を見つけます。次に、AWS Schema Conversion Tool (AWS SCT) を使用して、 Amazon RDS for Oracle データベーススキーマオブジェクトを Amazon RDS for PostgreSQL データベーススキーマオブジェクトに変換します。次に、Windows コマンドプロンプトで Python スクリプトを実行して、ソースデータベースオブジェクトへの段階的な変更のために AWS SCT オブジェクトを作成します。

**注記**  
本番環境のワークロードを移行する前に、テスト環境または非本稼働環境で、このパターンのアプローチの概念実証 (PoC) を実行することを推奨します。

## 前提条件と制限事項
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-prereqs"></a>

**前提条件**
+ アクティブなAWS アカウント
+ 既存の Amazon RDS for Oracle DB インスタンス。 
+ 既存の Amazon RDS for PostgreSQL DB インスタンス。
+ AWS SCT、Oracle および PostgreSQL データベースエンジンの JDBC ドライバーにインストールされ、設定されたAWS SAWS SCT。これの詳細については、AWS SCT ドキュメントの「[AWS SCTをインストール](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.Procedure)」 、および「[必要なデータベースドライバーをインストール](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Installing.html#CHAP_Installing.JDBCDrivers)」 を参照してください。 
+ インストール、設定されたOracle SQL Developer。これの詳細については、「[Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html)」 ドキュメントを参照してください。 
+ ローカルのコンピュータにダウンロードされた、`incremental-migration-sct-sql.zip` ファイル(添付)。

機能制限
+ ソースである Amazon RDS for Oracle DB インスタンスの最小要件は次のとおりです:
  + Enterprise、Standard、Standard One、Standard Two エディションの、10.2 以降 (バージョン 10.x)、11g (バージョン 11.2.0.3.v1 以降)、および12.2、18c までのOracle バージョン 
+ ターゲット Amazon RDS for PostgreSQL DB インスタンスの最小要件は次のとおりです： 
  + PostgreSQL バージョン 9.4 以降 (バージョン 9.x 用)、10.x、11.x。
+ このパターンでは、Oracle SQL Developer を使用します。他のツールを使用してスキーマの差分を見つけてエクスポートすると、結果が異なる場合があります。
+ [Oracle SQL Developer より生成される 「SQL スクリプト](https://docs.oracle.com/database/121/AEUTL/sql_rep.htm#AEUTL191)」では、変換エラーが発生する可能性があるため、手動で移行を行う必要があります。
+ AWS SCT のソースとターゲットのテスト接続が失敗した場合、着信トラフィックを受け入れるために、JDBC ドライバーバージョンと Virtual Private Cloud (VPC) セキュリティグループの受信ルールを設定することを確保します。

**製品バージョン**
+ Amazon RDS for Oracle DB インスタンスバージョン 12.1.0.2 (バージョン 10.2 以降)
+ Amazon RDS for PostgreSQL DB インスタンスバージョン 11.5 (バージョン 9.4 以降)
+ Oracle SQL Developer バージョン 19.1 以降
+ AWS SCT バージョン 1.0.632 以降

## アーキテクチャ
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-architecture"></a>

**ソーステクノロジースタック**
+ Amazon RDS for Oracle DB インスタンス

**ターゲットテクノロジースタック**
+ Amazon RDS for PostgreSQL インスタンス

**ソースアーキテクチャとターゲットアーキテクチャ**

次の図表は、Amazon RDS for Oracle DB インスタンスを Amazon RDS for PostgreSQL DB インスタンスに移行する方法を示しています。

![Amazon RDS for Oracle から Amazon RDS for PostgreSQL への移行ワークフローです。](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/c7eed517-e496-4e8e-a520-c1e43397419e/images/bfbbed5e-db13-4a22-99aa-1a17f00f5faf.png)


この図表は、次の移行ワークフローを示しています：

1. Oracle SQL Developer を開き、ソースデータベースとターゲットデータベースに接続します。

1. 「[差分レポート](https://docs.oracle.com/cd/E93130_01/rules_palette/Content/Diff%20Reports/Detailed_Diff_Reports.htm)」 を生成し、次医スキーマ差分オブジェクトの SQL スクリプトファイルを生成します。差分レポートの詳細については、Oracle ドキュメントの「[詳細な差分レポート](https://docs.oracle.com/cd/E93130_01/rules_palette/Content/Diff%20Reports/Detailed_Diff_Reports.htm)」 を参照してください。

1. AWS SCT を設定し、Python コードを実行します。

1. SQL スクリプトファイルは Oracle から PostgreSQL に変換します。

1. ターゲット PostgreSQL DB インスタンスで SQL スクリプトファイルを実行します。 

**自動化とスケール**

Python スクリプトに、1 つのプログラム内の複数の機能に関するパラメータやセキュリティ関連の変更を追加することで、この移行を自動化できます。

## ツール
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-tools"></a>
+ 「[AWS SCT](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Welcome.html)」 — AWS Schema Conversion Tool (AWS SCT) は、既存のデータベーススキーマをあるデータベースエンジンから別のデータベースエンジンに変換します。
+ 「[Oracle SQL Developer](https://www.oracle.com/database/technologies/appdev/sqldeveloper-landing.html)」 — Oracle SQL Developer は、従来のデプロイメントとクラウドベースのデプロイメントの両方で Oracle データベースの開発と管理を簡素化する統合開発環境 (IDE) です。

**Code **

`incremental-migration-sct-sql.zip` ファイル (添付) には、このパターンの完全なソースコードが含まれています。

## エピック
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-epics"></a>

### ソースデータベースのスキーマの差分に対応する SQL スクリプトファイルを作成します。
<a name="create-the-sql-scripts-file-for-the-source-database-schema-differences"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| Oracle SQL Developer でデータベース差分を実行します。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.html) | DBA | 
| SQL スクリプトファイルを生成します。 | **スクリプトを生成**を選択して、SQL ファイルで差分を生成します。 <br />これにより、AWS SCT がデータベースを Oracle から PostgreSQL に変換するために使用する SQL スクリプトファイルが生成されます。 | DBA | 

### Python スクリプトを使用して、AWS SCT にターゲット DB オブジェクトを作成します。
<a name="use-the-python-script-to-create-the-target-db-objects-in-aws-sct"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| Windows コマンドプロンプトを使用して AWS SCT を設定します。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.html)<pre>#source_vendor,source_hostname,source_dbname,source_user,source_pwd,source_schema,source_port,source_sid,target_vendor,target_hostname,target_user,target_pwd,target_dbname,target_port<br /><br />ORACLE,myoracledb.cokmvis0v46q.us-east-1.rds.amazonaws.com,ORCL,orcl,orcl1234,orcl,1521,ORCL,POSTGRESQL,mypgdbinstance.cokmvis0v46q.us-east-1.rds.amazonaws.com,pguser,pgpassword,pgdb,5432</pre>4. 要件に応じて AWS SCT 設定パラメータを変更し、SQL スクリプトファイルを `input` サブディレクトリの作業ディレクトリにコピーします。 | DBA | 
|  Python スクリプトを実行します。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct.html) | DBA | 
|  Amazon RDS for PostgreSQL でオブジェクトを作成 | SQL ファイルを実行し、Amazon RDS for PostgreSQL DB インスタンスにオブジェクトを作成します。 | DBA | 

## 関連リソース
<a name="incrementally-migrate-from-amazon-rds-for-oracle-to-amazon-rds-for-postgresql-using-oracle-sql-developer-and-aws-sct-resources"></a>
+ [Amazon RDS 上の Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html) 
+ 「[Amazon RDS 上の PostgreSQL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_PostgreSQL.html)」 
+ 「[AWS SCT ユーザーインターフェイスの使用](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_UserInterface.html)」 
+ 「[ AWS SCTのソースとしての Oracle の使用](https://docs.aws.amazon.com/SchemaConversionTool/latest/userguide/CHAP_Source.Oracle.html)」

## アタッチメント
<a name="attachments-c7eed517-e496-4e8e-a520-c1e43397419e"></a>

このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「[attachment.zip](samples/p-attach/c7eed517-e496-4e8e-a520-c1e43397419e/attachments/attachment.zip)」