

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

# を使用した 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\$1LOB、UTL\$1FILE、DBMS\$1FILE\$1TRANSFER、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\$1SCHEDULER オブジェクトの変換をサポートしています。 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\$1name*] をお客様の設定のユーザー名に置き換えます。*your\$1password* を安全なパスワードに置き換えます。

## 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\$1FGA パッケージを使用した詳細な監査、および Oracle 統合監査がサポートされています。
+ Amazon RDS for Oracle は、変更データキャプチャ (CDC) をサポートしていません。データベースの移行中または移行後に CDC を行うには、 AWS Database Migration Serviceを使用します。