

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

# を使用した Oracle Database から Amazon RDS for Oracle への移行 AWS Schema Conversion Tool
<a name="CHAP_Source.Oracle.ToRDSOracle"></a>

Oracle スキーマとコードを Amazon RDS for Oracle に移行する際は以下の点を考慮してください。
+ AWS SCT は、オブジェクトツリーにディレクトリオブジェクトを追加できます。*ディレクトリオブジェクト*は、それぞれがサーバーのファイルシステムの物理ディレクトリを表す論理構造です。ディレクトリオブジェクトは、DBMS\_LOB、UTL\_FILE、DBMS\_FILE\_TRANSFER、DATAPUMP ユーティリティなどのパッケージで使用できます。
+ AWS SCT は、Oracle テーブルスペースの Amazon RDS for Oracle DB インスタンスへの変換をサポートしています。Oracle は、論理的にはテーブルスペースに、物理的には対応するテーブルスペースに関連付けられたデータファイルに、データを保存します。Oracle では、テーブルスペースとデータファイル名を作成できます。Amazon RDS は、データファイル、ログファイル、およびコントロールファイルに対してのみ Oracle マネージドファイル (OMF) をサポートしています。 は、変換中に必要なデータファイル AWS SCT を作成します。
+ AWS SCT は、サーバーレベルのロールと権限を変換できます。Oracle データベースエンジンではロールベースのセキュリティを使用します。ロールとは、ユーザーに対して付与または取り消すことができる権限のコレクションです。Amazon RDS の事前に定義されたロールは DBA といい、通常、Oracle データベースエンジンに対するすべての管理権限が許可されています。次の権限は、Oracle エンジンを利用する Amazon RDS DB インスタンスの DBA ロールでは使用できません。
  + データベースの変更
  + システムの変更
  + ディレクトリの作成
  + 権限の付与
  + ロールの付与
  + 外部ジョブの作成

  その他の権限 (例: 高度なフィルタリングや列に関する権限) をすべて Amazon RDS for Oracle ユーザーロールに付与することができます。
+ AWS SCT では、Oracle ジョブを Amazon RDS for Oracle で実行できるジョブに変換できます。この変換には、次のモノを含むいくつかの制限があります。
  + 実行ジョブはサポートされていません。
  + ANYDATA データ型を引数として使用するスケジュールジョブはサポートされていません。
+ Oracle Real Application Clusters (RAC) One Node は、Oracle Database 11g Release 2 とともに導入された Oracle Database Enterprise Edition のオプションです。Amazon RDS for Oracle は RAC 機能をサポートしていません。可用性を高めるには Amazon RDS マルチ AZ を使用してください。

  Amazon RDS のマルチ AZ 配置では、異なるアベイラビリティーゾーンに同期スタンバイレプリカが自動的にプロビジョニングされて維持されます。プライマリ DB インスタンスは、同期的にアベイラビリティーゾーン間でスタンバイレプリカにレプリケートされます。この機能により、データの冗長性が確保されて I/O のフリーズがなくなり、システムバックアップ時のレイテンシー急上昇が最小限に抑えられます。
+ Oracle Spatial は、Oracle データベースのストレージ、取得、更新、および spatial データコレクションのクエリを可能にする SQL スキーマと機能を提供します。Oracle Locator は、インターネットとワイヤレスベースのアプリケーションをサポートするために一般的に必要な機能とパートナーベースの GIS ソリューションを提供します。Oracle Locator は Oracle Spatial の制限付きのサブネットです。

  Oracle Spatial 機能や Oracle Locator 機能を使用するには、SPATIAL オプションまたは LOCATOR オプション (相互に排他的) を DB インスタンスのオプショングループに追加します。

  Amazon RDS for Oracle DB インスタンスで Oracle Spatial および Oracle Locator を使用するには、いくつかの前提条件を満たす必要があります。
  + インスタンスで Oracle Enterprise Edition バージョン 12.1.0.2.v6 以降、または 11.2.0.4.v10 以降が実行されていること。
  + インスタンスが Virtual Private Cloud (VPC) 内にあること。
  + インスタンスの DB インスタンスクラスが Oracle 機能をサポート可能であること。例えば、Oracle Spatial は、db.m1.small、db.t1.micro、db.t2.micro、または db.t2.small の DB インスタンスクラスではサポートされません。詳細については、「[DB インスタンスクラスの Oracle のサポート](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/CHAP_Oracle.html#Oracle.Concepts.InstanceClasses)」を参照してください。
  + インスタンスで、マイナーバージョン自動アップグレードが有効化されていること。CVSS スコアが 9 以上、またはその他のセキュリティの脆弱性が報告されている場合には、Amazon RDS によって DB インスタンスが最新の Oracle PSU に更新されます。詳細については、次を参照してください。

    [ Oracle DB インスタンスの設定](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ModifyInstance.Oracle.html#USER_ModifyInstance.Oracle.Settings)
  + DB インスタンスが バージョン 11.2.0.4.v10 以降の場合には、XMLDB オプションをインストールする必要があります。詳細については、以下を参照してください。

    [Oracle XML DB](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.Options.XMLDB.html)。
  + Oracle の Oracle Spatial ライセンスが付与されていること。詳細については、Oracle ドキュメントの [Oracle Spatial and Graph](https://shop.oracle.com/apex/product?p1=OracleSpatialandGraph) を参照してください。
+ Data Guard は、Oracle Database Enterprise Edition に含まれています。可用性を高めるには Amazon RDS マルチ AZ 機能を使用してください。

  Amazon RDS のマルチ AZ 配置では、異なるアベイラビリティーゾーンに同期スタンバイレプリカが自動的にプロビジョニングされて維持されます。プライマリ DB インスタンスは、同期的にアベイラビリティーゾーン間でスタンバイレプリカにレプリケートされます。この機能により、データの冗長性が確保されて I/O のフリーズがなくなり、システムバックアップ時のレイテンシー急上昇が最小限に抑えられます。
+ AWS SCT は、Amazon RDS for Oracle への移行時に Oracle DBMS\_SCHEDULER オブジェクトの変換をサポートしています。 AWS SCT 評価レポートは、スケジュールオブジェクトを変換できるかどうかを示します。Amazon RDS でのスケジュールオブジェクトの使用の詳細については、[Amazon RDS のドキュメント](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.System.html#Appendix.Oracle.CommonDBATasks.ModifyScheduler)を参照してください。
+ Oracle から Amazon RDS for Oracle の変換では、DB リンクがサポートされます。データベースリンクは、別のデータベースのオブジェクトにアクセスできるようにする、1 つのデータベース内のスキーマオブジェクトです。もう 1 つのデータベースは Oracle データベースである必要はありません。ただし、Oracle 以外のデータベースにアクセスするには、Oracle Heterogeneous Services を使用する必要があります。

  データベースリンクを作成したら、そのリンクを SQL ステートメントで使用して、他のデータベースのテーブル、ビュー、および PL/SQL オブジェクトを参照できます。データベースリンクを使用するには、テーブル、ビュー、または PL/SQL オブジェクトの名前に `@dblink` を追加します。他のデータベースのテーブルまたはビューには、SELECT ステートメントを使用してクエリを実行できます。Oracle データベースリンクの使用の詳細については、[Oracle のドキュメント](https://docs.oracle.com/cd/B28359_01/server.111/b28310/ds_concepts002.htm#ADMIN12083)を参照してください。

  Amazon RDS でのデータベースリンクの使用の詳細については、[Amazon RDS のドキュメント](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.Oracle.CommonDBATasks.Database.html#Appendix.Oracle.CommonDBATasks.DBLinks)を参照してください。
+  AWS SCT 評価レポートには、変換のサーバーメトリクスが表示されます。Oracle インスタンスに関するこれらのメトリクスには、次のようなものがあります。
  + ターゲット DB インスタンスのコンピューティング能力とメモリ容量。
  + サポートされていない Oracle 機能や、Amazon RDS でサポートされていない Real Application Clusters。
  + ディスク読み取り/書き込み負荷
  + ディスク合計の平均スループット
  + サーバー情報 (例: サーバー名、OS、ホスト名、文字セット)。

## ターゲットとして RDS for Oracle を使用する場合の権限
<a name="CHAP_Source.Oracle.ToRDSOracle.ConfigureTarget"></a>

Amazon RDS for Oracle に移行するには、権限のあるデータベースユーザーを作成します。次のコード例を使用できます。

```
CREATE USER {{user_name}} IDENTIFIED BY {{your_password}};

-- System privileges
GRANT DROP ANY CUBE BUILD PROCESS TO {{user_name}};
GRANT ALTER ANY CUBE TO {{user_name}};
GRANT CREATE ANY CUBE DIMENSION TO {{user_name}};
GRANT CREATE ANY ASSEMBLY TO {{user_name}};
GRANT ALTER ANY RULE TO {{user_name}};
GRANT SELECT ANY DICTIONARY TO {{user_name}};
GRANT ALTER ANY DIMENSION TO {{user_name}};
GRANT CREATE ANY DIMENSION TO {{user_name}};
GRANT ALTER ANY TYPE TO {{user_name}};
GRANT DROP ANY TRIGGER TO {{user_name}};
GRANT CREATE ANY VIEW TO {{user_name}};
GRANT ALTER ANY CUBE BUILD PROCESS TO {{user_name}};
GRANT CREATE ANY CREDENTIAL TO {{user_name}};
GRANT DROP ANY CUBE DIMENSION TO {{user_name}};
GRANT DROP ANY ASSEMBLY TO {{user_name}};
GRANT DROP ANY PROCEDURE TO {{user_name}};
GRANT ALTER ANY PROCEDURE TO {{user_name}};
GRANT ALTER ANY SQL TRANSLATION PROFILE TO {{user_name}};
GRANT DROP ANY MEASURE FOLDER TO {{user_name}};
GRANT CREATE ANY MEASURE FOLDER TO {{user_name}};
GRANT DROP ANY CUBE TO {{user_name}};
GRANT DROP ANY MINING MODEL TO {{user_name}};
GRANT CREATE ANY MINING MODEL TO {{user_name}};
GRANT DROP ANY EDITION TO {{user_name}};
GRANT CREATE ANY EVALUATION CONTEXT TO {{user_name}};
GRANT DROP ANY DIMENSION TO {{user_name}};
GRANT ALTER ANY INDEXTYPE TO {{user_name}};
GRANT DROP ANY TYPE TO {{user_name}};
GRANT CREATE ANY PROCEDURE TO {{user_name}};
GRANT CREATE ANY SQL TRANSLATION PROFILE TO {{user_name}};
GRANT CREATE ANY CUBE TO {{user_name}};
GRANT COMMENT ANY MINING MODEL TO {{user_name}};
GRANT ALTER ANY MINING MODEL TO {{user_name}};
GRANT DROP ANY SQL PROFILE TO {{user_name}};
GRANT CREATE ANY JOB TO {{user_name}};
GRANT DROP ANY EVALUATION CONTEXT TO {{user_name}};
GRANT ALTER ANY EVALUATION CONTEXT TO {{user_name}};
GRANT CREATE ANY INDEXTYPE TO {{user_name}};
GRANT CREATE ANY OPERATOR TO {{user_name}};
GRANT CREATE ANY TRIGGER TO {{user_name}};
GRANT DROP ANY ROLE TO {{user_name}};
GRANT DROP ANY SEQUENCE TO {{user_name}};
GRANT DROP ANY CLUSTER TO {{user_name}};
GRANT DROP ANY SQL TRANSLATION PROFILE TO {{user_name}};
GRANT ALTER ANY ASSEMBLY TO {{user_name}};
GRANT CREATE ANY RULE SET TO {{user_name}};
GRANT ALTER ANY OUTLINE TO {{user_name}};
GRANT UNDER ANY TYPE TO {{user_name}};
GRANT CREATE ANY TYPE TO {{user_name}};
GRANT DROP ANY MATERIALIZED VIEW TO {{user_name}};
GRANT ALTER ANY ROLE TO {{user_name}};
GRANT DROP ANY VIEW TO {{user_name}};
GRANT ALTER ANY INDEX TO {{user_name}};
GRANT COMMENT ANY TABLE TO {{user_name}};
GRANT CREATE ANY TABLE TO {{user_name}};
GRANT CREATE USER TO {{user_name}};
GRANT DROP ANY RULE SET TO {{user_name}};
GRANT CREATE ANY CONTEXT TO {{user_name}};
GRANT DROP ANY INDEXTYPE TO {{user_name}};
GRANT ALTER ANY OPERATOR TO {{user_name}};
GRANT CREATE ANY MATERIALIZED VIEW TO {{user_name}};
GRANT ALTER ANY SEQUENCE TO {{user_name}};
GRANT DROP ANY SYNONYM TO {{user_name}};
GRANT CREATE ANY SYNONYM TO {{user_name}};
GRANT DROP USER TO {{user_name}};
GRANT ALTER ANY MEASURE FOLDER TO {{user_name}};
GRANT ALTER ANY EDITION TO {{user_name}};
GRANT DROP ANY RULE TO {{user_name}};
GRANT CREATE ANY RULE TO {{user_name}};
GRANT ALTER ANY RULE SET TO {{user_name}};
GRANT CREATE ANY OUTLINE TO {{user_name}};
GRANT UNDER ANY TABLE TO {{user_name}};
GRANT UNDER ANY VIEW TO {{user_name}};
GRANT DROP ANY DIRECTORY TO {{user_name}};
GRANT ALTER ANY CLUSTER TO {{user_name}};
GRANT CREATE ANY CLUSTER TO {{user_name}};
GRANT ALTER ANY TABLE TO {{user_name}};
GRANT CREATE ANY CUBE BUILD PROCESS TO {{user_name}};
GRANT ALTER ANY CUBE DIMENSION TO {{user_name}};
GRANT CREATE ANY EDITION TO {{user_name}};
GRANT CREATE ANY SQL PROFILE TO {{user_name}};
GRANT ALTER ANY SQL PROFILE TO {{user_name}};
GRANT DROP ANY OUTLINE TO {{user_name}};
GRANT DROP ANY CONTEXT TO {{user_name}};
GRANT DROP ANY OPERATOR TO {{user_name}};
GRANT DROP ANY LIBRARY TO {{user_name}};
GRANT ALTER ANY LIBRARY TO {{user_name}};
GRANT CREATE ANY LIBRARY TO {{user_name}};
GRANT ALTER ANY MATERIALIZED VIEW TO {{user_name}};
GRANT ALTER ANY TRIGGER TO {{user_name}};
GRANT CREATE ANY SEQUENCE TO {{user_name}};
GRANT DROP ANY INDEX TO {{user_name}};
GRANT CREATE ANY INDEX TO {{user_name}};
GRANT DROP ANY TABLE TO {{user_name}};
GRANT SELECT_CATALOG_ROLE TO {{user_name}};
GRANT SELECT ANY SEQUENCE TO {{user_name}};

-- Database Links
GRANT CREATE DATABASE LINK TO {{user_name}};
GRANT CREATE PUBLIC DATABASE LINK TO {{user_name}};
GRANT DROP PUBLIC DATABASE LINK TO {{user_name}};


-- Server Level Objects (directory)
GRANT CREATE ANY DIRECTORY TO {{user_name}};
GRANT DROP ANY DIRECTORY TO {{user_name}};
-- (for RDS only)
GRANT EXECUTE ON RDSADMIN.RDSADMIN_UTIL TO {{user_name}};

-- Server Level Objects (tablespace)
GRANT CREATE TABLESPACE TO {{user_name}};
GRANT DROP TABLESPACE TO {{user_name}};

-- Server Level Objects (user roles)
/* (grant source privileges with admin option or convert roles/privs as DBA) */

-- Queues
grant execute on DBMS_AQADM to {{user_name}};
grant aq_administrator_role to {{user_name}};

-- for Materialized View Logs creation
GRANT SELECT ANY TABLE TO {{user_name}};

-- Roles
GRANT RESOURCE TO {{user_name}};
GRANT CONNECT TO {{user_name}};
```

前述の例では、[{{user\_name}}] をお客様の設定のユーザー名に置き換えます。{{your\_password}} を安全なパスワードに置き換えます。

## Oracle から Amazon RDS for Oracle に変換する際の制限
<a name="CHAP_Source.Oracle.ToRDSOracle.Limitations"></a>

Oracle スキーマとコードを Amazon RDS for Oracle に移行する際に考慮する必要のある制限の一部を以下に示します。
+  Amazon RDS の事前に定義されたロールは DBA といい、通常、Oracle データベースエンジンに対するすべての管理権限が許可されています。次の権限は、Oracle エンジンを利用する Amazon RDS DB インスタンスの DBA ロールでは使用できません。
  + データベースの変更
  + システムの変更
  + ディレクトリの作成
  + 権限の付与
  + ロールの付与
  + 外部ジョブの作成

  Oracle RDS ユーザーロールに他のすべての権限を付与できます。
+ Amazon RDS for Oracle では、従来の監査、DBMS\_FGA パッケージを使用した詳細な監査、および Oracle 統合監査がサポートされています。
+ Amazon RDS for Oracle は、変更データキャプチャ (CDC) をサポートしていません。データベースの移行中または移行後に CDC を行うには、 AWS Database Migration Serviceを使用します。