

# RDS for Oracle DB インスタンスでのサードパーティーソフトウェアの使用
<a name="Oracle.Resources"></a>

ツールとサードパーティーソフトウェアをサポートする RDS for Oracle DB インスタンスをホストできます。

**Topics**
+ [Oracle GoldenGate と Amazon RDS for Oracle の使用](Appendix.OracleGoldenGate.md)
+ [Amazon RDS for Oracle での Oracle リポジトリ作成ユーティリティの使用](Oracle.Resources.RCU.md)
+ [Amazon EC2 インスタンスでの Oracle Connection Manager の設定](oracle-cman.md)
+ [Amazon RDS での Oracle への Siebel Database のインストール](Oracle.Resources.Siebel.md)

# Oracle GoldenGate と Amazon RDS for Oracle の使用
<a name="Appendix.OracleGoldenGate"></a>

Oracle GoldenGate は、データベース間でトランザクションデータを収集、レプリケート、管理します。このツールは、ログベースの変更データキャプチャ (CDC) であり、オンライントランザクション処理 (OLTP) システムのデータベースで使用されるレプリケーションソフトウェアパッケージです。Oracle GoldenGate によって、ソースデータベースで最近変更されたデータを含んでいるトレイルファイルが作成されます。次に、これらのファイルをサーバーにプッシュします。サーバーでは、プロセスがトレイルファイルを標準 SQL に変換してターゲットデータベースに適用します。

Oracle GoldenGate と RDS for Oracle では、次の機能をサポートしています。
+ アクティブ-アクティブデータベースレプリケーション
+ 災害対策
+ データ保護
+ リージョン内およびクロスリージョンレプリケーション
+ ダウンタイムのない移行とアップグレード
+ RDS for Oracle DB インスタンスと Oracle 以外のデータベース間のデータレプリケーション
**注記**  
サポートされているデータベースの一覧については、Oracle ドキュメントの「[Oracle Fusion Middleware Supported System Configurations](https://www.oracle.com/middleware/technologies/fusion-certification.html)」(Oracle Fusion ミドルウェアでサポートされているシステム設定) を参照してください。

RDS for Oracle で Oracle GoldenGate を使用して、Oracle Database のメジャーバージョンにアップグレードすることができます。例えば、Amazon RDS DB インスタンスで Oracle GoldenGate を使用して、Oracle Database 11g オンプレミスデータベースから Oracle Database 19c にアップグレードすることができます。

**Topics**
+ [Oracle GoldenGate でサポートされているバージョンとライセンスオプション](#Appendix.OracleGoldenGate.licensing)
+ [Oracle GoldenGate の要件と制限](#Appendix.OracleGoldenGate.requirements)
+ [Oracle GoldenGate アーキテクチャ](Appendix.OracleGoldenGate.Overview.md)
+ [Oracle GoldenGate のセットアップ](Appendix.OracleGoldenGate.setting-up.md)
+ [Oracle GoldenGate の EXTRACT ユーティリティと REPLICAT ユーティリティを使用する](Appendix.OracleGoldenGate.ExtractReplicat.md)
+ [Oracle GoldenGate のモニタリング](Appendix.OracleGoldenGate.Monitoring.md)
+ [Oracle GoldenGate のトラブルシューティング](Appendix.OracleGoldenGate.Troubleshooting.md)

## Oracle GoldenGate でサポートされているバージョンとライセンスオプション
<a name="Appendix.OracleGoldenGate.licensing"></a>

RDS for Oracle の Standard Edition 2 (SE2) または Enterprise Edition (EE) を Oracle GoldenGate バージョン 12c 以降と使用できます。Oracle GoldenGate の次の機能を使用できます。
+ Oracle GoldenGate Remote キャプチャ (抽出) がサポートされています。
+ キャプチャ (抽出) は、従来の非 CDB データベースアーキテクチャを使用する RDS for Oracle DB インスタンスでサポートされています。Oracle GoldenGate リモート PDB キャプチャは、Oracle Database 21c または Oracle Database 19c バージョン 19.0.0.0.ru-2024-04.rur-2024-04.r1 以降を実行している CDB でサポートされています。
+ Oracle GoldenGate Remote Delivery (replicat) は、非 CDB または CDB アーキテクチャを使用する RDS for Oracle DB インスタンスでサポートされています。Remote Delivery は、Integrated Replicat、Parallel Replicat、Coordinated Replicat、およびクラシック Replicat をサポートします。
+ RDS for Oracle は、Oracle GoldenGate のクラシックアーキテクチャとマイクロサービスアーキテクチャをサポートしています。
+ 統合キャプチャモードを使用する場合、Oracle GoldenGate DDL およびシーケンス値のレプリケーションがサポートされます。

お客様には、すべての AWS リージョン で Amazon RDS で使用するために、Oracle GoldenGate ライセンス (BYOL) を管理する責任があります。詳細については、「[RDS for Oracle のライセンスオプション](Oracle.Concepts.Licensing.md)」を参照してください。

## Oracle GoldenGate の要件と制限
<a name="Appendix.OracleGoldenGate.requirements"></a>

Oracle GoldenGate および RDS for Oracle を使用する場合、次の要件と制限を考慮してください。
+ ユーザーには、RDS for Oracle で使用するために Oracle GoldenGate を設定および管理する責任があります。
+ ユーザーには、ソースデータベースとターゲットデータベースで認定された Oracle GoldenGate バージョンを設定する責任があります。詳細については、Oracle ドキュメントの「[Oracle Fusion Middleware Supported System Configurations](https://www.oracle.com/middleware/technologies/fusion-certification.html)」を参照してください。
+ Oracle GoldenGate は、さまざまな AWS 環境でさまざまなユースケースに使用できます。Oracle GoldenGate に関するサポート関連の問題がある場合は、Oracle サポートサービスにお問い合わせください。
+ Oracle Transparent Data Encryption (TDE) を使用する RDS for Oracle DB インスタンスで、Oracle GoldenGate を使用できます。レプリケートされたデータの整合性を維持するには、 Amazon EBS 暗号化ボリュームまたはトレイルファイル暗号化を使用して Oracle GoldenGate ハブの暗号化を設定します。また、Oracle GoldenGate ハブと、ソースおよびターゲットのデータベースインスタンスの間で送信されるデータの暗号化も設定します。RDS for Oracle DB インスタンスは、[Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md) または [Oracle ネイティブネットワーク暗号化](Appendix.Oracle.Options.NetworkEncryption.md) を使用する暗号化をサポートしています。

# Oracle GoldenGate アーキテクチャ
<a name="Appendix.OracleGoldenGate.Overview"></a>

Amazon RDS で使用される Oracle GoldenGate アーキテクチャは、次の独立したモジュールで構成されています。

ソースデータベース  
ソースデータベースは、オンプレミスの Oracle データベース、Amazon EC2 インスタンス上の Oracle データベース、Amazon RDS DB インスタンス上の Oracle データベースのいずれかです。

Oracle GoldenGate ハブ  
GoldenGate ハブは、トランザクション情報をソースデータベースからターゲットデータベースに移動します。ハブは次のいずれかになります。  
+ Oracle Database と Oracle GoldenGate がインストールされた Amazon EC2 インスタンス
+ オンプレミスの Oracle インストール
複数の Amazon EC2 ハブを使用できます。クロスリージョンレプリケーションで Oracle GoldenGate を使用する場合は、2 つのハブを使用することをお勧めします。

ターゲットデータベース  
ターゲットデータベースは、 Amazon RDS DB インスタンス、 Amazon EC2 インスタンス、オンプレミスの場所のいずれかに配置できます。

次のセクションでは、Amazon RDS での Oracle GoldenGate の一般的なシナリオについて説明します。

**Topics**
+ [オンプレミスのソースデータベースと Oracle GoldenGate ハブ](#Appendix.OracleGoldenGate.on-prem-source-gg-hub)
+ [オンプレミスのソースデータベースおよび Amazon EC2 ハブ](#Appendix.OracleGoldenGate.on-prem-source-ec2-hub)
+ [Amazon RDS ソースデータベースおよび Amazon EC2 ハブ](#Appendix.OracleGoldenGate.rds-source-ec2-hub)
+ [Amazon EC2 ソースデータベースと Amazon EC2 ハブ](#Appendix.OracleGoldenGate.ec2-source-ec2-hub)
+ [異なる AWS リージョンの Amazon EC2 ハブ](#Appendix.OracleGoldenGate.cross-region-hubs)

## オンプレミスのソースデータベースと Oracle GoldenGate ハブ
<a name="Appendix.OracleGoldenGate.on-prem-source-gg-hub"></a>

このシナリオでは、オンプレミスの Oracle ソースデータベースとオンプレミスの Oracle GoldenGate ハブから、ターゲットとなる Amazon RDS DB インスタンスにデータが提供されます。

![\[Amazon RDS を使用する Oracle GoldenGate の設定 0\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/oracle-gg0.png)


## オンプレミスのソースデータベースおよび Amazon EC2 ハブ
<a name="Appendix.OracleGoldenGate.on-prem-source-ec2-hub"></a>

このシナリオでは、オンプレミス Oracle データベースがソースデータベースとして機能します。Amazon EC2 インスタンスハブに接続されています。このハブから、ターゲットの RDS for Oracle DB インスタンスにデータが提供されます。

![\[Amazon RDS を使用する Oracle GoldenGate の設定 1\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/oracle-gg1.png)


## Amazon RDS ソースデータベースおよび Amazon EC2 ハブ
<a name="Appendix.OracleGoldenGate.rds-source-ec2-hub"></a>

このシナリオでは、RDS for Oracle DB インスタンスがソースデータベースとして機能します。Amazon EC2 インスタンスハブに接続されています。このハブから、ターゲットの RDS for Oracle DB インスタンスにデータが提供されます。

![\[Amazon RDS を使用する Oracle GoldenGate の設定 2\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/oracle-gg2.png)


## Amazon EC2 ソースデータベースと Amazon EC2 ハブ
<a name="Appendix.OracleGoldenGate.ec2-source-ec2-hub"></a>

このシナリオでは、Amazon EC2 インスタンス上の Oracle データベースがソースデータベースとして機能します。Amazon EC2 インスタンスハブに接続されています。このハブから、ターゲットの RDS for Oracle DB インスタンスにデータが提供されます。

![\[Amazon RDS を使用する Oracle GoldenGate の設定 3\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/oracle-gg3.png)


## 異なる AWS リージョンの Amazon EC2 ハブ
<a name="Appendix.OracleGoldenGate.cross-region-hubs"></a>

このシナリオでは、Amazon RDS DB インスタンス上の Oracle データベースが、同じ AWS リージョンの Amazon EC2 インスタンスハブに接続されています。ハブは別の AWS リージョンの Amazon EC2 インスタンスハブに接続されています。この 2 番目のハブは、2 番目の Amazon EC2 インスタンスハブとして、同じ AWS リージョン内のターゲット RDS for Oracle DB インスタンスにデータを提供します。

![\[Amazon RDS を使用する Oracle GoldenGate の設定 4\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/oracle-gg4.png)


**注記**  
オンプレミス環境で実行中の Oracle GoldenGate に影響する問題は、AWS で実行中の Oracle GoldenGate にも影響します。Oracle GoldenGate ハブをモニタリングし、フェイルオーバーが発生した場合に `EXTRACT` や `REPLICAT` が再起動されていることを確認することを強くお勧めします。Oracle GoldenGate ハブは Amazon EC2 インスタンスで実行されるため、Amazon RDS では Oracle GoldenGate ハブが管理されず、実行中であるかどうかを確認できません。

# Oracle GoldenGate のセットアップ
<a name="Appendix.OracleGoldenGate.setting-up"></a>

Amazon RDS を使用して Oracle GoldenGate をセットアップするには、Amazon EC2 インスタンス上にハブを設定し、ソースデータベースとターゲットデータベースを設定します。以下のセクションは、Amazon RDS for Oracle で使用するために Oracle GoldenGate を設定する方法を示しています。

**Topics**
+ [Amazon EC2 での Oracle GoldenGate ハブのセットアップ](#Appendix.OracleGoldenGate.Hub)
+ [Amazon RDS の Oracle GoldenGate 用の出典データベースのセットアップ](#Appendix.OracleGoldenGate.Source)
+ [Amazon RDS で Oracle GoldenGate 用のターゲットデータベースをセットアップする](#Appendix.OracleGoldenGate.Target)

## Amazon EC2 での Oracle GoldenGate ハブのセットアップ
<a name="Appendix.OracleGoldenGate.Hub"></a>

Amazon EC2 インスタンスに Oracle GoldenGate ハブを作成するには、まず Oracle RDBMS の完全なクライアントインストールで Amazon EC2 インスタンスを作成します。Amazon EC2 インスタンスには、Oracle GoldenGate ソフトウェアもインストールしている必要があります。Oracle GoldenGate ソフトウェアのバージョンは、ソースおよびターゲットのデータベースのバージョンにより決定されます。Oracle GoldenGate のインストールの詳細については、[Oracle GoldenGate のドキュメント](https://docs.oracle.com/en/middleware/goldengate/core/index.html)を参照してください。

Oracle GoldenGate ハブとして機能する Amazon EC2 インスタンスは、ソースデータベースのトランザクション情報をトレイルファイルに保存し、処理します。このプロセスをサポートするには、次の要件を満たしていることを確認してください。
+ トレイルファイル用に十分なストレージを割り当てています。
+ Amazon EC2 インスタンスには、データ量を管理するのに十分な処理能力がある。
+ トレイルファイルに書き込む前に、EC2 インスタンスにトランザクション情報を保存するのに十分なメモリがある。

**Amazon EC2 インスタンスに Oracle GoldenGate クラシックアーキテクチャハブを設定するには**

1. Oracle GoldenGate ディレクトリにサブディレクトリを作成します。

   Amazon EC2 コマンドラインシェルで、Oracle GoldenGate コマンドインタープリタ `ggsci` を起動します。`CREATE SUBDIRS` コマンドは、パラメータ、レポート、チェックポイントの各ファイル用の `/gg` ディレクトリの下にサブディレクトリを作成します。

   ```
   prompt$ cd /gg
   prompt$ ./ggsci
   
   GGSCI> CREATE SUBDIRS
   ```

1. `mgr.prm` ファイルを設定します。

   次の例では、`$GGHOME/dirprm/mgr.prm` ファイルに行を追加します。

   ```
   PORT 8199
   PurgeOldExtracts ./dirdat/*, UseCheckpoints, MINKEEPDAYS 5
   ```

1. マネージャーを起動します。

   次の例では、`ggsci` を起動し、`start mgr` コマンドを実行します。

   ```
   GGSCI> start mgr
   ```

これで、Oracle GoldenGate ハブを使用する準備ができました。

## Amazon RDS の Oracle GoldenGate 用の出典データベースのセットアップ
<a name="Appendix.OracleGoldenGate.Source"></a>

Oracle GoldenGate で使用するソースデータベースを設定するには、次のタスクを実行します。

**Topics**
+ [ステップ 1: ソースデータベースでの補足的なログ記録を有効にする](#Appendix.OracleGoldenGate.Source.Logging)
+ [ステップ 2: ENABLE\$1GOLDENGATE\$1REPLICATION 初期化パラメータを true に設定する](#Appendix.OracleGoldenGate.Source.enable-gg-rep)
+ [ステップ 3: ソースデータベースでのログの保持期間を設定する](#Appendix.OracleGoldenGate.Source.Retention)
+ [ステップ 4: ソースデータベースに Oracle GoldenGate ユーザーアカウントを作成する](#Appendix.OracleGoldenGate.Source.Account)
+ [ステップ 5: ソースデータベースでユーザーに特権を付与する](#Appendix.OracleGoldenGate.Source.Privileges)
+ [ステップ 6: ソースデータベースに TNS エイリアスを追加する](#Appendix.OracleGoldenGate.Source.TNS)

### ステップ 1: ソースデータベースでの補足的なログ記録を有効にする
<a name="Appendix.OracleGoldenGate.Source.Logging"></a>

最小限のデータベースレベルの補足的なログ記録を有効にするには、次の PL/SQL プロシージャを実行します。

```
EXEC rdsadmin.rdsadmin_util.alter_supplemental_logging(p_action => 'ADD')
```

### ステップ 2: ENABLE\$1GOLDENGATE\$1REPLICATION 初期化パラメータを true に設定する
<a name="Appendix.OracleGoldenGate.Source.enable-gg-rep"></a>

`ENABLE_GOLDENGATE_REPLICATION` 初期化パラメータを `true` に設定すると、データベースサービスが論理レプリケーションをサポートできるようになります。ソースデータベースが Amazon RDS DB インスタンスにある場合、`ENABLE_GOLDENGATE_REPLICATION` インストールパラメータを `true` に設定して、DB インスタンスにパラメータグループを割り当てる必要があります。`ENABLE_GOLDENGATE_REPLICATION` の初期化パラメータの詳細については、[Oracle Database のドキュメント](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/ENABLE_GOLDENGATE_REPLICATION.html)を参照してください。

### ステップ 3: ソースデータベースでのログの保持期間を設定する
<a name="Appendix.OracleGoldenGate.Source.Retention"></a>

アーカイブされた REDO ログを保持するようにソースデータベースを必ず設定してください。以下のガイドラインを検討します。
+ ログの保持期間を時間単位で指定します。最小値は 1 時間です。
+ この期間は、ソース DB インスタンスの潜在的なダウンタイム、潜在的な通信期間、ソースインスタンスのネットワーク問題の潜在的な期間を超えるように設定します。このような期間により、Oracle GoldenGate は必要に応じて出典インスタンスからログを復元できます。
+ ファイル用の十分なストレージがインスタンスにあることを確認します。

例えば、アーカイブ REDO ログの保持期間を 24 時間に設定します。

```
EXEC rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24)
```

ログの保持を有効にしていない場合や、保持の値が小さすぎる場合、次のようなエラーメッセージが表示されます。

```
2022-03-06 06:17:27  ERROR   OGG-00446  error 2 (No such file or directory) 
opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306 
Not able to establish initial position for begin time 2022-03-06 06:16:55.
```

DB インスタンスにはアーカイブされた REDO ログが保持されるため、ファイル用の十分なスペースがあることを確認してください。過去 *num\$1hours* 時間で使用した領域の量を確認するには、*num\$1hours* を時間数に置き換えて、次のクエリを実行します。

```
SELECT SUM(BLOCKS * BLOCK_SIZE) BYTES FROM V$ARCHIVED_LOG 
   WHERE NEXT_TIME>=SYSDATE-num_hours/24 AND DEST_ID=1;
```

### ステップ 4: ソースデータベースに Oracle GoldenGate ユーザーアカウントを作成する
<a name="Appendix.OracleGoldenGate.Source.Account"></a>

Oracle GoldenGate はデータベースユーザーとして実行され、出典データベースの REDO ログとアーカイブ REDO ログにアクセスするには、適切なデータベース権限が必要です。これらを指定するには、ソースデータベースにユーザーアカウントを作成します。Oracle GoldenGate のユーザーアカウントに関するアクセス許可の詳細については、[Oracle のドキュメント](https://docs.oracle.com/en/middleware/goldengate/core/19.1/oracle-db/establishing-oracle-goldengate-credentials.html#GUID-79122058-27B0-4FB6-B3DC-B7D1B67EB053)を参照してください。

次のステートメントでは、`oggadm1` という名前のユーザーアカウントが作成されます。

```
CREATE TABLESPACE administrator;
CREATE USER oggadm1  IDENTIFIED BY "password"
   DEFAULT TABLESPACE ADMINISTRATOR TEMPORARY TABLESPACE TEMP;
ALTER USER oggadm1 QUOTA UNLIMITED ON administrator;
```

**注記**  
セキュリティ上のベストプラクティスとして、ここに示されているプロンプト以外のパスワードを指定してください。

### ステップ 5: ソースデータベースでユーザーに特権を付与する
<a name="Appendix.OracleGoldenGate.Source.Privileges"></a>

このタスクでは、ソースデータベースでデータベースユーザーに必要なアカウント権限を付与します。

**ソースデータベースでユーザーに特権を付与するには**

1. SQL コマンド `grant` と `rdsadmin.rdsadmin_util` プロシージャ `grant_sys_object` を使用して、Oracle GoldenGate ユーザーアカウントに必要な権限を付与します。次のステートメントでは、`oggadm1` という名前のユーザーに権限が付与されます。

   ```
   GRANT CREATE SESSION, ALTER SESSION TO oggadm1;
   GRANT RESOURCE TO oggadm1;
   GRANT SELECT ANY DICTIONARY TO oggadm1;
   GRANT FLASHBACK ANY TABLE TO oggadm1;
   GRANT SELECT ANY TABLE TO oggadm1;
   GRANT SELECT_CATALOG_ROLE TO rds_master_user_name WITH ADMIN OPTION;
   EXEC rdsadmin.rdsadmin_util.grant_sys_object ('DBA_CLUSTERS', 'OGGADM1');
   GRANT EXECUTE ON DBMS_FLASHBACK TO oggadm1;
   GRANT SELECT ON SYS.V_$DATABASE TO oggadm1;
   GRANT ALTER ANY TABLE TO oggadm1;
   ```

1. Oracle GoldenGate 管理者になるためにユーザーアカウントに必要な権限を付与します。以下の PL/SQL プログラムを実行します。

   ```
   EXEC rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege (
       grantee                 => 'OGGADM1',
       privilege_type          => 'capture',
       grant_select_privileges => true, 
       do_grants               => TRUE);
   ```

   権限を取り消すには、同じパッケージのプロシージャ `revoke_admin_privilege` を使用します。

### ステップ 6: ソースデータベースに TNS エイリアスを追加する
<a name="Appendix.OracleGoldenGate.Source.TNS"></a>

`$ORACLE_HOME/network/admin/tnsnames.ora` プロセスで使用する Oracle Home で、次のエントリを `EXTRACT` に追加します。`tnsnames.ora` ファイルの詳細については、[Oracle のドキュメント](https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-7F967CE5-5498-427C-9390-4A5C6767ADAA)を参照してください。

```
OGGSOURCE=
   (DESCRIPTION= 
        (ENABLE=BROKEN)
        (ADDRESS_LIST= 
            (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-source.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200)))
        (CONNECT_DATA=(SERVICE_NAME=ORCL))
    )
```

## Amazon RDS で Oracle GoldenGate 用のターゲットデータベースをセットアップする
<a name="Appendix.OracleGoldenGate.Target"></a>

このタスクでは、Oracle GoldenGate で使用するターゲット DB インスタンスを設定します。

**Topics**
+ [ステップ 1: ENABLE\$1GOLDENGATE\$1REPLICATION 初期化パラメータを true に設定する](#Appendix.OracleGoldenGate.Target.enable-gg-rep)
+ [ステップ 2: ターゲットデータベースで GoldenGate のユーザーアカウントを作成する](#Appendix.OracleGoldenGate.Target.User)
+ [ステップ 3: ターゲットデータベースでアカウント権限を付与する](#Appendix.OracleGoldenGate.Target.Privileges)
+ [ステップ 4: ターゲットデータベースに TNS エイリアスを追加する](#Appendix.OracleGoldenGate.Target.TNS)

### ステップ 1: ENABLE\$1GOLDENGATE\$1REPLICATION 初期化パラメータを true に設定する
<a name="Appendix.OracleGoldenGate.Target.enable-gg-rep"></a>

`ENABLE_GOLDENGATE_REPLICATION` 初期化パラメータを `true` に設定すると、データベースサービスが論理レプリケーションをサポートできるようになります。ソースデータベースが Amazon RDS DB インスタンスにある場合、`ENABLE_GOLDENGATE_REPLICATION` インストールパラメータを `true` に設定して、DB インスタンスにパラメータグループを割り当てる必要があります。`ENABLE_GOLDENGATE_REPLICATION` の初期化パラメータの詳細については、[Oracle Database のドキュメント](https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/ENABLE_GOLDENGATE_REPLICATION.html)を参照してください。

### ステップ 2: ターゲットデータベースで GoldenGate のユーザーアカウントを作成する
<a name="Appendix.OracleGoldenGate.Target.User"></a>

Oracle GoldenGate はデータベースユーザーとして動作し、適切なデータベース権限が必要です。これらの権限があることを確認するには、ターゲットデータベースにユーザーアカウントを作成します。

次のステートメントでは、`oggadm1` という名前のユーザーを作成します。

```
CREATE TABLESPSACE administrator;
CREATE USER oggadm1  IDENTIFIED BY "password" 
   DEFAULT TABLESPACE administrator 
   TEMPORARY TABLESPACE temp;
ALTER USER oggadm1 QUOTA UNLIMITED ON administrator;
```

**注記**  
セキュリティ上のベストプラクティスとして、ここに示されているプロンプト以外のパスワードを指定してください。

### ステップ 3: ターゲットデータベースでアカウント権限を付与する
<a name="Appendix.OracleGoldenGate.Target.Privileges"></a>

このタスクでは、ターゲットデータベースでデータベースユーザーに必要なアカウント権限を付与します。

**ターゲットデータベースでユーザーに特権を付与するには**

1. ターゲットデータベースの Oracle GoldenGate ユーザーアカウントに必要な権限を付与します。次の例では、`oggadm1` に権限を付与します。

   ```
   GRANT CREATE SESSION        TO oggadm1;
   GRANT ALTER SESSION         TO oggadm1;
   GRANT CREATE CLUSTER        TO oggadm1;
   GRANT CREATE INDEXTYPE      TO oggadm1;
   GRANT CREATE OPERATOR       TO oggadm1;
   GRANT CREATE PROCEDURE      TO oggadm1;
   GRANT CREATE SEQUENCE       TO oggadm1;
   GRANT CREATE TABLE          TO oggadm1;
   GRANT CREATE TRIGGER        TO oggadm1;
   GRANT CREATE TYPE           TO oggadm1;
   GRANT SELECT ANY DICTIONARY TO oggadm1;
   GRANT CREATE ANY TABLE      TO oggadm1;
   GRANT ALTER ANY TABLE       TO oggadm1;
   GRANT LOCK ANY TABLE        TO oggadm1;
   GRANT SELECT ANY TABLE      TO oggadm1;
   GRANT INSERT ANY TABLE      TO oggadm1;
   GRANT UPDATE ANY TABLE      TO oggadm1;
   GRANT DELETE ANY TABLE      TO oggadm1;
   ```

1. Oracle GoldenGate 管理者になるためにユーザーアカウントに必要な権限を付与します。以下の PL/SQL プログラムを実行します。

   ```
   EXEC rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege (
       grantee                 => 'OGGADM1',
       privilege_type          => 'apply',
       grant_select_privileges => true, 
       do_grants               => TRUE);
   ```

   権限を取り消すには、同じパッケージのプロシージャ `revoke_admin_privilege` を使用します。

### ステップ 4: ターゲットデータベースに TNS エイリアスを追加する
<a name="Appendix.OracleGoldenGate.Target.TNS"></a>

`$ORACLE_HOME/network/admin/tnsnames.ora` プロセスで使用する Oracle Home で、次のエントリを `REPLICAT` に追加します。Oracle マルチテナントデータベースの場合、TNS エイリアスが PDB のサービス名を指していることを確認してください。`tnsnames.ora` ファイルの詳細については、[Oracle のドキュメント](https://docs.oracle.com/en/database/oracle/oracle-database/19/netrf/local-naming-parameters-in-tns-ora-file.html#GUID-7F967CE5-5498-427C-9390-4A5C6767ADAA)を参照してください。

```
OGGTARGET=
    (DESCRIPTION= 
        (ENABLE=BROKEN)
        (ADDRESS_LIST= 
            (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-target.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200)))
        (CONNECT_DATA=(SERVICE_NAME=ORCL))
    )
```

# Oracle GoldenGate の EXTRACT ユーティリティと REPLICAT ユーティリティを使用する
<a name="Appendix.OracleGoldenGate.ExtractReplicat"></a>

Oracle GoldenGate のユーティリティである `EXTRACT` と `REPLICAT` は連携して動作し、トレイルファイルを使った増分トランザクションのレプリケーションを利用して、出典データベースとターゲットデータベースの同期を維持します。ソースデータベースで行われたすべての変更は `EXTRACT` によって自動的に検出され、その後整形されて、オンプレミスの Oracle GoldenGate または Amazon EC2 インスタンスハブ上のトレイルファイルに転送されます。トレイルファイルの初回の読み取りが完了すると、`REPLICAT` ユーティリティによってデータがこれらのファイルから読み取られ、ターゲットデータベースにレプリケートされます。

## Oracle GoldenGate の EXTRACT ユーティリティの実行
<a name="Appendix.OracleGoldenGate.Extract"></a>

`EXTRACT` ユーティリティは、ソースデータベースのデータを取得し、変換して、トレイルファイルに出力します。基本的なプロセスは、次のとおりです。

1. `EXTRACT` は、トランザクションの詳細をメモリまたは一時ディスクストレージ上のキューに入れます。

1. ソースデータベースがトランザクションをコミットします。

1. `EXTRACT` は、トランザクションの詳細をトレイルファイルに書き込みます。

1. トレイルファイルは、これらの詳細を Oracle GoldenGate オンプレミスまたは Amazon EC2 インスタンスハブにルーティングしてから、ターゲットデータベースにルーティングします。

次の手順では、`EXTRACT` ユーティリティを起動し、ソースデータベース `OGGSOURCE` で `EXAMPLE.TABLE` からデータをキャプチャして、トレイルファイルを作成します。

**EXTRACT ユーティリティを実行するには**

1. Oracle GoldenGate ハブ (オンプレミスまたは Amazon EC2 インスタンス) にある `EXTRACT` パラメータファイルを設定します。`$GGHOME/dirprm/eabc.prm` という名前のサンプルの `EXTRACT` パラメータファイルを次に示します。

   ```
   EXTRACT EABC
    
   USERID oggadm1@OGGSOURCE, PASSWORD "my-password"
   EXTTRAIL /path/to/goldengate/dirdat/ab 
    
   IGNOREREPLICATES
   GETAPPLOPS
   TRANLOGOPTIONS EXCLUDEUSER OGGADM1
   	 
   TABLE EXAMPLE.TABLE;
   ```

1. Oracle GoldenGate ハブで、ソースデータベースにログインし、Oracle GoldenGate コマンドラインインターフェイス `ggsci` を起動します。次の例は、ログインの形式を示しています。

   ```
   dblogin oggadm1@OGGSOURCE
   ```

1. トランザクションデータを追加して、データベーステーブルの補足的なログ記録を有効にします。

   ```
   add trandata EXAMPLE.TABLE
   ```

1. `ggsci` コマンドラインを使用する場合、次のコマンドを使用して、`EXTRACT` ユーティリティを有効にします。

   ```
   add extract EABC tranlog, INTEGRATED tranlog, begin now
   add exttrail /path/to/goldengate/dirdat/ab 
      extract EABC, 
      MEGABYTES 100
   ```

1. アーカイブログが削除されないように、データベースに `EXTRACT` ユーティリティを登録します。このタスクにより、以前のコミットされていないトランザクションを必要に応じて復旧できます。データベースに `EXTRACT` ユーティリティを登録するには、次のコマンドを使用します。

   ```
   register EXTRACT EABC, DATABASE
   ```

1. 次のコマンドを使用して `EXTRACT` ユーティリティを起動します。

   ```
   start EABC
   ```

## Oracle GoldenGate の REPLICAT ユーティリティの実行
<a name="Appendix.OracleGoldenGate.Replicat"></a>

`REPLICAT` ユーティリティは、トレイルファイルのトランザクション情報をターゲットデータベースに「プッシュ」します。

次のステップでは、`REPLICAT` ユーティリティを有効にして起動し、キャプチャしたデータをターゲットデータベース `OGGTARGET` のテーブル `EXAMPLE.TABLE` にレプリケートできるようにします。

**REPLICATE ユーティリティを実行するには**

1. Oracle GoldenGate ハブ (オンプレミスまたは EC2 インスタンス) にある `REPLICAT` パラメータファイルを設定します。`$GGHOME/dirprm/rabc.prm` という名前のサンプルの `REPLICAT` パラメータファイルを次に示します。

   ```
   REPLICAT RABC
    
   USERID oggadm1@OGGTARGET, password "my-password"
    
   ASSUMETARGETDEFS
   MAP EXAMPLE.TABLE, TARGET EXAMPLE.TABLE;
   ```
**注記**  
セキュリティ上のベストプラクティスとして、ここに示されているプロンプト以外のパスワードを指定してください。

1. ターゲットデータベースにログインし、Oracle GoldenGate コマンドラインインターフェイス (`ggsci`) を起動します。次の例は、ログインの形式を示しています。

   ```
   dblogin userid oggadm1@OGGTARGET
   ```

1. `ggsci` コマンドラインを使用して、チェックポイントテーブルを追加します。ここで指定するユーザーは、ターゲットテーブルスキーマの所有者ではなく、Oracle GoldenGate のユーザーアカウントであることが必要です。次の例では、`gg_checkpoint` という名前のチェックポイントテーブルを作成します。

   ```
   add checkpointtable oggadm1.oggchkpt
   ```

1. `REPLICAT` ユーティリティを有効にするには、次のコマンドを使用します。

   ```
   add replicat RABC EXTTRAIL /path/to/goldengate/dirdat/ab CHECKPOINTTABLE oggadm1.oggchkpt 
   ```

1. 次のコマンドを使用して、`REPLICAT` ユーティリティを起動します。

   ```
   start RABC
   ```

# Oracle GoldenGate のモニタリング
<a name="Appendix.OracleGoldenGate.Monitoring"></a>

Oracle GoldenGate をレプリケーションに使用する場合は、Oracle GoldenGate プロセスが稼働していて、ソースデータベースとターゲットデータベースが同期していることを確認してください。次のモニタリングツールを使用できます。
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) は、このようなパターンで GoldenGate エラーログをモニタリングするために使用されるモニタリングサービスです。
+ [Amazon SNS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html) は、このようなパターンでメール通知を送信するために使用されるメッセージ通知サービスです。

詳細な説明については、「[Monitor Oracle GoldenGate logs by using Amazon CloudWatch](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/monitor-oracle-goldengate-logs-by-using-amazon-cloudwatch.html)」(Amazon CloudWatch を使用して Oracle GoldenGate ログをモニタリングする) を参照してください。

# Oracle GoldenGate のトラブルシューティング
<a name="Appendix.OracleGoldenGate.Troubleshooting"></a>

このセクションでは、Amazon RDS for Oracle で Oracle GoldenGate を使用する場合に発生する最も一般的な問題について説明します。

**Topics**
+ [オンライン REDO ログを開くときにエラーが発生しました](#Appendix.OracleGoldenGate.Troubleshooting.Logs)
+ [Oracle GoldenGate は適切に設定されているようだが、レプリケーションが機能していない](#Appendix.OracleGoldenGate.Troubleshooting.Replication)
+ [SYS."\$1DBA\$1APPLY\$1CDR\$1INFO" に対するクエリが原因で、統合 REPLICAT が遅い](#Appendix.OracleGoldenGate.IR)

## オンライン REDO ログを開くときにエラーが発生しました
<a name="Appendix.OracleGoldenGate.Troubleshooting.Logs"></a>

アーカイブされた REDO ログを保持するようにデータベースを設定していることを確認してください。以下のガイドラインを検討します。
+ ログの保持期間を時間単位で指定します。最小値は 1 時間です。
+ この期間は、ソースインスタンスの潜在的なダウンタイム、潜在的な通信期間、ソースインスタンスのネットワーク問題の潜在的な期間を超えるように設定します。このような期間により、Oracle GoldenGate は必要に応じてソース DB インスタンスからログを復元できます。
+ ファイル用の十分なストレージがインスタンスにあることを確認します。

ログの保持を有効にしていない場合や、保持の値が小さすぎる場合、次のようなエラーメッセージが表示されます。

```
2022-03-06 06:17:27  ERROR   OGG-00446  error 2 (No such file or directory) 
opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306 
Not able to establish initial position for begin time 2022-03-06 06:16:55.
```

## Oracle GoldenGate は適切に設定されているようだが、レプリケーションが機能していない
<a name="Appendix.OracleGoldenGate.Troubleshooting.Replication"></a>

既存のテーブルについては、Oracle GoldenGate の動作元の SCN を指定する必要があります。

**この問題を修正するには**

1. ソースデータベースにログインし、Oracle GoldenGate コマンドラインインターフェイス (`ggsci`) を起動します。次の例は、ログインの形式を示しています。

   ```
   dblogin userid oggadm1@OGGSOURCE
   ```

1. `ggsci` コマンドラインを使用して、`EXTRACT` プロセスのスタート SCN を設定します。次の例では、`EXTRACT` の SCN を 223274 に設定しています。

   ```
   ALTER EXTRACT EABC SCN 223274
   start EABC
   ```

1. ターゲットデータベースにログインします。次の例は、ログインの形式を示しています。

   ```
   dblogin userid oggadm1@OGGTARGET
   ```

1. `ggsci` コマンドラインを使用して、`REPLICAT` プロセスのスタート SCN を設定します。次の例では、`REPLICAT` の SCN を 223274 に設定しています。

   ```
   start RABC atcsn 223274
   ```

## SYS."\$1DBA\$1APPLY\$1CDR\$1INFO" に対するクエリが原因で、統合 REPLICAT が遅い
<a name="Appendix.OracleGoldenGate.IR"></a>

Oracle GoldenGate 競合の検出および解決 (CDR) には、ベーシックな競合の解決ルーチンが用意されています。例えば、CDR は、`INSERT` ステートメントの一意の競合を解決できます。

CDR が衝突を解決すると、一時的に例外テーブル `_DBA_APPLY_CDR_INFO` にレコードを挿入できます。Integrated `REPLICAT` はこれらのレコードを後で削除します。まれなシナリオでは、統合 `REPLICAT` は多数の衝突を処理できますが、新しい統合 `REPLICAT` では置き換えられません。`_DBA_APPLY_CDR_INFO` の既存の行は、削除されるのではなく、孤立します。任意の新しい統合 `REPLICAT` プロセスは、`_DBA_APPLY_CDR_INFO` で孤立した行をクエリするため、処理速度が低下します。

`_DBA_APPLY_CDR_INFO` からすべての行を削除するには、Amazon RDS の手順 `rdsadmin.rdsadmin_util.truncate_apply$_cdr_info` を使用します。この手順は、2020 年 10 月のリリースおよびパッチアップデートの一部としてリリースされます。この手順は、次のデータベースバージョンで使用できます。
+ [ バージョン 21.0.0.0.ru-2022-01.rur-2022-01.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-21-0.html#oracle-version-RU-RUR.21.0.0.0.ru-2022-01.rur-2022-01.r1) 以上
+ [ バージョン 19.0.0.0.ru-2020-10.rur-2020-10.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html#oracle-version-RU-RUR.19.0.0.0.ru-2020-10.rur-2020-10.r1) 以降

次の例では、テーブル `_DBA_APPLY_CDR_INFO` を切り捨てます。

```
SET SERVEROUTPUT ON SIZE 2000
EXEC rdsadmin.rdsadmin_util.truncate_apply$_cdr_info;
```

# Amazon RDS for Oracle での Oracle リポジトリ作成ユーティリティの使用
<a name="Oracle.Resources.RCU"></a>

Amazon RDS を使用すると、Oracle Fusion Middleware コンポーネントをサポートするスキーマを保持する RDS for Oracle DB インスタンスをホストできます。Fusion Middleware コンポーネントを使用する前に、データベースでそれらのコンポーネント用のスキーマを作成してデータを入力します。スキーマの作成とデータ入力は、Oracle Repository Creation Utility (RCU) を使用して行います。

## RCU でサポートされているバージョンとライセンスオプション
<a name="Oracle.Resources.RCU.Versions"></a>

Amazon RDS では、Oracle Repository Creation Utility (RCU) バージョン 12c のみサポートされています。RCU は以下の構成で使用できます。
+ Oracle データベース 21c を使用する RCU 12c
+ Oracle データベース 19c を使用する RCU 12c

RCU を使用する前に、以下を実行します。
+ Oracle Fusion Midleware のライセンスを取得する。
+ リポジトリをホストする Oracle データベースの Oracle ライセンスガイドラインに従う。詳細については、Oracle ドキュメントの「[Oracle Fusion Middleware Licensing Information User Manual](https://docs.oracle.com/en/middleware/fusion-middleware/fmwlc/)」を参照してください。

Fusion MiddleWare は、Oracle Database Enterprise Edition および Standard Edition 2 上のリポジトリをサポートしています。Oracle では、オンラインインデックスの再構築を必要とするパーティション化とインストールが必要な本稼働インストールには、Enterprise Edition を推奨しています。

RDS for Oracle DB インスタンスを作成する前に、デプロイするコンポーネントをサポートするために必要な Oracle データベースバージョンを確認します。デプロイする Fusion Middleware コンポーネントおよびバージョンの要件を確認するには、認定マトリックスを使用します。詳細については、Oracle ドキュメントの「[Oracle Fusion Middleware Supported System Configurations](http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.html)」を参照してください。

Amazon RDS では、必要に応じて Oracle データベースバージョンのアップグレードがサポートされます。詳細については、「[DB インスタンスのエンジンバージョンのアップグレード](USER_UpgradeDBInstance.Upgrading.md)」を参照してください。

## RCU の要件と制限
<a name="Oracle.Resources.RCU.BeforeYouBegin"></a>

RCU を使用するには、Amazon VPC が必要です。Amazon RDS DB インスタンスは、パブリックインターネットではなく、Fusion Middleware コンポーネントでのみ使用できるようにします。そのため、Amazon RDS DB インスタンスをプライベートサブネットでホストして、セキュリティを強化します。RDS for Oracle DB インスタンスも必要です。詳細については、「[Oracle DB インスタンスを作成して接続する](CHAP_GettingStarted.CreatingConnecting.Oracle.md)」を参照してください。

どの Fusion Middleware コンポーネントのスキーマでも Amazon RDS DB インスタンスに保存できます。次のスキーマは、正しくインストールされることが検証されています。
+ Analytics (ACTIVITIES)
+ Audit Services (IAU)
+ Audit Services Append (IAU\$1APPEND)
+ Audit Services Viewer (IAU\$1VIEWER)
+ Discussions (DISCUSSIONS)
+ Metadata Services (MDS)
+ Oracle Business Intelligence (BIPLATFORM)
+ Oracle Platform Security Services (OPSS)
+ Portal and Services (WEBCENTER)
+ Portlet Producers (PORTLET)
+ Service Table (STB)
+ SOA Infrastructure (SOAINFRA)
+ User Messaging Service (UCSUMS)
+ WebLogic Services (WLS)

## RCU を使用するガイドライン
<a name="Oracle.Resources.RCU.Recommendations"></a>

このシナリオで DB インスタンスを使用する場合の推奨事項を以下に示します。
+ マルチ AZ は、本稼働ワークロードに使用することをお勧めします。複数のアベイラビリティーゾーンの使用の詳細については、「[リージョン、アベイラビリティーゾーン、および Local Zones](Concepts.RegionsAndAvailabilityZones.md)」を参照してください。
+ セキュリティを高めるため、Oracle では、Transparent Data Encryption (TDE) を使用して保管時のデータを暗号化することを推奨しています。高度なセキュリティオプションを含む Enterprise Edition のライセンスをお持ちの場合、TDE オプションを使用して保管時の暗号化を有効にできます。詳細については、「[Oracle Transparent Data Encryption](Appendix.Oracle.Options.AdvSecurity.md)」を参照してください。

  Amazon RDS では、すべてのデータベースエディション用の保管時の暗号化オプションも用意しています。詳細については、「[Amazon RDS リソースの暗号化](Overview.Encryption.md)」を参照してください。
+ アプリケーションサーバーと Amazon RDS DB インスタンスの間の通信が許可されるように、VPC セキュリティグループを設定します。Fusion Middleware コンポーネントをホストするアプリケーションサーバーは、Amazon EC2 またはオンプレミスにすることができます。

## RCU の実行
<a name="Oracle.Resources.RCU.Installing"></a>

Fusion Middleware コンポーネントをサポートするためのスキーマを作成し、データを入力するには、Oracle Repository Creation Utility (RCU) を使用します。RCU は、さまざまな方法で実行できます。

**Topics**
+ [コマンドラインを使用した 1 ステップでの RCU の実行](#Oracle.Resources.RCU.SilentSingle)
+ [コマンドラインを使用した複数ステップでの RCU の実行](#Oracle.Resources.RCU.SilentMulti)
+ [インタラクティブモードでの RCU の実行](#Oracle.Resources.RCU.Interactive)

### コマンドラインを使用した 1 ステップでの RCU の実行
<a name="Oracle.Resources.RCU.SilentSingle"></a>

データを入力する前にスキーマを編集する必要がない場合は、単一ステップで RCU を実行できます。それ以外の場合、複数ステップでの RCU の実行について次のセクションを参照してください。

コマンドラインパラメータ `-silent` を使用して、RCU をサイレントモードで実行できます。サイレントモードで RCU を実行すると、パスワードを含むテキストファイルを作成することで、コマンドラインにパスワードを入力する必要がなくなります。1 行目に `dbUser` のパスワードを含み、それ以降の行に各コンポーネントのパスワードを含むテキストファイルを作成します。RCU コマンドの最後のパラメータとして、パスワードファイルの名前を指定します。

**Example**  
次の例では、SOA Infrastructure コンポーネント (およびその依存関係) のスキーマを単一ステップで作成し、データを入力します。  
Linux、macOS、Unix の場合:  

```
export ORACLE_HOME=/u01/app/oracle/product/12.2.1.0/fmw
export JAVA_HOME=/usr/java/jdk1.8.0_65
${ORACLE_HOME}/oracle_common/bin/rcu \
-silent \
-createRepository \
-connectString ${dbhost}:${dbport}:${dbname} \
-dbUser ${dbuser} \
-dbRole Normal \
-honorOMF \
-schemaPrefix ${SCHEMA_PREFIX} \
-component MDS \
-component STB \
-component OPSS \
-component IAU \
-component IAU_APPEND \
-component IAU_VIEWER \
-component UCSUMS \
-component WLS \
-component SOAINFRA \
-f < /tmp/passwordfile.txt
```

詳細については、Oracle ドキュメントの「[Running Repository Creation Utility from the Command Line](https://docs.oracle.com/middleware/1221/core/RCUUG/GUID-0D3A2959-7CC8-4001-997E-718ADF04C5F2.htm#RCUUG248)」を参照してください。

### コマンドラインを使用した複数ステップでの RCU の実行
<a name="Oracle.Resources.RCU.SilentMulti"></a>

スキーマスクリプトを手動で編集するには、次の複数のステップで RCU を実行します。

1. `-generateScript` コマンドラインパラメータを使用して [**Prepare Scripts for System Load**] モードで RCU を実行し、スキーマのスクリプトを作成します。

1. 手動で編集し、生成したスクリプト `script_systemLoad.sql` を実行します。

1. `-dataLoad` コマンドラインパラメータを使用して [**Perform Product Load**] モードでもう一度 RCU を実行し、スキーマにデータを入力します。

1. 生成したクリーンアップのスクリプト `script_postDataLoad.sql` を実行します。

RCU をサイレントモードで実行するには、コマンドラインパラメータ `-silent` を指定します。サイレントモードで RCU を実行すると、パスワードを含むテキストファイルを作成することで、コマンドラインにパスワードを入力する必要がなくなります。1 行目に `dbUser` のパスワードを含み、それ以降の行に各コンポーネントのパスワードを含むテキストファイルを作成します。RCU コマンドの最後のパラメータとして、パスワードファイルの名前を指定します。

**Example**  
次の例では、SOA Infrastructure コンポーネントおよびその依存関係のスキーマスクリプトを作成します。  
Linux、macOS、Unix の場合:  

```
export ORACLE_HOME=/u01/app/oracle/product/12.2.1.0/fmw
export JAVA_HOME=/usr/java/jdk1.8.0_65
${ORACLE_HOME}/oracle_common/bin/rcu \
-silent \
-generateScript \
-connectString ${dbhost}:${dbport}:${dbname} \
-dbUser ${dbuser} \
-dbRole Normal \
-honorOMF \
[-encryptTablespace true] \
-schemaPrefix ${SCHEMA_PREFIX} \
-component MDS \
-component STB \
-component OPSS \
-component IAU \
-component IAU_APPEND \
-component IAU_VIEWER \
-component UCSUMS \
-component WLS \
-component SOAINFRA \
-scriptLocation /tmp/rcuscripts \
-f < /tmp/passwordfile.txt
```
ここでは、生成されたスクリプトを編集し、Oracle DB インスタンスに接続してスクリプトを実行できます。生成したスクリプトの名前は、`script_systemLoad.sql` です。Oracle DB インスタンスへの接続の詳細については、「[ステップ 3: SQL クライアントを Oracle DB インスタンスに接続する](CHAP_GettingStarted.CreatingConnecting.Oracle.md#CHAP_GettingStarted.Connecting.Oracle)」を参照してください。  
次の例では、SOA Infrastructure コンポーネント (およびその依存関係) のスキーマにデータを入力します。  
Linux、macOS、Unix の場合:  

```
export JAVA_HOME=/usr/java/jdk1.8.0_65
${ORACLE_HOME}/oracle_common/bin/rcu \
-silent \
-dataLoad \
-connectString ${dbhost}:${dbport}:${dbname} \
-dbUser ${dbuser} \
-dbRole Normal \
-honorOMF \
-schemaPrefix ${SCHEMA_PREFIX} \
-component MDS \
-component STB \
-component OPSS \
-component IAU \
-component IAU_APPEND \
-component IAU_VIEWER \
-component UCSUMS \
-component WLS \
-component SOAINFRA \
-f < /tmp/passwordfile.txt
```
終了するには、Oracle DB インスタンスに接続し、クリーンアップスクリプトを実行します。生成したスクリプトの名前は、`script_postDataLoad.sql` です。

詳細については、Oracle ドキュメントの「[Running Repository Creation Utility from the Command Line](https://docs.oracle.com/middleware/1221/core/RCUUG/GUID-0D3A2959-7CC8-4001-997E-718ADF04C5F2.htm#RCUUG248)」を参照してください。

### インタラクティブモードでの RCU の実行
<a name="Oracle.Resources.RCU.Interactive"></a>

RCU グラフィカルユーザーインターフェイスを使用するには、インタラクティブモードで RCU を実行します。​`-interactive` パラメータを指定し、`-silent` パラメータは指定しません。詳細については、Oracle ドキュメントの「[Understanding Repository Creation Utility Screens](https://docs.oracle.com/middleware/1213/core/RCUUG/rcu_screens.htm#RCUUG143)」を参照してください。

**Example**  
次の例では、RCU をインタラクティブモードで起動し、接続情報を事前入力します。  
Linux、macOS、Unix の場合:  

```
export ORACLE_HOME=/u01/app/oracle/product/12.2.1.0/fmw
export JAVA_HOME=/usr/java/jdk1.8.0_65
${ORACLE_HOME}/oracle_common/bin/rcu \
-interactive \
-createRepository \
-connectString ${dbhost}:${dbport}:${dbname} \
-dbUser ${dbuser} \
-dbRole Normal
```

## RCU のトラブルシューティング
<a name="Oracle.Resources.RCU.KnownIssues"></a>

次の点に注意してください。

**Topics**
+ [Oracle Managed Files (OMF)](#Oracle.Resources.RCU.KnownIssues.OMF)
+ [オブジェクト権限](#Oracle.Resources.RCU.KnownIssues.object-privs)
+ [Enterprise Scheduler Service](#Oracle.Resources.RCU.KnownIssues.Scheduler)

### Oracle Managed Files (OMF)
<a name="Oracle.Resources.RCU.KnownIssues.OMF"></a>

Amazon RDS は、OMF データファイルを使用してストレージ管理を簡素化します。サイズや拡張管理などのテーブルスペース属性をカスタマイズできます。ただし、RCU の実行時にデータファイル名を指定すると、テーブルスペースコードが `ORA-20900` で失敗します。RCU は、以下の方法で OMF と使用できます。
+ RCU 12.2.1.0 以降で、`-honorOMF` コマンドラインパラメータを使用します。
+ RCU 12.1.0.3 以降で、複数のステップを使用して生成されたスクリプトを編集します。詳細については、「[コマンドラインを使用した複数ステップでの RCU の実行](#Oracle.Resources.RCU.SilentMulti)」を参照してください。

### オブジェクト権限
<a name="Oracle.Resources.RCU.KnownIssues.object-privs"></a>

Amazon RDS はマネージ型サービスであるため、RDS for Oracle DB インスタンスへのフル `SYSDBA` アクセス権はありません。ただし、RCU 12c では低い権限のユーザーがサポートされます。ほとんどの場合、リポジトリを作成するにはマスターユーザー権限で十分です。

マスターアカウントは、`WITH GRANT OPTION` がすでに付与されている権限を直接付与できます。場合によっては、`SYS` オブジェクト権限を付与しようとすると RCU が `ORA-01031` で失敗することがあります。次の例に示すように、`rdsadmin_util.grant_sys_object` ストアドプロシージャを再試行して実行することができます。

```
BEGIN
  rdsadmin.rdsadmin_util.grant_sys_object('GV_$SESSION','MY_DBA','SELECT');
END;
/
```

オブジェクト `SCHEMA_VERSION_REGISTRY` に対する `SYS` 権限を付与しようとすると、このオペレーションが `ORA-20199: Error in rdsadmin_util.grant_sys_object` で失敗することがあります。テーブル `SCHEMA_VERSION_REGISTRY$` とビュー `SCHEMA_VERSION_REGISTRY` をスキーマ所有者の名前 (`SYSTEM`) で修飾して、オペレーションを再試行できます。または、シノニムを作成することもできます。マスターユーザーとしてログインし、次のステートメントを実行します。

```
CREATE OR REPLACE VIEW SYSTEM.SCHEMA_VERSION_REGISTRY 
  AS SELECT * FROM SYSTEM.SCHEMA_VERSION_REGISTRY$;
CREATE OR REPLACE PUBLIC SYNONYM SCHEMA_VERSION_REGISTRY FOR SYSTEM.SCHEMA_VERSION_REGISTRY;
CREATE OR REPLACE PUBLIC SYNONYM SCHEMA_VERSION_REGISTRY$ FOR SCHEMA_VERSION_REGISTRY;
```

### Enterprise Scheduler Service
<a name="Oracle.Resources.RCU.KnownIssues.Scheduler"></a>

RCU を使用して Enterprise Scheduler Service リポジトリを中断すると、RCU が `Error: Component drop check failed` で失敗することがあります。

# Amazon EC2 インスタンスでの Oracle Connection Manager の設定
<a name="oracle-cman"></a>

Oracle Connection Manager (CMAN) は、データベースサーバーまたは他のプロキシサーバーに接続リクエストを転送するプロキシサーバーです。CMAN 使用して、次を設定できます。

アクセスコントロール  
ユーザーが指定したクライアントリクエストを除外し、他のクライアントリクエストを受け入れるルールを作成できます。

セッションの多重化  
共有サーバーの宛先へのネットワーク接続を介して、複数のクライアントセッションをファネルできます。

通常、CMAN は、データベースサーバーおよびクライアントホストとは別のホストに存在します。詳細については、「Oracle Database ドキュメント」の「[Configuring Oracle Connection Manager](https://docs.oracle.com/en/database/oracle/oracle-database/19/netag/configuring-oracle-connection-manager.html#GUID-AF8A511E-9AE6-4F4D-8E58-F28BC53F64E4)」(Oracle Connection Manager の構成) を参照してください。

**Topics**
+ [CMAN でサポートされているバージョンとライセンスオプション](#oracle-cman.Versions)
+ [CMAN における要件と制限](#oracle-cman.requirements)
+ [CMAN の設定](#oracle-cman.configuring-cman)

## CMAN でサポートされているバージョンとライセンスオプション
<a name="oracle-cman.Versions"></a>

CMAN は、Amazon RDS がサポートする Oracle Database のすべてのバージョンのエンタープライズエディションをサポートしています。詳細については、「[RDS for Oracle のリリース](Oracle.Concepts.database-versions.md)」を参照してください。

Oracle Database がインストールされているホストとは別のホストに Oracle Connection Manager をインストールできます。CMAN を実行するホスト用に別のライセンスは必要ありません。

## CMAN における要件と制限
<a name="oracle-cman.requirements"></a>

Amazon RDS では、フルマネージドエクスペリエンスを提供するため、オペレーティングシステムへのアクセスを制限しています。オペレーティングシステムのアクセスを必要とするデータベースパラメータは変更できません。そのため Amazon RDS では、オペレーティングシステムへのログインを必要とする CMAN の機能をサポートしていません。

## CMAN の設定
<a name="oracle-cman.configuring-cman"></a>

CMAN を設定する際は、RDS for Oracle データベースの外部でほとんどの作業を実行します。

**Topics**
+ [ステップ 1: RDS for Oracle インスタンスと同じ VPC の Amazon EC2 インスタンスに CMAN を設定する](#oracle-cman.configuring-cman.vpc)
+ [ステップ 2: CMAN のデータベースパラメータを設定する](#oracle-cman.configuring-cman.parameters)
+ [ステップ 3: DB インスタンスを DB パラメータグループに関連付ける](#oracle-cman.configuring-cman.parameter-group)

### ステップ 1: RDS for Oracle インスタンスと同じ VPC の Amazon EC2 インスタンスに CMAN を設定する
<a name="oracle-cman.configuring-cman.vpc"></a>

CMAN の設定方法については、ブログ記事「[Configuring and using Oracle Connection Manager on Amazon EC2 for Amazon RDS for Oracle](https://aws.amazon.com/blogs/database/configuring-and-using-oracle-connection-manager-on-amazon-ec2-for-amazon-rds-for-oracle/)」(Amazon RDS for Oracle 用に Amazon EC2 で Oracle Connection Manager を設定および使用する) の詳細な手順に従ってください。

### ステップ 2: CMAN のデータベースパラメータを設定する
<a name="oracle-cman.configuring-cman.parameters"></a>

Traffic Director Mode やセッションの多重化などの CMAN の機能については、`REMOTE_LISTENER` パラメータをDB パラメータグループ内の CMAN のインスタンスのアドレスに設定します。次のシナリオを考えてみます。
+ CMAN のインスタンスが、IP アドレス `10.0.159.100` を持つホストに存在しており、ポート `1521` を使用しているとします。
+ データベース `orcla`、`orclb`、および `orclc` は、Oracle DB インスタンスの別の RDS に存在しているとします。

次の表は、`REMOTE_LISTENER` 値の設定方法を示しています。`LOCAL_LISTENER` 値は、Amazon RDS によって自動的に設定されます。


| DB インスタンス名 | DB インスタンス IP | ローカルリスナーの値 (自動的に設定) | リモートリスナーの値 (ユーザーが設定) | 
| --- | --- | --- | --- | 
| orcla | 10.0.159.200 |  <pre>( address=<br />  (protocol=tcp)<br />  (host=10.0.159.200)<br />  (port=1521)<br />)</pre>  | 10.0.159.100:1521 | 
| orclb | 10.0.159.300 |  <pre>( address=<br />  (protocol=tcp)<br />  (host=10.0.159.300)<br />  (port=1521)<br />)</pre>  | 10.0.159.100:1521 | 
| orclc | 10.0.159.400 |  <pre>( address=<br />  (protocol=tcp)<br />  (host=10.0.159.400)<br />  (port=1521)<br />)</pre>  | 10.0.159.100:1521 | 

### ステップ 3: DB インスタンスを DB パラメータグループに関連付ける
<a name="oracle-cman.configuring-cman.parameter-group"></a>

[ステップ 2: CMAN のデータベースパラメータを設定する](#oracle-cman.configuring-cman.parameters) で設定したパラメータグループを使用するように DB インスタンスを作成または変更します。詳細については、「[Amazon RDS で DB パラメータグループを DB インスタンスに関連付ける](USER_WorkingWithParamGroups.Associating.md)」を参照してください。

# Amazon RDS での Oracle への Siebel Database のインストール
<a name="Oracle.Resources.Siebel"></a>

Amazon RDS を使用して Oracle DB インスタンスで Siebel Database をホストできます。Siebel Database は Siebel Customer Relationship Management (CRM) アプリケーションアーキテクチャの一部です。図については、「[ Generic Architecture of Siebel Business Application](https://docs.oracle.com/cd/E63029_01/books/PerformTun/performtun_archinfra.htm#i1043361)」を参照してください。

次のトピックでは、Amazon RDS の Oracle DB インスタンスで Siebel Database をセットアップする方法について説明します。また、Amazon Web Services を使用して Siebel CRM アプリケーションアーキテクチャに必要なそのほかのコンポーネントをサポートする方法も説明します。

**注記**  
Amazon RDS 上の Oracle に Siebel Database をインストールするには、マスターユーザーアカウントを使用する必要があります。`SYSDBA` 権限は必要ありません。マスターユーザー権限で十分です。詳細については、「[マスターユーザーアカウント権限](UsingWithRDS.MasterAccounts.md)」を参照してください。

## ライセンスとバージョン
<a name="Oracle.Resources.Siebel.Versions"></a>

Siebel Database を Amazon RDS にインストールするには、お客様ご自身の Oracle Database ライセンスと Siebel ライセンスを使用する必要があります。DB インスタンスクラスと Oracle Database のエディション用の適切な Oracle Database ライセンス (ソフトウェア更新ライセンスおよびサポート) を所持している必要があります。詳細については、「[RDS for Oracle のライセンスオプション](Oracle.Concepts.Licensing.md)」を参照してください。

Oracle Database Enterprise Edition は、このシナリオで唯一の Siebel 認定エディションです。Amazon RDS では、Siebel CRM バージョン 15.0 または 16.0 がサポートされています。

Amazon RDS では、データベースのバージョンのアップグレードがサポートされています。詳細については、「[DB インスタンスのエンジンバージョンのアップグレード](USER_UpgradeDBInstance.Upgrading.md)」を参照してください。

## スタートする前に
<a name="Oracle.Resources.Siebel.BeforeYouBegin"></a>

スタートする前に、Amazon VPC が必要です。Amazon RDS DB インスタンスは Siebel Enterprise Server でのみ使用できればよく、パブリックインターネットは必要ないため、Amazon RDS DB インスタンスはより優れたセキュリティを提供するプライベートサブネットでホストされます。Siebel CRM で使用する Amazon VPC を作成する方法については、「[Oracle DB インスタンスを作成して接続する](CHAP_GettingStarted.CreatingConnecting.Oracle.md)」を参照してください。

スタートする前に、Oracle DB インスタンスも必要です。Siebel CRM で使用する Oracle DB インスタンスを作成する方法については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。

## Siebel Database のインストールと設定
<a name="Oracle.Resources.Siebel.Database.Siebel"></a>

Oracle DB インスタンスを作成した後、Siebel Database をインストールできます。テーブル所有者および管理者アカウントを作成し、保存手順と機能をインストールして、その後 Siebel Database Configuration Wizard を実行することで、データベースをインストールします。詳細については、「[Installing the Siebel Database on the RDBMS](https://docs.oracle.com/cd/E63029_01/books/SiebInstWIN/SiebInstCOM_ConfigDB.html)」を参照してください。

Siebel Database Configuration Wizard を実行するには、マスターユーザーアカウントを使用する必要があります。`SYSDBA` 権限は必要ありません。マスターユーザー権限で十分です。詳細については、「[マスターユーザーアカウント権限](UsingWithRDS.MasterAccounts.md)」を参照してください。

## Siebel Database によるその他の Amazon RDS 機能の使用
<a name="Oracle.Resources.Siebel.Miscellaneous"></a>

Oracle DB インスタンスを作成すると、Siebel Database のカスタマイズに役立つ追加の Amazon RDS 機能を使用できます。

### Oracle Statspack オプションでの統計情報の収集
<a name="Oracle.Resources.Siebel.Options"></a>

DB オプショングループのオプションを使用して DB インスタンスに機能を追加できます。Oracle DB インスタンスを作成するときには、デフォルトの DB オプショングループを使用しました。データベースに機能を追加する場合は、DB インスタンスに対して新しいオプショングループを作成できます。

Siebel Database のパフォーマンス統計情報を収集する場合は、Oracle Statspack 機能を追加できます。詳細については、「[Oracle Statspack](Appendix.Oracle.Options.Statspack.md)」を参照してください。

オプションの変更は、直ちに適用されるものと、DB インスタンスの次のメンテナンス時間中に適用されるものがあります。詳細については、「[オプショングループを使用する](USER_WorkingWithOptionGroups.md)」を参照してください。カスタマイズされたオプショングループを作成後、DB インスタンスを修正してアタッチします。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

### パラメータによるパフォーマンスのチューニング
<a name="Oracle.Resources.Siebel.Parameters"></a>

DB パラメータグループのパラメータを使用して DB エンジンの設定を管理します。Oracle DB インスタンスを作成するときには、デフォルトの DB パラメータグループを使用しました。データベースの設定をカスタマイズする場合は、DB インスタンスに対して新しいパラメータグループを作成できます。

パラメータの種類によって、パラメータの変更はすぐに適用されるものと、DB インスタンスを手動で再起動した後に適用されるものがあります。詳細については、「[Amazon RDS のパラメータグループ](USER_WorkingWithParamGroups.md)」を参照してください。カスタマイズされたパラメータグループを作成後、DB インスタンスを修正してアタッチします。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

Oracle DB インスタンスを Siebel CRM 用に最適化するために、特定のパラメータをカスタマイズできます。次の表は、推奨されるパラメータ設定の一部です。Siebel CRM のパフォーマンスチューニングの詳細については、「[Siebel CRM Performance Tuning Guide](https://docs.oracle.com/cd/E63029_01/books/PerformTun/toc.htm)」を参照してください。


****  

| パラメータ名 | デフォルト値 | Siebel CRM の最適なパフォーマンスのガイダンス | 
| --- | --- | --- | 
| \$1always\$1semi\$1join | `CHOOSE` | `OFF`  | 
| \$1b\$1tree\$1bitmap\$1plans | `TRUE` | `FALSE`  | 
| \$1like\$1with\$1bind\$1as\$1equality | `FALSE` | `TRUE`  | 
| \$1no\$1or\$1expansion | `FALSE` | `FALSE`  | 
| \$1optimizer\$1join\$1sel\$1sanity\$1check | `TRUE` | `TRUE`  | 
| \$1optimizer\$1max\$1permutations | 2000 | 100  | 
| \$1optimizer\$1sortmerge\$1join\$1enabled | `TRUE` | `FALSE`  | 
| \$1partition\$1view\$1enabled | `TRUE` | `FALSE`  | 
| open\$1cursors | `300` | 少なくとも **2000**。  | 

### スナップショットの作成
<a name="Oracle.Resources.Siebel.Snapshots"></a>

Siebel Database を作成した後、Amazon RDS のスナップショット機能を使用してデータベースをコピーできます。詳細については、「[Amazon RDS のシングル AZ DB インスタンスの DB スナップショットの作成](USER_CreateSnapshot.md)」および「[DB インスタンスへの復元](USER_RestoreFromSnapshot.md)」を参照してください。

## その他の Siebel CRM コンポーネントのサポート
<a name="Oracle.Resources.Siebel.OtherComponents"></a>

Siebel Database に加えて、Amazon Web Services を使用して Siebel CRM アプリケーションアーキテクチャの他のコンポーネントをサポートすることもできます。追加の Siebel CRM コンポーネントに対して Amazon AWS により提供されるサポートに関する詳細を次の表に示します。


****  

| Siebel CRM コンポーネント | Amazon AWS サポート | 
| --- | --- | 
| Siebel Enterprise(Siebel Server 1 つ以上含む) |  Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで Siebel Server をホストできます。Amazon EC2 を使用して必要な分だけ仮想サーバーを起動できます。Amazon EC2 を使用すると、需要の変化に対応して簡単にスケールアップやスケールダウンができます。詳細については、「[Amazon EC2 とは](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts.html)」を参照してください。 サーバーを DB インスタンスと同じ VPC に配置し、データベースへのアクセスに VPC のセキュリティグループを使用できます。詳細については、「[VPC 内の DB インスタンスの使用](USER_VPC.WorkingWithRDSInstanceinaVPC.md)」を参照してください。  | 
| ウェブサーバー(Siebel Web Server Extension を含む) |  複数の EC2 インスタンスに複数のウェブサーバーをインストールできます。その後、Elastic Load Balancing を使用して着信トラフィックをインスタンスに分散できます。詳細については、「[Elastic Load Balancing とは](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/elastic-load-balancing.html)」を参照してください。  | 
| Siebel Gateway Name Server |  EC2 インスタンスで Siebel Gateway Name Server をホストできます。その後、サーバーを DB インスタンスと同じ VPC に配置し、データベースへのアクセスに VPC のセキュリティグループを使用できます。詳細については、「[VPC 内の DB インスタンスの使用](USER_VPC.WorkingWithRDSInstanceinaVPC.md)」を参照してください。  | 