

# Oracle DB インスタンスへのオプションの追加
<a name="Appendix.Oracle.Options"></a>

Amazon RDS では、オプションは追加機能です。次に、OracleDB エンジンを実行している Amazon RDS インスタンスに追加できるオプションの説明を示します。

**Topics**
+ [

# Oracle DB オプションの概要
](Appendix.Oracle.Options.overview.md)
+ [

# 「Amazon S3 統合」
](oracle-s3-integration.md)
+ [

# Oracle Application Express (APEX)
](Appendix.Oracle.Options.APEX.md)
+ [

# Amazon EFS の統合
](oracle-efs-integration.md)
+ [

# Oracle Java Virtual Machine
](oracle-options-java.md)
+ [

# Oracle Enterprise Manager
](Oracle.Options.OEM.md)
+ [

# Oracle Label Security
](Oracle.Options.OLS.md)
+ [

# Oracle Locator
](Oracle.Options.Locator.md)
+ [

# Oracle ネイティブネットワーク暗号化
](Appendix.Oracle.Options.NetworkEncryption.md)
+ [

# Oracle OLAP
](Oracle.Options.OLAP.md)
+ [

# Oracle Secure Sockets Layer
](Appendix.Oracle.Options.SSL.md)
+ [

# Oracle Spatial
](Oracle.Options.Spatial.md)
+ [

# Oracle SQLT
](Oracle.Options.SQLT.md)
+ [

# Oracle Statspack
](Appendix.Oracle.Options.Statspack.md)
+ [

# Oracle のタイムゾーン
](Appendix.Oracle.Options.Timezone.md)
+ [

# Oracle のタイムゾーンファイルの自動アップグレード
](Appendix.Oracle.Options.Timezone-file-autoupgrade.md)
+ [

# Oracle Transparent Data Encryption
](Appendix.Oracle.Options.AdvSecurity.md)
+ [

# Oracle UTL\$1MAIL
](Oracle.Options.UTLMAIL.md)
+ [

# Oracle XML DB
](Appendix.Oracle.Options.XMLDB.md)

# Oracle DB オプションの概要
<a name="Appendix.Oracle.Options.overview"></a>

Oracle Database のオプションを有効にするには、オプショングループにオプションを追加してから、そのオプショングループを DB インスタンスに関連付けます。(詳しくは、「[オプショングループを使用する](USER_WorkingWithOptionGroups.md)」を参照してください。)

**Topics**
+ [

## Oracle Database オプションの概要
](#Appendix.Oracle.Options.summary)
+ [

## 異なるエディションでサポートされるオプション
](#Appendix.Oracle.Options.editions)
+ [

## 特定のオプションのメモリ要件
](#Appendix.Oracle.Options.memory)

## Oracle Database オプションの概要
<a name="Appendix.Oracle.Options.summary"></a>

Oracle DB インスタンスには次のオプションを追加できます。


****  

| オプション | オプション ID | 
| --- | --- | 
|  [「Amazon S3 統合」](oracle-s3-integration.md)  |  `S3_INTEGRATION`  | 
|  [Oracle Application Express (APEX)](Appendix.Oracle.Options.APEX.md)  |  `APEX` `APEX-DEV`  | 
|  [Oracle Enterprise Manager](Oracle.Options.OEM.md)  |  `OEM` `OEM_AGENT`  | 
|  [Oracle Java Virtual Machine](oracle-options-java.md)  |  `JVM`  | 
|  [Oracle Label Security](Oracle.Options.OLS.md)  |  `OLS`  | 
|  [Oracle Locator](Oracle.Options.Locator.md)  |  `LOCATOR`  | 
|  [Oracle ネイティブネットワーク暗号化](Appendix.Oracle.Options.NetworkEncryption.md)  |  `NATIVE_NETWORK_ENCRYPTION`  | 
|  [Oracle OLAP](Oracle.Options.OLAP.md)  |  `OLAP`  | 
|  [Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md)  |  `SSL`  | 
|  [Oracle Spatial](Oracle.Options.Spatial.md)  |  `SPATIAL`  | 
|  [Oracle SQLT](Oracle.Options.SQLT.md)  |  `SQLT`  | 
|  [Oracle Statspack](Appendix.Oracle.Options.Statspack.md)  |  `STATSPACK`  | 
|  [Oracle のタイムゾーン](Appendix.Oracle.Options.Timezone.md)  |  `Timezone`  | 
|  [Oracle のタイムゾーンファイルの自動アップグレード](Appendix.Oracle.Options.Timezone-file-autoupgrade.md)  |  `TIMEZONE_FILE_AUTOUPGRADE`  | 
|  [Oracle Transparent Data Encryption](Appendix.Oracle.Options.AdvSecurity.md)  |  `TDE`  | 
|  [Oracle UTL\$1MAIL](Oracle.Options.UTLMAIL.md)  |  `UTL_MAIL`  | 
|  [Oracle XML DB](Appendix.Oracle.Options.XMLDB.md)  |  `XMLDB`  | 

## 異なるエディションでサポートされるオプション
<a name="Appendix.Oracle.Options.editions"></a>

RDS for Oracle では、サポートされていないエディションにオプションを追加できません。さまざまな Oracle Database エディションでサポートされている RDS オプションを確認するには、`aws rds describe-option-group-options` コマンドを使用します。次の例は、Oracle Database 19c エンタープライズエディションでサポートされているオプションを一覧表示しています。

```
aws rds describe-option-group-options \
    --engine-name oracle-ee \
    --major-engine-version 19
```

詳細については、*AWS CLI コマンドリファレンス*の [describe-option-group-options](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-option-group-options.html) を参照してください。

## 特定のオプションのメモリ要件
<a name="Appendix.Oracle.Options.memory"></a>

一部のオプションは、DB インスタンスで実行するために追加のメモリが必要です。例えば、Oracle Enterprise Manager Database Control には約 300 MB の RAM が使用されます。サイズの小さい DB インスタンスに対してこのオプションを有効にした場合は、パフォーマンスの問題やメモリ不足のエラーが発生することがあります。データベースの RAM 使用量を少なくするために、Oracle パラメータを調整できます。また、より大きな DB インスタンスにスケールアップすることもできます。

# 「Amazon S3 統合」
<a name="oracle-s3-integration"></a>

RDS for Oracle DB インスタンスと Amazon S3 バケットの間でファイルを転送することができます。Oracle Data Pump などの Oracle Database の機能と Amazon S3 統合を使用できます。例えば、Amazon S3 の Data Pump ファイルを RDS for Oracle DB インスタンスにダウンロードすることができます。詳細については、「[Amazon RDS の Oracle にデータをインポートする](Oracle.Procedural.Importing.md)」を参照してください。

**注記**  
DB インスタンスと Amazon S3 バケットは同じ AWS リージョン に存在する必要があります。

**Topics**
+ [

# Amazon S3 と RDS for Oracle を統合する IAM アクセス許可の設定
](oracle-s3-integration.preparing.md)
+ [

# Amazon S3 統合オプションの追加
](oracle-s3-integration.preparing.option-group.md)
+ [

# Amazon RDS for Oracle と Amazon S3 バケットの間でファイルを転送する
](oracle-s3-integration.using.md)
+ [

## Amazon S3 統合のトラブルシューティング
](#oracle-s3-integration.troubleshooting)
+ [

# Amazon S3 統合オプションの削除
](oracle-s3-integration.removing.md)

# Amazon S3 と RDS for Oracle を統合する IAM アクセス許可の設定
<a name="oracle-s3-integration.preparing"></a>

RDS for Oracle が Amazon S3 と統合するには、DB インスタンスが Amazon S3 バケットにアクセスできる必要があります。DB インスタンスで使用される Amazon VPC は Amazon S3 エンドポイントへのアクセスを提供する必要はありません。

RDS for Oracle は、あるアカウントの DB インスタンスと別のアカウントの Amazon S3 バケットの間のファイルの転送をサポートしています。追加のステップが必要な場合は、以下のセクションで説明します。

**Topics**
+ [

## ステップ 1: Amazon RDS ロール用の IAM ポリシーを作成する
](#oracle-s3-integration.preparing.policy)
+ [

## ステップ 2: (オプション) Amazon S3 バケットの IAM ポリシーを作成する
](#oracle-s3-integration.preparing.policy-bucket)
+ [

## ステップ 3: DB インスタンスの IAM ロールを作成し、ポリシーをアタッチする
](#oracle-s3-integration.preparing.role)
+ [

## ステップ 4: IAM ロールを RDS for Oracle DB インスタンスに関連付ける
](#oracle-s3-integration.preparing.instance)

## ステップ 1: Amazon RDS ロール用の IAM ポリシーを作成する
<a name="oracle-s3-integration.preparing.policy"></a>

このステップでは、Amazon S3 バケットと RDS DB インスタンスの間のファイル転送に必要なアクセス許可を持つ AWS Identity and Access Management (IAM) ポリシーを作成します。このステップは、S3 バケットが既に作成されていることを前提としています。

ポリシーを作成する前に、次の情報を書き留めます。
+ バケットの Amazon リソースネーム (ARN)
+ お客様の AWS KMS キーの ARN、バケットが SSE-KMS または SSE-S3 暗号化を使用している場合
**注記**  
RDS for Oracle DB インスタンスは、SSE-C で暗号化された Amazon S3 バケットにアクセスできません。

詳細については、「*Amazon Simple Storage Service ユーザーガイド*」の「[サーバー側の暗号化を使用したデータの保護](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)」を参照してください。

### コンソール
<a name="oracle-s3-integration.preparing.policy.console"></a>

**Amazon S3 バケットへのアクセスを Amazon RDS に許可する IAM ポリシーを作成するには**

1. [IAM マネジメントコンソール](https://console.aws.amazon.com/iam/home?#home)を開きます。

1. [**Access management (アクセス管理)**] で、[**Policies (ポリシー)**] を選択します。

1. **[ポリシーを作成]** を選択します。

1. [**Visual editor**] タブで、[**Choose a service**] を選択し、[**S3**] を選択します。

1. [**Actions (アクション)**] で [**Expand all (すべて展開)**] を選択し、Amazon S3 バケットから Amazon RDS にファイルを転送するために必要なバケットのアクセス許可とオブジェクトのアクセス許可を選択します。例えば、以下を実行してください。
   + [**List (リスト)**] を展開し、[**ListBucket**] を選択します。
   + [**Read (読み取り)**] を展開し、[**GetObject**] を選択します。
   + **[Write (書き込み)]** を展開し、**[PutObject]**、**[DeleteObject]**、**[AbortMultipartUpload]**、**[ListMultipartUploadParts]** を選択します。マルチパートアップロードのアクセス許可は、大きなファイル (100 MB 以上) を Amazon S3 にアップロードするときに必要です。
   + **[Permissions management]** (アクセス許可の管理) を展開し、**PutObjectAcl** を選択します。このアクセス許可は、別のアカウントが所有するバケットにファイルをアップロードする予定で、このアカウントがバケットの内容を完全に制御する必要がある場合に必要です。

   *オブジェクトのアクセス許可*は、Amazon S3 のオブジェクトオペレーションのアクセス許可です。バケット自体ではなくバケット内のオブジェクトに付与する必要があります。詳細については、「[オブジェクトオペレーションに対するアクセス許可](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-objects)」を参照してください。

1. **[リソース]** を選択し、次の操作を行います。

   1. **[特定]** を選択します。

   1. **[バケット]** では、**[ARN を追加]** を選択します。バケット ARN を入力します。バケット名は自動的に入力されます。その後、**[Add]** (追加) を選択します。

   1. **[オブジェクト]** リソースが表示されている場合は、**[ARN を追加]** を選択してリソースを手動で追加するか、**[すべて]** を選択します。
**注記**  
Amazon S3 バケット内の特定のファイルやフォルダにのみアクセスすることを Amazon RDS に許可するには、[**Amazon リソースネーム (ARN)**] に、より具体的な ARN 値を設定します。Amazon S3 のアクセスポリシーの定義方法については、「[Amazon S3 リソースへのアクセス許可の管理](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)」を参照してください。

1. (オプション) ポリシーにリソースを追加するには、[**Add addition permissions (アクセス許可を追加する)**] を選択します。例えば、以下を実行してください。

   1. バケットがカスタム KMS キーで暗号化されている場合は、サービスの **KMS** を選択します。

   1. **[手動アクション]** では、以下を選択します。
      + **暗号化**
      + **[ReEncrypt from]** および **[ReEncrypt to]**
      + **Decrypt**
      + **DescribeKey**
      + **GenerateDataKey**

   1. **[リソース]** で **[特定]** を選択します。

   1. **[キー]** では、**[ARN を追加]** を選択します。リソースとしてカスタムキーの ARN を入力し、**[追加]** を選択します。

      詳細については、*Amazon Simple Storage Service ユーザーガイド*の「[Protecting Data Using Server-Side Encryption with KMS keys Stored in AWS Key Management Service (SSE-KMS)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)」を参照してください。

   1. Amazon RDS が他のバケットにアクセスするためにアクセスが必要な場合は、これらのバケットの ARN を追加します。オプションで、Amazon S3 内のすべてのバケットとオブジェクトへのアクセスを許可できます。

1. [**次へ: タグ**]、[**次へ: レビュー**] の順に選択します。

1. [** 名前**] に、IAM ポリシーの名前 (例: `rds-s3-integration-policy`) を設定します。この名前は、IAM ロールを作成して DB インスタンスに関連付ける際に使用します。オプションで [**Description**] 値を追加することもできます。

1. [**Create policy**] (ポリシーの作成) を選択します。

### AWS CLI
<a name="oracle-s3-integration.preparing.policy.CLI"></a>

Amazon S3 バケットに Amazon RDS へのアクセス許可を付与する AWS Identity and Access Management IAM ポリシーを作成します。ポリシーを作成したら、ポリシーの ARN を書き留めます。この ARN は、後のステップで必要になります。

必要なアクセスのタイプに基づき、適切なアクションをポリシーに含めます。
+ `GetObject` - Amazon S3 バケットから Amazon RDS へのファイルの転送に必要。
+ `ListBucket` - Amazon S3 バケットから Amazon RDS へのファイルの転送に必要。
+ `PutObject` - Amazon RDS から Amazon S3 バケットへのファイルの転送に必要。
+ `AbortMultipartUpload` – マルチパートアップロードで、大きなファイル (100 MB 以上) を Amazon RDS から Amazon S3 バケットに転送するときに必要です。
+ `ListMultipartUploadParts` – マルチパートアップロードで、大きなファイル (100 MB 以上) を Amazon RDS から Amazon S3 バケットに転送するときに必要です。

以下の AWS CLI コマンドでは、これらのオプションを指定して、`rds-s3-integration-policy` という名前の IAM ポリシーを作成します。このポリシーでは、`amzn-s3-demo-bucket` という名前のバケットへのアクセス権が付与されます。

**Example**  
Linux、macOS、Unix の場合:  

```
aws iam create-policy \
   --policy-name rds-s3-integration-policy \
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "s3:AbortMultipartUpload",
           "s3:ListMultipartUploadParts"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
       }
     ]
   }'
```
次の例には、カスタム KMS キーのアクセス許可が含まれています。  

```
aws iam create-policy \
   --policy-name rds-s3-integration-policy \
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "kms:Decrypt",
           "kms:Encrypt",
           "kms:ReEncrypt*",
           "kms:GenerateDataKey",
           "kms:DescribeKey",
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:kms:::your-kms-arn"
         ]
       }
     ]
   }'
```
Windows の場合:  

```
aws iam create-policy ^
   --policy-name rds-s3-integration-policy ^
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "s3:AbortMultipartUpload",
           "s3:ListMultipartUploadParts"
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*"
         ]
       }
     ]
   }'
```
次の例には、カスタム KMS キーのアクセス許可が含まれています。  

```
aws iam create-policy ^
   --policy-name rds-s3-integration-policy ^
   --policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "s3integration",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket",
           "s3:PutObject",
           "kms:Decrypt",
           "kms:Encrypt",
           "kms:ReEncrypt",
           "kms:GenerateDataKey",
           "kms:DescribeKey",
         ],
         "Effect": "Allow",
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket", 
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:kms:::your-kms-arn"
         ]
       }
     ]
   }'
```

## ステップ 2: (オプション) Amazon S3 バケットの IAM ポリシーを作成する
<a name="oracle-s3-integration.preparing.policy-bucket"></a>

このステップは、次の条件でのみ必要です。
+ あるアカウント (アカウント A) から Amazon S3 バケットにファイルをアップロードし、別のアカウント (アカウント B) からファイルにアクセスする予定です。
+ アカウント B がバケットを所有しています。
+ アカウント B は、バケットにロードされたオブジェクトを完全に制御する必要があります。

上記の条件が適用されない場合は、[ステップ 3: DB インスタンスの IAM ロールを作成し、ポリシーをアタッチする](#oracle-s3-integration.preparing.role) に進みます。

バケットポリシーを作成するために、以下のものがあることを確認します。
+ アカウント A のアカウント ID
+ アカウント A のユーザー名
+ アカウント B の Amazon S3 バケットの ARN 値

### コンソール
<a name="oracle-s3-integration.preparing.policy-bucket.console"></a>

**バケットポリシーを作成または編集するには**

1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール ([https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)) を開きます。

1. [**Buckets (バケット)**] リストで、バケットポリシーを作成するバケットの名前、またはバケットポリシーを編集するバケットの名前を選択します。

1. [**Permissions (アクセス許可)**] を選択します。

1. **[バケットポリシー]** で **[編集]** を選択します。バケットポリシーの編集ページが開きます。

1. **[バケットポリシーを編集]** ページで、「*Amazon S3 ユーザーガイド*」の **[ポリシーの例]** を確認するか、**[ポリシージェネレーター]** を選択してポリシーを自動的に生成するか、**[ポリシー]** セクションで JSON を編集します。

   **ポリシージェネレーター**を選択すると、AWS ポリシージェネレーターが新しいウィンドウで開きます。

   1. **ポリシーの種類の選択**の **AWS ポリシーポリシージェネレータ**ページで、** S3 バケットポリシー**を選択します。

   1. 提供されたフィールドに情報を入力してステートメントを追加し、**ステートメントの追加**を選択します。追加するステートメントの数だけ繰り返します。ポリシーステートメントの詳細については、*IAM ユーザーガイド*の [IAM JSON ポリシーのエレメントのリファレンス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html)を参照してください。
**注記**  
便宜上、**バケットポリシーの編集**ページでは、現在のバケットの**バケット ARN** (Amazonリソース名) が**ポリシー**テキストフィールドの上に表示されます。この ARN をコピーして、**AWSポリシージェネレータ**のステートメントで使用できます。

   1. ステートメントの追加が完了したら、**ポリシーの生成**を選択します。

   1. 生成されたポリシーテキストをコピーし、[**閉じる**] を選択すると、Amazon S3 コンソールの**バケットポリシーの編集**ページに戻ります。

1. 左 **ポリシー** ボックスで、既存のポリシーを編集するか、ポリシージェネレータからバケットポリシーを貼り付けます。ポリシーを保存する前に、セキュリティ警告、エラー、一般的な警告、および提案を解決してください。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ExamplePermissions",
         "Effect": "Allow",
         "Principal": {
           "AWS": "arn:aws:iam::123456789012:user/account-A-user"
         },
         "Action": [
           "s3:PutObject",
           "s3:PutObjectAcl"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-destination-bucket",
           "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
         ]
       }
     ]
   }
   ```

------

1. **変更の保存**を選択すると、[バケット許可] のページへ戻ります。

## ステップ 3: DB インスタンスの IAM ロールを作成し、ポリシーをアタッチする
<a name="oracle-s3-integration.preparing.role"></a>

このステップは、IAM ポリシーを [ステップ 1: Amazon RDS ロール用の IAM ポリシーを作成する](#oracle-s3-integration.preparing.policy) で作成したことを前提としています。このステップでは、RDS for Oracle DB インスタンスのロールを作成し、ロールにポリシーをアタッチします。

### コンソール
<a name="oracle-s3-integration.preparing.role.console"></a>

**Amazon S3 バケットへのアクセスを Amazon RDS に許可する IAM ロールを作成するには**

1. [IAM マネジメントコンソール](https://console.aws.amazon.com/iam/home?#home)を開きます。

1. ナビゲーションペインで **Roles (ロール) ** を選択してください。

1. [**ロールの作成**] を選択してください。

1. **[AWS サービス]** を選択してください。

1. **[他の AWS サービスのユースケース]** で、**[RDS]** を選択し、次に **[RDS — データベースにロールを追加]** を選択します。次に、**[次へ]** を選択します。

1. **[アクセス許可ポリシー]** の **[検索]** に、[ステップ 1: Amazon RDS ロール用の IAM ポリシーを作成する](#oracle-s3-integration.preparing.policy) で作成した IAM ポリシーの名前を入力し、リストに表示されたポリシーを選択します。次に、**[次へ]** を選択します。

1. **[ロール名]** に、`rds-s3-integration-role` などの IAM ロール名を入力します。オプションで [**Description**] 値を追加することもできます。

1. [**ロールの作成**] を選択してください。

### AWS CLI
<a name="integration.preparing.role.CLI"></a>

**ロールを作成してポリシーをアタッチするには**

1. Amazon S3 バケットにアクセスするには、お客様に代わって Amazon RDS が引き受けることのできる IAM ロールを作成します。

   リソースベースの信頼関係では [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) および [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) のグローバル条件コンテキストキーを使用して、サービスに付与する特定のリソースへのアクセス許可を制限することをお勧めします。これは、[混乱した使節の問題](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)に対する最も効果的な保護方法です。

   両方のグローバル条件コンテキストキーを使用し、`aws:SourceArn` 値にアカウント ID を含めます。この場合は、`aws:SourceAccount` 値と `aws:SourceArn` 値のアカウントは、同じステートメントで使用する場合、同じアカウント ID を使用する必要があります。
   + 単一リソースに対するクロスサービスアクセスが必要な場合は `aws:SourceArn` を使用します。
   + そのアカウント内の任意のリソースをクロスサービス使用に関連付けることを許可する場合、`aws:SourceAccount`を使用します。

   信頼関係では、`aws:SourceArn` グローバル条件コンテキストキーに、必ず、ロールにアクセスするリソースの完全な Amazon リソースネーム (ARN) を使用します。

   次の AWS CLI コマンドでは、この目的で `rds-s3-integration-role` という名前のロールを作成します。  
**Example**  

   Linux、macOS、Unix の場合:

   ```
   aws iam create-role \
      --role-name rds-s3-integration-role \
      --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
               "Service": "rds.amazonaws.com"
             },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "my_account_ID",
                    "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname"
                }
            }
          }
        ]
      }'
   ```

   Windows の場合:

   ```
   aws iam create-role ^
      --role-name rds-s3-integration-role ^
      --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
               "Service": "rds.amazonaws.com"
             },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "my_account_ID",
                    "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname"
                }
            }
          }
        ]
      }'
   ```

   詳細については、*IAM ユーザーガイド*の「[IAM ユーザーにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)」を参照してください。

1. ロールが作成されたら、このロールの ARN を書き留めます。この ARN は、後のステップで必要になります。

1. 作成したポリシーを、作成したロールにアタッチします。

   以下の AWS CLI コマンドでは、`rds-s3-integration-role` という名前のロールにこのポリシーをアタッチします。  
**Example**  

   Linux、macOS、Unix の場合:

   ```
   aws iam attach-role-policy \
      --policy-arn your-policy-arn \
      --role-name rds-s3-integration-role
   ```

   Windows の場合:

   ```
   aws iam attach-role-policy ^
      --policy-arn your-policy-arn ^
      --role-name rds-s3-integration-role
   ```

   `your-policy-arn` を、以前のステップで書き留めたポリシー ARN に置き換えます。

## ステップ 4: IAM ロールを RDS for Oracle DB インスタンスに関連付ける
<a name="oracle-s3-integration.preparing.instance"></a>

Amazon S3 統合のアクセス許可を設定する最後のステップは、IAM ロールを DB インスタンスに関連付けることです。次の要件に注意してください。
+ 必須の Amazon S3 アクセス許可ポリシーがアタッチされた IAM ロールへのアクセスが許可されている必要があります。
+ RDS for Oracle DB インスタンスには、一度に 1 つの IAM ロールのみを関連付けることができます。
+ DB インスタンスは、**[使用可能]** の状態である必要があります。

### コンソール
<a name="oracle-s3-integration.preparing.instance.console"></a>

**IAM ロールを RDS for Oracle DB インスタンスに関連付けるには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインから [**Databases (データベース)**] を選択します。

1. 詳細を表示する RDS for Oracle DB インスタンスの名前を選択します。

1. 「**接続性とセキュリティ**」 タブで、ページ下部の**IAM ロールを管理する** セクションまでスクロールダウンします。

1. **[このインスタンスに IAM ロールを追加]** で、[ステップ 3: DB インスタンスの IAM ロールを作成し、ポリシーをアタッチする](#oracle-s3-integration.preparing.role) で作成したロールを選択します。

1. [**機能**] で、[**S3\$1INTEGRATION**] を選択します。  
![\[S3_INTEGRATION ロールの追加\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/ora-s3-integration-role.png)

1. [**Add role**] を選択します。

### AWS CLI
<a name="oracle-s3-integration.preparing.instance.CLI"></a>

以下の AWS CLI コマンドでは、`mydbinstance` という名前の Oracle DB インスタンスにこのロールを追加します。

**Example**  
Linux、macOS、Unix の場合:  

```
aws rds add-role-to-db-instance \
   --db-instance-identifier mydbinstance \
   --feature-name S3_INTEGRATION \
   --role-arn your-role-arn
```
Windows の場合:  

```
aws rds add-role-to-db-instance ^
   --db-instance-identifier mydbinstance ^
   --feature-name S3_INTEGRATION ^
   --role-arn your-role-arn
```

`your-role-arn` を、以前のステップで書き留めたロール ARN に置き換えます。`S3_INTEGRATION` オプションには `--feature-name` が指定されている必要があります。

# Amazon S3 統合オプションの追加
<a name="oracle-s3-integration.preparing.option-group"></a>

Amazon RDS for Oracle と Amazon S3 を統合するには、DB インスタンスが `S3_INTEGRATION` オプションを含むオプショングループに関連付けられている必要があります。

## コンソール
<a name="oracle-s3-integration.preparing.option-group.console"></a>

**Amazon S3 統合用のオプショングループを設定するには**

1. 新しいオプショングループを作成するか、`S3_INTEGRATION` オプションを追加する既存のオプショングループを識別します。

   オプショングループの作成の詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. オプショングループに [`S3_INTEGRATION`] オプションを追加します。

   オプショングループへのオプションの追加の詳細については、「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。

1. 新しい RDS for Oracle DB インスタンスを作成し、オプショングループをそのインスタンスに関連付けるか、オプショングループを関連付けるように RDS for Oracle DB インスタンスを変更します。

   DB インスタンスの作成については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。

   DB インスタンスの変更については、[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)を参照してください。

## AWS CLI
<a name="oracle-s3-integration.preparing.option-group.cli"></a>

**Amazon S3 統合用のオプショングループを設定するには**

1. 新しいオプショングループを作成するか、`S3_INTEGRATION` オプションを追加する既存のオプショングループを識別します。

   オプショングループの作成の詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. オプショングループに [`S3_INTEGRATION`] オプションを追加します。

   例えば、以下の AWS CLI コマンドでは、`S3_INTEGRATION` オプションを、**myoptiongroup** という名前のオプショングループに追加します。  
**Example**  

   Linux、macOS、Unix の場合:

   ```
   aws rds add-option-to-option-group \
      --option-group-name myoptiongroup \
      --options OptionName=S3_INTEGRATION,OptionVersion=1.0
   ```

   Windows の場合:

   ```
   aws rds add-option-to-option-group ^
      --option-group-name myoptiongroup ^
      --options OptionName=S3_INTEGRATION,OptionVersion=1.0
   ```

1. 新しい RDS for Oracle DB インスタンスを作成し、オプショングループをそのインスタンスに関連付けるか、オプショングループを関連付けるように RDS for Oracle DB インスタンスを変更します。

   DB インスタンスの作成については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。

   RDS for Oracle DB インスタンスの変更方法については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

# Amazon RDS for Oracle と Amazon S3 バケットの間でファイルを転送する
<a name="oracle-s3-integration.using"></a>

RDS for Oracle DB インスタンスと Amazon S3 バケット間でファイルを転送するには、Amazon RDS パッケージ `rdsadmin_s3_tasks` を使用できます。アップロード時に GZIP でファイルを圧縮し、ダウンロード時に解凍することができます。

**Topics**
+ [

## ファイル転送の要件と制限
](#oracle-s3-integration.using.reqs)
+ [

## RDS for Oracle DB インスタンスから Amazon S3 バケットにファイルをアップロードする
](#oracle-s3-integration.using.upload)
+ [

## Amazon S3 バケットから Oracle DB インスタンスにファイルをダウンロードする
](#oracle-s3-integration.using.download)
+ [

## ファイル転送のステータスをモニタリングする
](#oracle-s3-integration.using.task-status)

## ファイル転送の要件と制限
<a name="oracle-s3-integration.using.reqs"></a>

DB インスタンスと Amazon S3 バケットの間でファイルを転送する前に、次の点に注意してください。
+ `rdsadmin_s3_tasks` パッケージは、単一のディレクトリにあるファイルを転送します。転送にサブディレクトリを含めることはできません。
+ Amazon S3 バケット内の最大オブジェクトサイズは 5 TB です。
+ `rdsadmin_s3_tasks` によって作成されたタスクは非同期的に実行されます。
+ `DATA_PUMP_DIR` などの Data Pump ディレクトリ、またはユーザーが作成したディレクトリからファイルをアップロードできます。`adump`、`bdump`、または `trace` ディレクトリなど、Oracle バックグラウンドプロセスで使用されるディレクトリからファイルをアップロードすることはできません。
+ ダウンロードできるファイル数は、`download_from_s3` の場合、プロシージャコールあたり 2000 ファイルに制限されています。Amazon S3 から 2000 を超えるファイルをダウンロードする必要がある場合は、ダウンロードを別々のアクションに分割し、1 回のプロシージャコールあたりのファイル数が 2000 を超えないようにしてください。
+ ダウンロードフォルダにファイルが存在し、同じ名前のファイルをダウンロードしようとすると、`download_from_s3` ではダウンロードをスキップします。ダウンロードディレクトリからファイルを削除するには、PL/SQL プロシージャ [UTL\$1FILE.FREMOVE](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/UTL_FILE.html#GUID-09B09C2A-2C21-4F70-BF04-D0EEA7B59CAF) を使用します。

## RDS for Oracle DB インスタンスから Amazon S3 バケットにファイルをアップロードする
<a name="oracle-s3-integration.using.upload"></a>

DB インスタンスから Amazon S3 バケットにファイルをアップロードするには、プロシージャ `rdsadmin.rdsadmin_s3_tasks.upload_to_s3` を使用します。例えば、Oracle Recovery Manager (RMAN) のバックアップファイルまたは Oracle Data Pump ファイルをアップロードすることができます。オブジェクトの操作方法の詳細については、[Amazon Simple Storage Service ユーザーガイド](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingObjects.html)を参照してください。RMAN バックアップの詳細については、「[Oracle DB インスタンスの一般的な RMAN タスクの実行](Appendix.Oracle.CommonDBATasks.RMAN.md)」を参照してください。

`rdsadmin.rdsadmin_s3_tasks.upload_to_s3` プロシージャには以下のパラメータがあります。


****  

| パラメータ名 | データ型 | デフォルト | 必須 | 説明 | 
| --- | --- | --- | --- | --- | 
|  `p_bucket_name`  |  VARCHAR2  |  –  |  必須  |  ファイルをアップロードする Amazon S3 バケットの名前。  | 
|  `p_directory_name`  |  VARCHAR2  |  –  |  必須  |  ファイルのアップロード元の Oracle ディレクトリオブジェクトの名前。ディレクトリは、ユーザーが作成した任意のディレクトリオブジェクト、または Data Pump ディレクトリ (例: `DATA_PUMP_DIR`) です。`adump`、`bdump`、または `trace` など、バックグラウンドプロセスで使用されるディレクトリからファイルをアップロードすることはできません。  ファイルは、指定したディレクトリからのみアップロードできます。指定したディレクトリのサブディレクトリにファイルをアップロードすることはできません。   | 
|  `p_s3_prefix`  |  VARCHAR2  |  –  |  必須  |  ファイルをアップロードする Amazon S3 ファイル名のプレフィックス。プレフィックスが空の場合は、指定された Amazon S3 バケットの最上位レベルにすべてのファイルがアップロードされますが、そのファイル名にプレフィックスは付加されません。 例えば、プレフィックスが `folder_1/oradb` の場合、ファイルは `folder_1` にアップロードされます。この場合、ファイルにはそれぞれ `oradb` プレフィックスが追加されます。  | 
|  `p_prefix`  |  VARCHAR2  |  –  |  必須  |  アップロードするファイル名が一致する必要があるファイル名のプレフィックス。プレフィックスが空の場合は、指定されたディレクトリ内のファイルがすべてアップロードされます。  | 
|  `p_compression_level`  |  NUMBER  |  `0`   |  オプション  |  GZIP 圧縮のレベル。有効な値の範囲は `0`～`9` です。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/oracle-s3-integration.using.html)  | 
|  `p_bucket_owner_full_control`  |  VARCHAR2  |  –  |  optional  |  バケットのアクセスコントロールリスト。有効な値は、null と `FULL_CONTROL` のみです。この設定は、あるアカウント (アカウント A) から別のアカウント (アカウント B) が所有するバケットにファイルをアップロードし、アカウント B がファイルを完全に制御する必要がある場合にのみ必要です。  | 

`rdsadmin.rdsadmin_s3_tasks.upload_to_s3` プロシージャの戻り値はタスク ID です。

次の例では、`DATA_PUMP_DIR` ディレクトリ内のすべてのファイルを *amzn-s3-demo-bucket* という名前の Amazon S3 バケットにアップロードします。ファイルは圧縮されません。

```
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
      p_bucket_name    =>  'amzn-s3-demo-bucket',
      p_prefix         =>  '', 
      p_s3_prefix      =>  '', 
      p_directory_name =>  'DATA_PUMP_DIR') 
   AS TASK_ID FROM DUAL;
```

次の例では、`db` ディレクトリ内のプレフィックス `DATA_PUMP_DIR` のついたすべてのファイルを、`amzn-s3-demo-bucket` という名前の Amazon S3 バケットにアップロードします。Amazon RDS は、最高レベルの GZIP 圧縮をファイルに適用します。

```
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
      p_bucket_name       =>  'amzn-s3-demo-bucket', 
      p_prefix            =>  'db', 
      p_s3_prefix         =>  '', 
      p_directory_name    =>  'DATA_PUMP_DIR',
      p_compression_level =>  9) 
   AS TASK_ID FROM DUAL;
```

次の例では、`DATA_PUMP_DIR` ディレクトリのすべてのファイルを、`amzn-s3-demo-bucket` という名前の Amazon S3 バケットにアップロードします。ファイルは、`dbfiles` フォルダにアップロードされます。この例では、GZIP 圧縮レベルは *1* です。これは最も速い圧縮レベルです。

```
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
      p_bucket_name       =>  'amzn-s3-demo-bucket', 
      p_prefix            =>  '', 
      p_s3_prefix         =>  'dbfiles/', 
      p_directory_name    =>  'DATA_PUMP_DIR',
      p_compression_level =>  1) 
   AS TASK_ID FROM DUAL;
```

次の例では、`DATA_PUMP_DIR` ディレクトリのすべてのファイルを、`amzn-s3-demo-bucket` という名前の Amazon S3 バケットにアップロードします。ファイルは `dbfiles` フォルダにアップロードされ、各ファイル名の先頭には `ora` が付加されます。圧縮は適用されません。

```
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
      p_bucket_name    =>  'amzn-s3-demo-bucket', 
      p_prefix         =>  '', 
      p_s3_prefix      =>  'dbfiles/ora', 
      p_directory_name =>  'DATA_PUMP_DIR') 
   AS TASK_ID FROM DUAL;
```

次の例では、コマンドはアカウント A で実行されるものの、アカウント B でバケットの内容を完全に制御する必要があることを前提としています。コマンド `rdsadmin_s3_tasks.upload_to_s3` は、`s3bucketOwnedByAccountB` という名前のバケットに `DATA_PUMP_DIR` ディレクトリ内のすべてのファイルを転送します。アクセスコントロールは、アカウント B がバケット内のファイルにアクセスできるように、`FULL_CONTROL` に設定されています。GZIP 圧縮レベルは *6* で、速度とファイルサイズのバランスが取れています。

```
SELECT rdsadmin.rdsadmin_s3_tasks.upload_to_s3(
      p_bucket_name               =>  's3bucketOwnedByAccountB', 
      p_prefix                    =>  '', 
      p_s3_prefix                 =>  '', 
      p_directory_name            =>  'DATA_PUMP_DIR',
      p_bucket_owner_full_control =>  'FULL_CONTROL',
      p_compression_level         =>  6) 
   AS TASK_ID FROM DUAL;
```

それぞれの例では、`SELECT` ステートメントでは、タスクの ID が `VARCHAR2` データ型で返ります。

タスクの出力ファイルを表示すると、結果を確認できます。

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));
```

*`task-id`* は、この手順で返されたタスク ID に置き換えます。

**注記**  
タスクは非同期的に実行されます。

## Amazon S3 バケットから Oracle DB インスタンスにファイルをダウンロードする
<a name="oracle-s3-integration.using.download"></a>

Amazon S3 バケットから RDS for Oracle インスタンスにファイルをダウンロードするには、Amazon RDS プロシージャ (`rdsadmin.rdsadmin_s3_tasks.download_from_s3`) を使用します。

`download_from_s3` プロシージャには以下のパラメータがあります。


****  

| パラメータ名 | データ型 | デフォルト | 必須 | 説明 | 
| --- | --- | --- | --- | --- | 
|  `p_bucket_name`  |  VARCHAR2  |  –  |  必須  |  ファイルのダウンロード元の Amazon S3 バケットの名前。  | 
|  `p_directory_name`  |  VARCHAR2  |  –  |  必須  |  ファイルをダウンロードする Oracle ディレクトリオブジェクトの名前。ディレクトリは、ユーザーが作成した任意のディレクトリオブジェクト、または Data Pump ディレクトリ (例: `DATA_PUMP_DIR`) です。  | 
|  `p_error_on_zero_downloads`  |  VARCHAR2  | FALSE |  オプションです。  |  Amazon S3 バケット内のどのオブジェクトもプレフィックスと一致しない場合に、タスクによってエラーを発生させるかどうかを決定するフラグ。このパラメータが設定されていないか、FALSE (デフォルト) に設定されている場合、タスクはオブジェクトが見つからなかったというメッセージを出力しますが、例外が発生したり、エラーになったりすることはありません。このパラメータが TRUE の場合、タスクでは例外が発生し、エラーになります。 一致テストでエラーになる可能性のあるプレフィックス仕様の例としては、`' import/test9.log'` のようにプレフィックスにスペースが入るもの、または `test9.log` や `test9.LOG` のように大文字と小文字が一致しないものがあります。  | 
|  `p_s3_prefix`  |  VARCHAR2  |  –  |  必須  |  ダウンロードするファイル名が一致する必要があるファイル名のプレフィックス。プレフィックスを空にすると、指定された Amazon S3 バケット内の最上位ファイルがすべてダウンロードされますが、バケットのフォルダ内のファイルはダウンロードされません。 この手順では、プレフィックスと一致する初期のレベルのフォルダからのみ、Amazon S3 オブジェクトをダウンロードします。指定されたプレフィックスに一致する多層のディレクトリはダウンロードされません。 例えば、Amazon S3 バケットのフォルダ構造が `folder_1/folder_2/folder_3` とします。`'folder_1/folder_2/'` プレフィックスを指定します。この場合、`folder_2` のファイルのみダウンロードされ、`folder_1` または `folder_3` のファイルはダウンロードされません。 その代わりに、`'folder_1/folder_2'` を指定する場合、`folder_1` プレフィックスに一致する、`'folder_2'` のファイルはすべてダウンロードされますが、`folder_2` のファイルはダウンロードされません。  | 
|  `p_decompression_format`  |  VARCHAR2  |  –  |  オプションです。  |  解凍形式。有効な値は、解凍しない場合は `NONE`、解凍する場合は `GZIP` です。  | 

`rdsadmin.rdsadmin_s3_tasks.download_from_s3` プロシージャの戻り値はタスク ID です。

次の例では、`amzn-s3-demo-bucket` という名前の Amazon S3 バケットのファイルをすべて、`DATA_PUMP_DIR` ディレクトリにダウンロードします。ファイルは圧縮されていないため、解凍は適用されません。

```
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
      p_bucket_name    =>  'amzn-s3-demo-bucket',
      p_directory_name =>  'DATA_PUMP_DIR') 
   AS TASK_ID FROM DUAL;
```

以下の例では、`db` という名前の Amazon S3 バケット内にある、プレフィックス `amzn-s3-demo-bucket` がついたファイルをすべて、`DATA_PUMP_DIR` ディレクトリにダウンロードします。ファイルは GZIP で圧縮されているため、解凍が適用されます。`p_error_on_zero_downloads` パラメータはプレフィックスエラーチェックを有効にするため、プレフィックスがバケット内のどのファイルとも一致しない場合、タスクでは例外が発生し、エラーになります。

```
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
      p_bucket_name               =>  'amzn-s3-demo-bucket', 
      p_s3_prefix                 =>  'db', 
      p_directory_name            =>  'DATA_PUMP_DIR',
      p_decompression_format      =>  'GZIP',
      p_error_on_zero_downloads   =>  'TRUE') 
   AS TASK_ID FROM DUAL;
```

以下の例では、`myfolder/` という名前の Amazon S3 バケット内にある `amzn-s3-demo-bucket` フォルダ内のファイルをすべて、`DATA_PUMP_DIR` ディレクトリにダウンロードします。Amazon S3 フォルダを指定するには、`p_s3_prefix` パラメータを使用します。アップロードされたファイルは GZIP で圧縮されますが、ダウンロード中は解凍されません。

```
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
      p_bucket_name          =>  'amzn-s3-demo-bucket', 
      p_s3_prefix            =>  'myfolder/', 
      p_directory_name       =>  'DATA_PUMP_DIR',
      p_decompression_format =>  'NONE')
   AS TASK_ID FROM DUAL;
```

次の例では、`DATA_PUMP_DIR` ディレクトリに `amzn-s3-demo-bucket` という名前の Amazon S3 バケット内のファイル `mydumpfile.dmp` をダウンロードします。解凍は適用されません。

```
SELECT rdsadmin.rdsadmin_s3_tasks.download_from_s3(
      p_bucket_name    =>  'amzn-s3-demo-bucket', 
      p_s3_prefix      =>  'mydumpfile.dmp', 
      p_directory_name =>  'DATA_PUMP_DIR') 
   AS TASK_ID FROM DUAL;
```

それぞれの例では、`SELECT` ステートメントでは、タスクの ID が `VARCHAR2` データ型で返ります。

タスクの出力ファイルを表示すると、結果を確認できます。

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));
```

*`task-id`* は、この手順で返されたタスク ID に置き換えます。

**注記**  
タスクは非同期的に実行されます。  
ディレクトリからファイルを削除するには、Oracle プロシージャ `UTL_FILE.FREMOVE` を使用できます。詳細については、Oracle ドキュメントの「[FREMOVE プロシージャ](https://docs.oracle.com/database/121/ARPLS/u_file.htm#ARPLS70924)」を参照してください。

## ファイル転送のステータスをモニタリングする
<a name="oracle-s3-integration.using.task-status"></a>

ファイル転送タスクでは、スタート時と完了時に Amazon RDS イベントが発行されます。イベントメッセージには、ファイル転送のタスク ID が含まれています。イベントの表示の詳細については、「[Amazon RDS イベントの表示](USER_ListEvents.md)」を参照してください。

実行中のタスクのステータスは bdump ファイルで確認できます。bdump ファイルは `/rdsdbdata/log/trace` ディレクトリにあります。bdump ファイルの名前形式は、以下のとおりです。

```
dbtask-task-id.log
```

`task-id` を、モニタリングするタスクの ID に置き換えます。

**注記**  
タスクは非同期的に実行されます。

bdump ファイルの中身を表示するには、`rdsadmin.rds_file_util.read_text_file` ストアドプロシージャを使用します。例えば、次のクエリでは、bdump ファイル (`dbtask-1234567890123-1234.log`) の中身が返ります。

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-1234567890123-1234.log'));
```

次のサンプルは、転送が失敗したときのログファイルを示しています。

```
TASK_ID                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1234567890123-1234


TEXT                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2023-04-17 18:21:33.993 UTC [INFO ] File #1: Uploading the file /rdsdbdata/datapump/A123B4CDEF567890G1234567890H1234/sample.dmp to Amazon S3 with bucket name amzn-s3-demo-bucket and key sample.dmp.
2023-04-17 18:21:34.188 UTC [ERROR] RDS doesn't have permission to write to Amazon S3 bucket name amzn-s3-demo-bucket and key sample.dmp.
2023-04-17 18:21:34.189 UTC [INFO ] The task failed.
```

## Amazon S3 統合のトラブルシューティング
<a name="oracle-s3-integration.troubleshooting"></a>

トラブルシューティングのヒントについては、AWS re:Post の記事「[Amazon RDS for Oracle と Amazon S3 を統合する際の問題をトラブルシューティングするにはどうすればよいですか?](https://repost.aws/en/knowledge-center/rds-oracle-s3-integration)」を参照してください。

# Amazon S3 統合オプションの削除
<a name="oracle-s3-integration.removing"></a>

DB インスタンスから Amazon S3 統合オプションを削除できます。

Amazon S3 統合オプションを DB インスタンスから削除するには、次のいずれかを実行します。
+ 複数の DB インスタンスから Amazon S3 統合オプションを削除するには、DB インスタンスが属しているオプショングループから `S3_INTEGRATION` オプションを削除します。この変更はそのオプショングループを使用するすべての DB インスタンスに影響します。詳細については、「[オプショングループからオプションを削除する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption)」を参照してください。

   
+ 1 つの DB インスタンスから Amazon S3 統合オプションを削除するには、インスタンスを変更し、`S3_INTEGRATION` オプションを含まない別のオプショングループを指定します。デフォルト (空) のオプショングループや別のカスタムオプショングループを指定できます。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

# Oracle Application Express (APEX)
<a name="Appendix.Oracle.Options.APEX"></a>

Amazon RDS では、`APEX` および `APEX-DEV` オプションを使用した Oracle Application Express (APEX) がサポートされています。Oracle APEX は、ランタイム環境として、あるいはウェブベースのアプリケーション用の完全開発環境としてデプロイできます。Oracle APEX を使用して、ウェブブラウザ内でアプリケーション全体を構築できます。詳細については、Oracle ドキュメントの [Oracle Application Express](https://apex.oracle.com/) を参照してください。

**Topics**
+ [

## Oracle APEX コンポーネント
](#Appendix.Oracle.Options.APEX.components)
+ [

# 要件と制限
](Appendix.Oracle.Options.APEX.Requirements.md)
+ [

# Oracle APEX と Oracle Rest Data Services (ORDS) のセットアップ
](Appendix.Oracle.Options.APEX.settingUp.md)
+ [

# Oracle Rest Data Services (ORDS) の設定
](Appendix.Oracle.Options.APEX.ORDSConf.md)
+ [

# Oracle APEX のアップグレードと削除
](Appendix.Oracle.Options.APEX.UpgradeandRemove.md)

## Oracle APEX コンポーネント
<a name="Appendix.Oracle.Options.APEX.components"></a>

Oracle APEX は、次の主要コンポーネントで構成されています。
+ Oracle APEX アプリケーションおよびコンポーネントのメタデータを格納する*リポジトリ*。リポジトリは、テーブル、インデックス、および Amazon RDS DB インスタンスにインストールされている他のオブジェクトで構成されます。
+ Oracle APEX クライアントとの HTTP 通信を管理する*リスナー*。リスナーは別個のホスト (Amazon EC2 インスタンス、社内のオンプレミスサーバー、またはデスクトップコンピュータなど) に配置します。リスナーは、ウェブブラウザからの受信接続を受け入れ、処理するためにそれらを Amazon RDS DB インスタンスに転送した後、リポジトリからの結果をブラウザに戻します。

  Amazon RDS for Oracle は、次のタイプのリスナーをサポートしています。
  + Oracle APEX バージョン 5.0 以降では、Oracle REST Data Services (ORDS) バージョン 19.1 以上を使用します。サポートされている最新バージョンの Oracle APEX および ORDS を使用することをお勧めします。このドキュメントでは、下位互換性のためだけに古いバージョンについて説明しています。
  + Oracle APEX バージョン 4.1.1 では、Oracle APEX リスナーのバージョン 1.1.4 を使用できます。
  + Oracle HTTP Server や`mod_plsql` リスナーを使用できます。
**注記**  
Amazon RDS では、埋込み PL/SQL ゲートウェイの Oracle XML DB HTTP サーバーを Oracle APEX のリスナーとしてサポートしません。一般的に、Oracle では、インターネット上で稼働するアプリケーションで埋め込みの PL/SQL ゲートウェイを使用しないことが推奨されています。

  詳細については、Oracle ドキュメントの「[Web リスナーの選択について](https://docs.oracle.com/database/apex-5.1/HTMIG/choosing-web-listener.htm#HTMIG29321)」を参照してください。

RDS for Oracle DB インスタンスに `APEX` オプションと `APEX-DEV` オプションを追加すると、Amazon RDS は Oracle APEX リポジトリのみをインストールします。リスナーを別のホストにインストールします。

# 要件と制限
<a name="Appendix.Oracle.Options.APEX.Requirements"></a>

このトピックでは、Oracle APEX と ORDS の要件と制限を一覧表示します。

## Oracle APEX バージョンの要件
<a name="Appendix.Oracle.Options.APEX.versions"></a>

`APEX` オプションは、DB インスタンスの DB インスタンスクラスでストレージを使用します。以下に、Oracle APEX でサポートされているバージョンおよびおよそのストレージ要件を示します。


****  

| Oracle APEX バージョン | ストレージの要件 | サポートされている Oracle Database のバージョン | 注意事項 | 
| --- | --- | --- | --- | 
|  Oracle APEX バージョン 24.2.v1  |  114 MiB  |  すべて  |  このバージョンには、パッチ 37885097: PSE BUNDLE FOR APEX 24.2 (PSES ON TOP OF 24.2.0)、PATCH\$1VERSION 4 が含まれています。  | 
|  Oracle APEX バージョン 24.1.v1  |  112 MiB  |  すべて  |  このバージョンには、パッチ 36695709: PSE BUNDLE FOR APEX 24.1 (PSES ON TOP OF 24.1.0), PATCH\$1VERSION 3 が含まれています。EC2 インスタンスにインストールするのにまったく同じ APEX イメージバージョンが必要な場合は、パッチ 37544819: 24.1.3 PSE BUNDLE FOR APEX 24.1 (PSES ON TOP OF 24.1.0) をダウンロードします。  | 
|  Oracle APEX バージョン 23.2.v1  |  110 MiB  |  すべて  |  このバージョンには、パッチ 35895964: PSE BUNDLE FOR APEX 23.2 (PSES ON TOP OF 23.2.0)、PATCH\$1VERSION 6 が含まれています。EC2 インスタンスにインストールするのにまったく同じ APEX イメージバージョンが必要な場合は、パッチ 37593125: 23.2.6 PSE BUNDLE FOR APEX 23.2 (PSES ON TOP OF 23.2.0) をダウンロードします。  | 
|  Oracle APEX バージョン 23.1.v1  |  106 MiB  |  すべて  |  このバージョンには、パッチ 35283657: PSE BUNDLE FOR APEX 23.1 (PSES ON TOP OF 23.1.0), PATCH\$1VERSION 2 が含まれています。  | 
|  Oracle APEX バージョン 22.2.v1  |  106 MiB  |  すべて  |  このバージョンには、パッチ 34628174: PSE BUNDLE FOR APEX 22.2 (PSES ON TOP OF 22.2.0)、PATCH\$1VERSION 4 が含まれています。  | 
|  Oracle APEX バージョン 22.1.v1  |  124 MiB  |  すべて  |  このバージョンには、パッチ 34020981: PSE BUNDLE FOR APEX 22.1 (PSES ON TOP OF 22.1.0)、PATCH\$1VERSION 6 が含まれています。  | 
|  Oracle APEX バージョン 21.2.v1  |  125 MiB  |  すべて  |  このバージョンには、パッチ 33420059: PSE BUNDLE FOR APEX 21.2 (PSES ON TOP OF 21.2.0)、PATCH\$1VERSION 8 が含まれています。  | 
|  Oracle APEX バージョン 21.1.v1  |  125 MiB  |  すべて  |  このバージョンには、パッチ 32598392 (PSE BUNDLE FOR APEX 21.1、PATCH\$1VERSION 3) が含まれています。  | 
|  Oracle APEX バージョン 20.2.v1  |  148 MiB  |  Oracle Database 21c を除くすべて  |  このバージョンには、パッチ 32006852 (PSE BUNDLE FOR APEX 20.2、PATCH\$1VERSION 2020.11.12) が含まれています。以下のクエリを実行すると、パッチの番号と日付を確認できます。 <pre>SELECT PATCH_VERSION, PATCH_NUMBER <br />FROM   APEX_PATCHES;</pre>  | 
|  Oracle APEX バージョン 20.1.v1  |  173 MiB  |  Oracle Database 21c を除くすべて  |  このバージョンには、パッチ 30990551 (PSE BUNDLE FOR APEX 20.1, PATCH\$1VERSION 2020.07.15) が含まれています。  | 
|  Oracle APEX バージョン 19.2.v1  |  149 MiB  |  Oracle Database 21c を除くすべて  |  | 
|  Oracle APEX バージョン 19.1.v1  |  148 MiB  |  Oracle Database 21c を除くすべて  |  | 

ダウンロード可能な Oracle APEX.zip ファイルについては、Oracle のウェブサイトで「[Oracle APEX Prior Release Archives](https://www.oracle.com/tools/downloads/apex-all-archives-downloads.html)」を参照してください。

## Oracle APEX および ORDS の前提条件
<a name="Appendix.Oracle.Options.APEX.PreReqs"></a>

Oracle APEX と ORDS を使用する際、以下の前提条件に注意してください。
+ システムは Java ランタイム環境 (JRE) を使用する必要があります。
+ Oracle クライアントのインストールには次が含まれている必要があります。
  + 管理タスク用の SQL\$1Plus または SQL Developer
  + RDS for Oracle DB インスタンスへの接続を設定するための Oracle Net Services

## Oracle APEX の制限事項
<a name="Appendix.Oracle.Options.APEX.limitations"></a>

`APEX_version` ユーザーアカウントは、Amazon RDS によって管理され、ユーザーが変更することはできません。したがって、このユーザーにデータベースプロファイルを適用したり、パスワードルールを適用したりすることはできません。`APEX_version` のプロファイルとパスワードの設定は Oracle と AWS によって事前定義されており、Amazon RDS のセキュリティ要件を満たすように設計されています。

# Oracle APEX と Oracle Rest Data Services (ORDS) のセットアップ
<a name="Appendix.Oracle.Options.APEX.settingUp"></a>

次のトピックでは、Oracle APEX と ORDS のセットアップに必要な手順を示します。

**Topics**
+ [

## APEX および APEX-DEV オプションの DB インスタンスへの追加
](#Appendix.Oracle.Options.APEX.Add)
+ [

## DB インスタンスのパブリックユーザーアカウントのロック解除
](#Appendix.Oracle.Options.APEX.PublicUser)
+ [

## Oracle APEX の RESTful サービスの設定
](#Appendix.Oracle.Options.APEX.ConfigureRESTful)
+ [

## ORDS を別のホストにインストールする準備
](#Appendix.Oracle.Options.APEX.ORDS.ords-setup)
+ [

## Oracle APEX リスナーの設定
](#Appendix.Oracle.Options.APEX.Listener)

## APEX および APEX-DEV オプションの DB インスタンスへの追加
<a name="Appendix.Oracle.Options.APEX.Add"></a>

RDS for Oracle DB インスタンスに `APEX` および `APEX-DEV` オプションを追加するには、次の手順を実行します。

1. 新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更します。

1. オプショングループに `APEX` と `APEX-DEV` オプションを追加します。

1. オプショングループを DB インスタンスに関連付けます。

`APEX` オプションと `APEX-DEV` オプションを追加すると、DB インスタンスが自動的に再起動する間に短時間の停止が発生します。

**注記**  
`APEX_MAIL` は、`APEX` オプションがインストールされている場合に使用できます。`APEX_MAIL` パッケージの実行権限が `PUBLIC` に付与されるため、APEX 管理者アカウントを使用する必要はありません。

**APEX オプションと APEX-DEV オプションを DB インスタンスに追加するには**

1. 使用するオプショングループを決定します。新しいオプショングループを作成することも、既存のオプショングループを使用することもできます。既存のオプショングループを使用する場合は、次のステップは飛ばしてください。または、次の設定でカスタム DB オプショングループを作成します。

   1. [**Engine**] で、使用する Oracle のエディションを選択します。`APEX` オプションと `APEX-DEV` オプションは、すべてのエディションでサポートされます。

   1. [**メジャーエンジンのバージョン**] で、DB インスタンスのバージョンを選択します。

   詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. オプショングループにオプションを追加します。Oracle APEX ランタイム環境のみをデプロイする場合には、`APEX` オプションのみを追加します。完全なデプロイ環境をデプロイするには、`APEX` と `APEX-DEV` の両方のオプションを追加します。

   **[バージョン]** で、使用する Oracle APEX のバージョンを選択します。
**重要**  
1 つ以上の DB インスタンスに既にアタッチされている既存のオプショングループに `APEX` オプションまたは `APEX-DEV` オプションを追加すると、短時間の停止が発生します。この停止の間、すべての DB インスタンスが自動的に再起動されます。

   オプションの追加方法の詳細については、「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。

1. 新規または既存の DB インスタンスに、DB オプショングループを適用します。
   + 新規 DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
   + 既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。既存の DB インスタンスに `APEX` オプションまたは `APEX-DEV` オプションを追加すると、DB インスタンスが自動的に再起動する間に短時間の停止が発生します。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## DB インスタンスのパブリックユーザーアカウントのロック解除
<a name="Appendix.Oracle.Options.APEX.PublicUser"></a>

`APEX` オプションまたは `APEX-DEV` オプションを DB インスタンスにインストールしたら、次の操作を必ず実行してください。

1. `APEX_PUBLIC_USER` アカウントのパスワードを変更します。

1. アカウントのロックを解除します。

Oracle SQL\$1Plus コマンドラインユーティリティを使用してこれを行うことができます。DB インスタンスにマスターユーザーとして接続し、次のコマンドを発行します。`new_password` を任意のパスワードに置き換えます。

```
1. ALTER USER APEX_PUBLIC_USER IDENTIFIED BY new_password;
2. ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK;
```

## Oracle APEX の RESTful サービスの設定
<a name="Appendix.Oracle.Options.APEX.ConfigureRESTful"></a>

Oracle APEX で RESTful サービスを設定するには (APEX 4.1.1.V1 では必要ありません)、SQL\$1Plus を使用して、マスターユーザーとして DB インスタンスに接続します。接続したら、`rdsadmin.rdsadmin_run_apex_rest_config` ストアドプロシージャを実行します。ストアドプロシージャを実行するときは、次のユーザーにパスワードを提供します。
+ `APEX_LISTENER`
+ `APEX_REST_PUBLIC_USER`

ストアドプロシージャは `apex_rest_config.sql` スクリプトを実行し、そのスクリプトによりそれらのユーザーの新しいデータベースアカウントが作成されます。

**注記**  
Oracle APEX バージョン 4.1.1.v1 に対する設定は不要です。この Oracle APEX バージョンに限り、ストアドプロシージャの実行は不要です。

次のコマンドはストアドプロシージャを実行します。

```
1. EXEC rdsadmin.rdsadmin_run_apex_rest_config('apex_listener_password', 'apex_rest_public_user_password');
```

## ORDS を別のホストにインストールする準備
<a name="Appendix.Oracle.Options.APEX.ORDS.ords-setup"></a>

別個のホスト (Amazon EC2 インスタンス、社内のオンプレミスサーバー、またはデスクトップコンピュータなど) にインストールします。このセクションの例では、ホストが Linux を実行し、`myapexhost.example.com` という名前が付けられていることを前提としています。

ORDS をインストールする前に、権限のない OS ユーザーを作成し、Oracle APEX インストールファイルをダウンロードして解凍する必要があります。

**ORDS のインストールを準備するには**

1. `myapexhost.example.com` として `root` にログインします。

1. リスナーのインストールを所有する権限を持っていない OS ユーザーを作成します。以下のコマンドでは、*apexuser* という名前の新規ユーザーを作成します。

   ```
   useradd -d /home/apexuser apexuser
   ```

   以下のコマンドは、新規ユーザーにパスワードを割り当てます。

   ```
   passwd apexuser;
   ```

1. `myapexhost.example.com` に `apexuser` としてログインし、Oracle APEX のインストールファイルを Oracle から `/home/apexuser` ディレクトリにダウンロードします。
   + [http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html](http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html) 
   + [Oracle Application Express Prior Release Archives](http://www.oracle.com/technetwork/developer-tools/apex/downloads/all-archives-099381.html) 

1. ファイルを `/home/apexuser` ディレクトリに解凍します。

   ```
   unzip apex_version.zip
   ```

   ファイルは、`apex` ディレクトリ内に `/home/apexuser` ディレクトリとして解凍されます。

1. `myapexhost.example.com` に `apexuser` としてログインしている間に Oracle から Oracle REST Data Services ファイルを `/home/apexuser` ディレクトリにダウンロードします。[http://www.oracle.com/technetwork/developer-tools/apex-listener/downloads/index.html](http://www.oracle.com/technetwork/developer-tools/apex-listener/downloads/index.html)

## Oracle APEX リスナーの設定
<a name="Appendix.Oracle.Options.APEX.Listener"></a>

**注記**  
Oracle APEX リスナーは非推奨です。

Amazon RDS for Oracle は、引き続き Oracle APEX バージョン 4.1.1 および Oracle APEX リスナーバージョン 1.1.4 をサポートします。サポートされている最新バージョンの Oracle APEX および ORDS を使用することをお勧めします。

Oracle APEX Listener は別個のホストにインストールします (Amazon EC2 インスタンス、社内のオンプレミスサーバー、またはデスクトップコンピュータ)。ここでは、ホスト名が `myapexhost.example.com` であり、ホストで Linux が実行されていることが前提です。

### Oracle APEX リスナーのインストールの準備
<a name="Appendix.Oracle.Options.APEX.Listener.preparing"></a>

Oracle APEX リスナーをインストールする前に、権限のない OS ユーザーを作成し、Oracle APEX インストールファイルをダウンロードして解凍する必要があります。

**Oracle APEX リスナーのインストールを準備するには**

1. `myapexhost.example.com` として `root` にログインします。

1. リスナーのインストールを所有する権限を持っていない OS ユーザーを作成します。以下のコマンドでは、*apexuser* という名前の新規ユーザーを作成します。

   ```
   useradd -d /home/apexuser apexuser
   ```

   以下のコマンドは、新規ユーザーにパスワードを割り当てます。

   ```
   passwd apexuser;
   ```

1. `myapexhost.example.com` に `apexuser` としてログインし、Oracle APEX のインストールファイルを Oracle から `/home/apexuser` ディレクトリにダウンロードします。
   + [http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html](http://www.oracle.com/technetwork/developer-tools/apex/downloads/index.html) 
   + [Oracle Application Express Prior Release Archives](http://www.oracle.com/technetwork/developer-tools/apex/downloads/all-archives-099381.html) 

1. ファイルを `/home/apexuser` ディレクトリに解凍します。

   ```
   unzip apex_<version>.zip                
   ```

   ファイルは、`apex` ディレクトリ内に `/home/apexuser` ディレクトリとして解凍されます。

1. `myapexhost.example.com` に `apexuser` としてログインしている間に、Oracle APEX Listener ファイルを Oracle から `/home/apexuser` ディレクトリにダウンロードします。

#### Oracle APEX リスナーのインストールと設定
<a name="Appendix.Oracle.Options.APEX.Listener.installing"></a>

Oracle APEX を使用する前に、`apex.war` ファイルをダウンロードし、Java を使用して Oracle APEX リスナーをインストールしてから、リスナーを起動する必要があります。

**Oracle APEX リスナーをインストールして設定するには**

1. Oracle APEX リスナーに基づいて新しいディレクトリを作成し、リスナーファイルを開きます。

   以下のコードを実行します。

   ```
   mkdir /home/apexuser/apexlistener
   cd /home/apexuser/apexlistener 
   unzip ../apex_listener.version.zip
   ```

1. 以下の コードを実行します。

   ```
   java -Dapex.home=./apex -Dapex.images=/home/apexuser/apex/images -Dapex.erase -jar ./apex.war
   ```

1. 次のプログラムプロンプトの情報を入力します。
   + APEX Listener Administrator のユーザー名。デフォルト値は *adminlistener* です。
   + APEX Listener Administrator のパスワード。
   + APEX リスナーマネージャのユーザー名。デフォルトは *managerlistener* です。
   + APEX Listener Administrator のパスワード。

   プログラムは、次のように設定を完了するために必要な URL を出力します。

   ```
   INFO: Please complete configuration at: http://localhost:8080/apex/listenerConfigure
   Database is not yet configured
   ```

1. Oracle Application Express を使用できるように、Oracle APEX リスナーを実行したままにします。この設定手順を完了したら、リスナーをバックグラウンドで実行できます。

1. ウェブブラウザから、Oracle APEX リスナープログラムが提供する URL にアクセスします。Oracle Application Express Listener の管理ウィンドウが表示されます。次の情報を入力します。
   + **Username** - `APEX_PUBLIC_USER`
   + **[Password]** - *APEX\$1PUBLIC\$1USER* のパスワード このパスワードは、以前に Oracle APEX リポジトリの設定時に指定したパスワードです。詳細については、「[DB インスタンスのパブリックユーザーアカウントのロック解除](#Appendix.Oracle.Options.APEX.PublicUser)」を参照してください。
   + **Connection Type** - Basic 
   + **Hostname** - Amazon RDS DB インスタンスのエンドポイント。`mydb.f9rbfa893tft.us-east-1.rds.amazonaws.com` など。
   + **[Port**] - 1521
   + **SID** - Amazon RDS DB インスタンスのデータベースの名前。`mydb` など。

1. [**Apply**] を選択します。Oracle APEX の管理ウィンドウが表示されます。

1. Oracle APEX の `admin` ユーザーのパスワードを設定します。これを行うには、SQL\$1Plus を使用して DB インスタンスにマスターユーザーとして接続し、次のコマンドを実行します。

   ```
   1. EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role;
   2. grant APEX_ADMINISTRATOR_ROLE to master;
   3. @/home/apexuser/apex/apxchpwd.sql
   ```

   `master` を自身のマスターユーザー名に置き換えます。`apxchpwd.sql` スクリプトによってプロンプトが表示されたら、新しい `admin` パスワードを入力します。

1. ブラウザで Oracle APEX の管理ウィンドウに戻り、**[管理]** を選択します。次に、[**Application Express Internal Administration**] を選択します。認証情報を求められたら、以下の情報を入力します。
   + **User name** - `admin` 
   + **Password** - `apxchpwd.sql` スクリプトを使用して設定したパスワード。

   [**Login**] を選択し、その `admin` ユーザーの新しいパスワードを設定します。

これで、リスナーを使用する準備ができました。

# Oracle Rest Data Services (ORDS) の設定
<a name="Appendix.Oracle.Options.APEX.ORDSConf"></a>

次のトピックでは、ORDS 21 および 22 の設定オプションを一覧表示します。

**Topics**
+ [

## ORDS 21 以前のインストールと設定
](#Appendix.Oracle.Options.APEX.ORDS)
+ [

## ORDS 22 以降のインストールと設定
](#Appendix.Oracle.Options.APEX.ORDS22)

## ORDS 21 以前のインストールと設定
<a name="Appendix.Oracle.Options.APEX.ORDS"></a>

これで、Oracle APEX で使用する Oracle Rest Data Services (ORDS) をインストールして設定する準備が整いました。Oracle APEX バージョン 5.0 以降では、ORDS バージョン 19.1～21 を使用します。ORDS 22 以降をインストールする方法については、「[ORDS 22 以降のインストールと設定](#Appendix.Oracle.Options.APEX.ORDS22)」を参照してください。

リスナーは別個のホスト (Amazon EC2 インスタンス、社内のオンプレミスサーバー、またはデスクトップコンピュータなど) にインストールします。このセクションの例では、ホストの名前が `myapexhost.example.com` であり、ホストが Linux を実行していると仮定します。

**Oracle APEX で使用する ORDS 21 以前をインストールして設定するには**

1. [Oracle REST data services](https://www.oracle.com/database/technologies/appdev/rest-data-services-downloads-212.html) に移動し、Readme を確認します。必要なバージョンの Java がインストールされていることを確認します。

1. ORDS インストール用の新しいディレクトリを作成します。

   ```
   mkdir /home/apexuser/ORDS
   cd /home/apexuser/ORDS
   ```

1. [Oracle REST Data Services](https://www.oracle.com/database/technologies/appdev/rest-data-services-downloads-212.html) から、ファイル `ords.version.number.zip` をダウンロードします。

1. ファイルを `/home/apexuser/ORDS` ディレクトリに解凍します。

1. マルチテナントデータベースに ORDS をインストールする場合は、ファイル `/home/apexuser/ORDS/params/ords_params.properties` に次の行を追加します。

   ```
   pdb.disable.lockdown=false
   ```

1. マスターユーザーに ORDS のインストールに必要な権限を付与します。

   Oracle APEX のオプションをインストールしたら、ORDS スキーマをインストールするために必要な権限をマスターユーザーに付与します。これを行うには、データベースに接続し、次のコマンドを実行します。`MASTER_USER` をマスターユーザーの (大文字で記述した) 名前に置き換えます。
**重要**  
大文字と小文字を区別する識別子を使用してユーザーを作成した場合を除き、ユーザー名を入力する際には大文字を使用します。例えば、`CREATE USER myuser` または `CREATE USER MYUSER` を実行すると、データディクショナリに `MYUSER` が保存されます。ただし、`CREATE USER "MyUser"` で二重引用符を使用すると、データディクショナリには `MyUser` が保存されます。詳細については、「[SYS オブジェクトへの SELECT または EXECUTE 権限の付与](Appendix.Oracle.CommonDBATasks.TransferPrivileges.md)」を参照してください。

   ```
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_ROLE_PRIVS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONS_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONSTRAINTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_OBJECTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_PROCEDURES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TABLES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_VIEWS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('WPIUTL', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SESSION', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_UTILITY', 'MASTER_USER', 'EXECUTE', true);
   ```
**注記**  
これらのコマンドは、ORDS バージョン 19.1 以降に適用されます。

1. ダウンロードした ords.war ファイルを使用して ORDS スキーマをインストールします。

   ```
   java -jar ords.war install advanced
   ```

   プログラムが以下の情報のプロンプトを表示します。デフォルト値は角括弧で囲まれています。詳細については、Oracle ドキュメントの [Introduction to Oracle REST Data Services](https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/20.2/aelig/installing-REST-data-services.html#GUID-6F7B4E61-B730-4E73-80B8-F53299123730) を参照してください。
   + 設定データを保存する場所を入力します。

     「*/home/apexuser/ORDS*」と入力します。これは ORDS 設定ファイルの場所です。
   + 使用するデータベース接続タイプを指定します。[1] ベーシック、[2] TNS、[3] カスタム URL に対応する番号を入力します [1]:

     目的の接続タイプを選択します。
   + データベースサーバーの名前を入力します [localhost]: *DB\$1instance\$1endpoint*

     デフォルト値を選択するか、適切な値を入力します。
   + データベースリスナーポートを入力します [1521]: *DB\$1instance\$1port*

     デフォルト値を選択するか、適切な値を入力します。
   + データベースサービス名を指定するには 1 を、データベース SID を指定するには 2 を入力してください [1]:

     `2` を選択して、データベース SID を指定します。
   + データベース SID [xe]

     デフォルト値を選択するか、適切な値を入力します。
   + Oracle REST Data Services スキーマを検証/インストールする場合は 1 を、このステップをスキップする場合は 2 を入力します [1]:

     [] を選択します`1` このステップでは、ORDS\$1PUBLIC\$1USER という名前の Oracle REST Data Services プロキシユーザーを作成します。
   + ORDS\$1PUBLIC\$1USER のデータベースパスワードを入力します。

     パスワードを入力し、確認のためにもう一度入力します。
   + Oracle REST Data Services のスキーマを検証するには、管理者権限でログインする必要があります。

     管理者ユーザー名: *master\$1user*

     *master\$1user*: *master\$1user\$1password* のデータパスワードを入力する

     パスワードを確認する: *master\$1user\$1password*
**注記**  
セキュリティ上のベストプラクティスとして、ここに示されているプロンプト以外のパスワードを指定してください。
   + ORDS\$1METADATA [SYSAUX] のデフォルトのテーブルスペースを入力します。

     ORDS\$1METADATA [TEMP] のテンポラリテーブルスペースを入力します。

     ORDS\$1PUBLIC\$1USER [USERS] のデフォルトのテーブルスペースを入力します。

     ORDS\$1PUBLIC\$1USER [TEMP] のテンポラリテーブルスペースを入力します。
   + PL/SQL Gateway を使用する場合は 1 を入力し、このステップをスキップするには 2 を入力します。Oracle Application Express を使用している場合、または mod\$1plsql から移行する場合は、1 [1] を入力する必要があります。

     デフォルト値を選択します。
   + PL/SQL ゲートウェイデータベースのユーザー名として [APEX\$1PUBLIC\$1USER] を入力します。

     デフォルト値を選択します。
   + APEX\$1PUBLIC\$1USER のデータベースパスワードを入力します。

     パスワードを入力し、確認のためにもう一度入力します。
   + 1 を入力して、Application Express RESTful Services データベースユーザー (APEX\$1LISTENER、APEX\$1REST\$1PUBLIC\$1USER) のパスワードを指定するか、2 を入力して、このステップをスキップします [1]:

     APEX 4.1.1.V1 に対して `2` を選択するか、他のすべての APEX バージョンに対して `1` を選択します。
   + [APEX 4.1.1.v1 では不要] APEX\$1LISTENER のデータベースパスワード

     パスワードを入力し (必要な場合)、確認のためにもう一度入力します。
   + [APEX 4.1.1.v1 では不要] APEX\$1REST\$1PUBLIC\$1USER のデータベースパスワード

     パスワードを入力し (必要な場合)、確認のためにもう一度入力します。
   + 有効にする機能に対応する番号を入力します。

     SQL Developer Web、REST Enabled SQL、および Database API 機能をすべて有効にするには、`1` を入力します。
   + スタンドアロンモードでスタートする場合は 1 を、終了する場合は 2 を入力します [1]:

     `1` と入力します。
   + APEX 静的リソースの場所を入力します。

     APEX インストールファイルを `/home/apexuser` に解凍した場合は、「`/home/apexuser/apex/images`」と入力します。それ以外の場合は、`unzip_path/apex/images` を入力します。*unzip\$1path* は、ファイルを解凍したディレクトリです。
   + HTTP を使用する場合は 1 を、HTTPS を使用する場合は 2 を入力します [1]:

     `1` を入力する場合は、HTTP ポートを指定します。`2` を入力する場合は、HTTPS ポートと SSL ホスト名を指定します。HTTPS オプションでは、証明書を提供する方法を指定するように求められます。
     + 自己署名証明書を使用するには、`1` を入力します。
     + 独自の証明書を提供するには、`2` を入力します。`2` を入力する場合は、SSL 証明書のパス、およびその証明書のシークレットキーのパスを指定します。

1. APEX `admin` ユーザーのパスワードを設定します。これを行うには、SQL\$1Plus を使用して DB インスタンスにマスターユーザーとして接続し、次のコマンドを実行します。

   ```
   1. EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role;
   2. grant APEX_ADMINISTRATOR_ROLE to master;
   3. @/home/apexuser/apex/apxchpwd.sql
   ```

   `master` を自身のマスターユーザー名に置き換えます。`apxchpwd.sql` スクリプトによってプロンプトが表示されたら、新しい `admin` パスワードを入力します。

1. ORDS リスナーを起動します。以下の コードを実行します。

   ```
   java -jar ords.war
   ```

   ORDS を初めてスタートすると、APEX の静的リソースの場所を指定するように求められます。このイメージフォルダは、APEX のインストールディレクトリ内の `/apex/images` ディレクトリにあります。

1. ブラウザで Oracle APEX の管理ウィンドウに戻り、**[管理]** を選択します。次に、[**Application Express Internal Administration**] を選択します。認証情報を求められたら、以下の情報を入力します。
   + **User name** - `admin` 
   + **Password** - `apxchpwd.sql` スクリプトを使用して設定したパスワード。

   [**Login**] を選択し、その `admin` ユーザーの新しいパスワードを設定します。

これで、リスナーを使用する準備ができました。

## ORDS 22 以降のインストールと設定
<a name="Appendix.Oracle.Options.APEX.ORDS22"></a>

これで、Oracle APEX で使用する Oracle Rest Data Services (ORDS) をインストールして設定する準備が整いました。このセクションの例では、別個のホストの名前が `myapexhost.example.com` であり、ホストが Linux を実行していると仮定します。ORDS 22 の手順は、以前のリリースの手順とは異なります。

**Oracle APEX で使用するための ORDS 22 以降をインストールして設定するには**

1. [Oracle REST data services](http://www.oracle.com/technetwork/developer-tools/rest-data-services/downloads/index.html) に移動し、ダウンロードする ORDS バージョンの Readme を確認します。必要なバージョンの Java がインストールされていることを確認します。

1. ORDS インストール用の新しいディレクトリを作成します。

   ```
   mkdir /home/apexuser/ORDS
   cd /home/apexuser/ORDS
   ```

1. [Oracle REST Data Services](http://www.oracle.com/technetwork/developer-tools/rest-data-services/downloads/index.html) から、ファイル `ords.version.number.zip` または `ords-latest.zip` をダウンロードします。

1. ファイルを `/home/apexuser/ORDS` ディレクトリに解凍します。

1. マスターユーザーに ORDS のインストールに必要な権限を付与します。

   `APEX` オプションをインストールしたら、ORDS スキーマをインストールするために必要な権限をマスターユーザーに付与します。これを行うには、データベースにログインして、以下のコマンドを実行します。`MASTER_USER` をマスターユーザーの (大文字で記述した) 名前に置き換えます。
**重要**  
大文字と小文字を区別する識別子を使用してユーザーを作成した場合を除き、ユーザー名を入力する際には大文字を使用します。例えば、`CREATE USER myuser` または `CREATE USER MYUSER` を実行すると、データディクショナリに `MYUSER` が保存されます。ただし、`CREATE USER "MyUser"` で二重引用符を使用すると、データディクショナリには `MyUser` が保存されます。詳細については、「[SYS オブジェクトへの SELECT または EXECUTE 権限の付与](Appendix.Oracle.CommonDBATasks.TransferPrivileges.md)」を参照してください。

   ```
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_OBJECTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_ROLE_PRIVS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONS_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_CONSTRAINTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_OBJECTS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_PROCEDURES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TAB_COLUMNS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_TABLES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('USER_VIEWS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('WPIUTL', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SESSION', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_UTILITY', 'MASTER_USER', 'EXECUTE', true);
   
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_LOB', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_ASSERT', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_OUTPUT', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SCHEDULER', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('HTP', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('OWA', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('WPG_DOCLOAD', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_CRYPTO', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_METADATA', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_SQL', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('UTL_SMTP', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBMS_NETWORK_ACL_ADMIN', 'MASTER_USER', 'EXECUTE', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('SESSION_PRIVS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_USERS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_NETWORK_ACL_PRIVILEGES', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_NETWORK_ACLS', 'MASTER_USER', 'SELECT', true);
   exec rdsadmin.rdsadmin_util.grant_sys_object('DBA_REGISTRY', 'MASTER_USER', 'SELECT', true);
   ```
**注記**  
上記のコマンドは、ORDS 22 以降に適用されます。

1. ダウンロードした `ords` スクリプトを使用して、ORDS スキーマをインストールします。設定ファイルとログファイルを格納するディレクトリを指定します。Oracle Corporation では、これらのディレクトリを ORDS 製品ソフトウェアが含まれているディレクトリ内に配置しないことを推奨しています。

   ```
   mkdir -p /home/apexuser/ords_config /home/apexuser/ords_logs
   
   /home/apexuser/ORDS/bin/ords \
     --config /home/apexuser/ords_config \
     install --interactive --log-folder /home/apexuser/ords_logs
   ```

   コンテナデータベース (CDB) アーキテクチャを実行する DB インスタンスでは、ORDS 23.3 以降を使用し、ORDS のインストール時に `--pdb-skip-disable-lockdown` 引数を渡します。

   ```
   /home/apexuser/ORDS/bin/ords \
     --config /home/apexuser/ords_config \
     install --interactive --log-folder /home/apexuser/ords_logs --pdb-skip-disable-lockdown
   ```

   プログラムが以下の情報のプロンプトを表示します。デフォルト値は角括弧で囲まれています。詳細については、Oracle ドキュメントの [Introduction to Oracle REST Data Services](https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/20.2/aelig/installing-REST-data-services.html#GUID-6F7B4E61-B730-4E73-80B8-F53299123730) を参照してください。
   + `Choose the type of installation:`

     **2** を選択して ORDS スキーマをデータベースにインストールし、ローカルの ORDS 設定ファイルにデータベース接続プールを作成します。
   + `Specify the database connection type to use. Enter number for [1] Basic [2] TNS [3] Custom URL:`

     目的の接続タイプを選択します。この例では、ユーザーが **1** を選択することを前提としています。
   + `Enter the name of the database server [localhost]:` ***DB\$1instance\$1endpoint***

     デフォルト値を選択するか、適切な値を入力します。
   + `Enter the database listener port [1521]:` ***DB\$1instance\$1port***

     デフォルト **1521** を選択するか、適切な値を入力します。
   + `Enter the database service name [orcl]:`

     RDS for Oracle DB インスタンスで使用するデータベース名を入力します。
   + `Provide database user name with administrator privileges`

      RDS for Oracle DB インスタンスのマスターユーザー名を入力します。
   + `Enter the database password for [username]:`

     RDS for Oracle DB インスタンスのマスターパスワードを入力します。
   + `Enter the default tablespace for ORDS_METADATA and ORDS_PUBLIC_USER [SYSAUX]:`
   + `Enter the temporary tablespace for ORDS_METADATA [TEMP]. Enter the default tablespace for ORDS_PUBLIC_USER [USERS]. Enter the temporary tablespace for ORDS_PUBLIC_USER [TEMP].`
   + `Enter a number to select additional feature(s) to enable [1]:`
   + `Enter a number to configure and start ORDS in standalone mode [1]: `

      **2** を選択して ORDS をスタンドアロンモードですぐに起動しないようにします。
   + `Enter a number to select the protocol [1] HTTP`
   + `Enter the HTTP port [8080]:`
   + `Enter the APEX static resources location:`

     Oracle APEX インストールファイル (`/home/apexuser/apex/images`) へのパスを入力します。

1. Oracle APEX の `admin` ユーザーのパスワードを設定します。これを行うには、SQL\$1Plus を使用して DB インスタンスにマスターユーザーとして接続し、次のコマンドを実行します。

   ```
   1. EXEC rdsadmin.rdsadmin_util.grant_apex_admin_role;
   2. grant APEX_ADMINISTRATOR_ROLE to master;
   3. @/home/apexuser/apex/apxchpwd.sql
   ```

   `master` を自身のマスターユーザー名に置き換えます。`apxchpwd.sql` スクリプトによってプロンプトが表示されたら、新しい `admin` パスワードを入力します。

1. `ords` スクリプトで `serve` コマンドを使用して ORDS をスタンドアロンモードで実行します。実稼働環境へのデプロイでは、Apache Tomcat や Oracle WebLogic Server など、サポートされている Java EE アプリケーションサーバーの使用を検討します。詳細については、Oracle Database ドキュメントの「[Oracle REST Data Services のデプロイおよびモニター](https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/23.1/ordig/deploying-and-monitoring-oracle-rest-data-services.html#GUID-6791F5DF-AC67-4885-BFFA-B80964C17EC9)」を参照してください。

   ```
   /home/apexuser/ORDS/bin/ords \
     --config /home/apexuser/ords_config serve \
     --port 8193 \
     --apex-images /home/apexuser/apex/images
   ```

   ORDS が実行中でも Oracle APEX インストールにアクセスできない場合、次のエラーが (特に非 CDB インスタンスで) 表示されることがあります。

   ```
   The procedure named apex_admin could not be accessed, it may not be declared, or the user executing this request may not have been granted execute privilege on the procedure, or a function specified by security.requestValidationFunction configuration property has prevented access.
   ```

   このエラーを修正するには、`ords` スクリプトで `config` コマンドを実行して ORDS が使用するリクエスト検証機能を変更します。デフォルトでは、ORDS は CDB インスタンスでのみサポートされている `ords_util.authorize_plsql_gateway` プロシージャを使用します。非 CDB インスタンスでは、このプロシージャを `wwv_flow_epg_include_modules.authorize` パッケージに変更できます。ユースケースに応じてリクエスト検証関数を設定するためのベストプラクティスについては、Oracle Database のドキュメントと Oracle Support を参照してください。

1. ブラウザで Oracle APEX の管理ウィンドウに戻り、**[管理]** を選択します。次に、[**Application Express Internal Administration**] を選択します。認証情報を求められたら、以下の情報を入力します。
   + **User name** - `admin` 
   + **Password** - `apxchpwd.sql` スクリプトを使用して設定したパスワード。

   [**Login**] を選択し、その `admin` ユーザーの新しいパスワードを設定します。

これで、リスナーを使用する準備ができました。

# Oracle APEX のアップグレードと削除
<a name="Appendix.Oracle.Options.APEX.UpgradeandRemove"></a>

Oracle APEX をアップグレードまたは削除するには、このトピックの手順に従います。

**Topics**
+ [

## Oracle APEX バージョンのアップグレード
](#Appendix.Oracle.Options.APEX.Upgrade)
+ [

## APEX オプションと APEX-DEV オプションの削除
](#Appendix.Oracle.Options.APEX.Remove)

## Oracle APEX バージョンのアップグレード
<a name="Appendix.Oracle.Options.APEX.Upgrade"></a>

**重要**  
Oracle APEX をアップグレードする前に、DB インスタンスをバックアップします。詳細については、「[Amazon RDS のシングル AZ DB インスタンスの DB スナップショットの作成](USER_CreateSnapshot.md)」および「[Oracle DB アップグレードのテスト](USER_UpgradeDBInstance.Oracle.UpgradeTesting.md)」を参照してください。

Oracle APEX を DB インスタンスと共にアップグレードするには、以下を実行します。
+ DB インスタンスのアップグレードしたバージョン用に新規のオプショングループを作成します。
+ 新規のオプショングループに、アップグレードしたバージョンの `APEX` オプションと `APEX-DEV` オプションを追加します。DB インスタンスが使用するそのほかのすべてのオプションを含めるようにします。詳細については、「[オプショングループに関する考慮事項](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.OG)」を参照してください。
+ DB インスタンスをアップグレードするときに、アップグレードした DB インスタンスに新規のオプショングループを指定します。

Oracle APEX のバージョンのアップグレード後に、以前のバージョンの Oracle APEX スキーマがデータベースに残存する場合があります。不要な場合は、アップグレード後に古い Oracle APEX スキーマをデータベースから削除できます。

Oracle APEX バージョンをアップグレードする場合、以前の Oracle APEX バージョンで RESTful サービスが設定されていないときは、RESTful サービスを設定することをお勧めします。詳細については、「[Oracle APEX の RESTful サービスの設定](Appendix.Oracle.Options.APEX.settingUp.md#Appendix.Oracle.Options.APEX.ConfigureRESTful)」を参照してください。

DB インスタンスのメジャーバージョンアップグレードを行う際、ターゲットデータベースのバージョンと互換性のない Oracle APEX バージョンを使用していることに気付く場合があります。このような場合は、DB インスタンスをアップグレードする前に、Oracle APEX のバージョンをアップグレードできます。最初に Oracle APEX をアップグレードすると、DB インスタンスのアップグレードに要する時間を短縮できます。

**注記**  
Oracle APEX をアップグレードしたら、アップグレードしたバージョンで使用するリスナーをインストールして設定します。手順については、「[Oracle APEX リスナーの設定](Appendix.Oracle.Options.APEX.settingUp.md#Appendix.Oracle.Options.APEX.Listener)」を参照してください。

## APEX オプションと APEX-DEV オプションの削除
<a name="Appendix.Oracle.Options.APEX.Remove"></a>

DB インスタンスから `APEX` オプションと `APEX-DEV` オプションを削除できます。これらのオプションを DB インスタンスから削除するには、次のいずれかを実行します。
+ 複数の DB インスタンスから `APEX` オプションと `APEX-DEV` オプションを削除するには、それらが属しているオプショングループから両オプションを削除します。この変更はそのオプショングループを使用するすべての DB インスタンスに影響します。複数の DB インスタンスにアタッチされているオプショングループからオプションを削除すると、DB インスタンスが再起動される間、短時間の停止が発生します。

  詳細については、「[オプショングループからオプションを削除する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption)」を参照してください。
+ 1 つの DB インスタンスから `APEX` オプションと `APEX-DEV` オプションを削除するには、DB インスタンスを変更し、これらのオプションを含まない別のオプショングループを指定します。デフォルト (空) のオプショングループや別のカスタムオプショングループを指定できます。オプションを削除する場合、DB インスタンスが自動的に再起動される間、短時間の停止が発生します。

  詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

DB インスタンスから `APEX` オプションと `APEX-DEV` オプションを削除すると、APEX スキーマがデータベースから削除されます。

# Amazon EFS の統合
<a name="oracle-efs-integration"></a>

Amazon Elastic File System (Amazon EFS) は、サーバーレスで伸縮自在なファイルストレージを提供するため、ストレージ容量およびパフォーマンスのプロビジョニングや管理を行わずにファイルデータを共有できます。Amazon EFS では、ファイルシステムを作成し、NFS バージョン 4.0 および 4.1 (NFSv4) プロトコルを使用して VPC にマウントできます。そうすることで、他の POSIX 準拠のファイルシステムと同様に EFS ファイルシステムを使用できます。一般的な情報については、「[Amazon Elastic ファイルシステムとは](https://docs.aws.amazon.com/efs/latest/ug/whatisefs.html)」および AWS ブログの「[Amazon RDS for Oracle と Amazon EFS の統合](https://aws.amazon.com//blogs/database/integrate-amazon-rds-for-oracle-with-amazon-efs/)」を参照してください。

**Topics**
+ [

## Amazon EFS 統合の概要
](#oracle-efs-integration.overview)
+ [

# Amazon EFS と RDS for Oracle を統合するネットワークアクセス許可の設定
](oracle-efs-integration.network.md)
+ [

# Amazon EFS と RDS for Oracle を統合する IAM アクセス許可の設定
](oracle-efs-integration.iam.md)
+ [

# EFS\$1INTEGRATION (EFS 統合) オプションの追加
](oracle-efs-integration.adding.md)
+ [

# Amazon EFS ファイルシステムのアクセス許可の設定
](oracle-efs-integration.file-system.md)
+ [

# RDS for Oracle と Amazon EFS ファイルシステム間のファイルの転送
](oracle-efs-integration.transferring.md)
+ [

# EFS\$1INTEGRATION (EFS 統合) オプションの削除
](oracle-efs-integration.removing.md)
+ [

# Amazon EFS 統合のトラブルシューティング
](oracle-efs-integration.troubleshooting.md)

## Amazon EFS 統合の概要
<a name="oracle-efs-integration.overview"></a>

Amazon EFS では、RDS for Oracle DB インスタンスと Amazon EFS ファイルシステムの間でファイルを転送できます。例えば、EFS を使用して次のユースケースをサポートできます。
+ アプリケーションと複数のデータベースサーバー間でファイルシステムを共有します。
+ トランスポータブル表領域データファイルなど、移行関連ファイル用の共有ディレクトリを作成します。詳細については、「[Oracle トランスポータブル表領域を使用した移行](oracle-migrating-tts.md)」を参照してください。
+ サーバーに追加のストレージスペースを割り当てることなく、アーカイブされた REDO ログファイルを保存および共有できます。
+ `UTL_FILE` などの Oracle Database ユーティリティを使用してファイルの読み取りおよび書き込みを行います。

### Amazon EFS 統合のメリット
<a name="oracle-efs-integration.overview.advantages"></a>

他のデータ転送ソリューションではなく EFS ファイルシステムを選択すると、次のようなメリットがあります。
+  Amazon EFS および RDS for Oracle DB インスタンスの間で Oracle Data Pump ファイルを転送できます。Data Pump は EFS ファイルシステムから直接インポートするため、これらのファイルをローカルにコピーする必要はありません。詳細については、「[Amazon RDS の Oracle にデータをインポートする](Oracle.Procedural.Importing.md)」を参照してください。
+ データ移行は、データベースリンクを使用するよりも高速です。
+ RDS for Oracle DB インスタンスで、ファイルを保存するためのストレージ容量を割り当てることが回避できます。
+ EFS ファイルシステムでは、ストレージをプロビジョニングしなくてもストレージを自動的にスケーリングできます。
+ Amazon EFS 統合には最低料金やセットアップ費用はありません。お支払いいただくのは、使用分の料金だけです。
+ Amazon EFS 統合は、転送時のデータの暗号化と保存時の暗号化の 2 つの形式の暗号化をサポートしています。転送時のデータの暗号化は、TLS バージョン 1.2 を使用してデフォルトで有効になっています。Amazon EFS ファイルシステムを作成する場合、保管時のデータの暗号化を有効にすることができます。詳細については、「*Amazon Elastic File System ユーザーガイド*」の「[保管中のデータの暗号化](https://docs.aws.amazon.com/efs/latest/ug/encryption-at-rest.html)」を参照してください。

### Amazon EFS 統合の要件
<a name="oracle-efs-integration.overview.requirements"></a>

以下の要件を満たしていることを確認してください。
+ データベースは 19.0.0.0.ru-2022-07.rur-2022-07.r1 以降のデータベースを実行している必要があります。
+ DB インスタンスおよび EFS ファイルシステムは、同じ AWS リージョン、VPC、AWS アカウントである必要があります。RDS for Oracle は、EFS のクロスアカウントおよびクロスリージョンアクセスをサポートしていません。
+ VPC では **[DNS 解決]** と **[DNS ホスト名]** の両方を有効にする必要があります。詳細については、*Amazon Virtual Private Cloud ユーザーガイド*の「[DNS attributes for your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html#vpc-dns-support)」(VPC の DNS 属性) を参照してください。
+ `mount` コマンドで DNS 名を使用する場合は、VPC が Amazon が提供する DNS サーバーを使用するように設定されていることを確認してください。カスタム DNS サーバーはサポートされていません。
+ RDS 以外のソリューションを使用して EFS ファイルシステムをバックアップする必要があります。RDS for Oracle は、EFS ファイルシステムの自動バックアップや手動 DB スナップショットをサポートしていません。詳細については、「[Amazon EFS ファイルシステムのバックアップ](https://docs.aws.amazon.com/efs/latest/ug/efs-backup-solutions.html)」を参照してください。

# Amazon EFS と RDS for Oracle を統合するネットワークアクセス許可の設定
<a name="oracle-efs-integration.network"></a>

RDS for Oracle を Amazon EFS と統合するには、DB インスタンスが EFS ファイルシステムにネットワークアクセスできることを確認してください。詳細については、*Amazon Elastic File System ユーザーガイド* の「[NFS クライアントの Amazon EFS ファイルシステムへのネットワークアクセス制御](https://docs.aws.amazon.com/efs/latest/ug/NFS-access-control-efs.html)」を参照してください。

**Topics**
+ [

## セキュリティグループによるネットワークアクセス制御
](#oracle-efs-integration.network.inst-access)
+ [

## ファイルシステムポリシーによるネットワークアクセスの制御
](#oracle-efs-integration.network.file-system-policy)

## セキュリティグループによるネットワークアクセス制御
<a name="oracle-efs-integration.network.inst-access"></a>

VPC セキュリティグループなどのネットワーク層セキュリティメカニズムを使用して、DB インスタンスから EFS ファイルシステムへのアクセスを制御できます。DB インスタンスの EFS ファイルシステムへのアクセスを許可するには、EFS ファイルシステムが次の要件を満たしていることを確認してください。
+ EFS マウント ターゲットは、RDS for Oracle DB インスタンスによって使用されるすべてのアベイラビリティーゾーンにあります。

  *EFS マウントターゲット*は、Amazon EFS ファイルシステムをマウントできる NFSv4 エンドポイントの IP アドレスを提供します。DNS 名を使用してファイルシステムをマウントすると、EC2 インスタンスと同じアベイラビリティーゾーンの EFS マウントターゲットの IP アドレスに解決されます。

  別の AZ の DB インスタンスが同じ EFS ファイルシステムを使用するように設定できます。マルチ AZ の場合、配置内の AZ ごとにマウントポイントが必要です。別の AZ への DB への DB インスタンスの移動が必要になる場合があります。そのため、VPC 内の各 AZ で EFS マウントポイントを作成することをお勧めします。デフォルトでは、コンソールを使用して新しい EFS ファイルシステムを作成すると、RDS はすべての AZ のマウントターゲットを作成します。
+ セキュリティグループは、マウントターゲットにアタッチされます。
+ セキュリティグループには、TCP/2049 (タイプ NFS) で RDS for Oracle DB インスタンスのネットワークサブネットまたはセキュリティグループを許可するインバウンドルールがあります。

詳細については、「*Amazon Elastic File System ユーザーガイド*」の「[Creating Amazon EFS file systems](https://docs.aws.amazon.com/efs/latest/ug/creating-using-create-fs.html#configure-efs-network-access)」(Amazon EFS ファイルシステムの作成) と「[マウントターゲットとセキュリティグループの作成と管理](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs.html)」を参照してください。

## ファイルシステムポリシーによるネットワークアクセスの制御
<a name="oracle-efs-integration.network.file-system-policy"></a>

Amazon EFS と RDS for Oracle の統合は、デフォルト (空) のEFS ファイルシステムポリシーで動作します。デフォルトのポリシーでは、認証に IAM を使用しません。代わりに、マウントターゲットを使用して、ファイルシステムに接続できる匿名クライアントへのフルアクセスを許可します。デフォルトポリシーは、ファイルシステムの作成時を含め、ユーザーが設定したファイルシステムポリシーが有効ではない場合は常に有効になります。詳細については、*Amazon Elastic File System ユーザーガイド*の「[EFS ファイルシステムポリシー](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html#default-filesystempolicy)」を参照してください。

RDS for Oracle を含むすべてのクライアントの EFS ファイルシステムへのアクセスを強化するために、IAM アクセス許可を設定できます。この方法で、ファイルシステムポリシーを作成します。詳細については、*Amazon Elastic File System ユーザーガイド*の「[ファイルシステムポリシーの作成](https://docs.aws.amazon.com/efs/latest/ug/create-file-system-policy.html)」を参照してください。

# Amazon EFS と RDS for Oracle を統合する IAM アクセス許可の設定
<a name="oracle-efs-integration.iam"></a>

デフォルトでは、Amazon EFS 統合機能は IAM ロールを使用しません。`USE_IAM_ROLE` オプション設定は `FALSE` です。RDS for Oracle と Amazon EFS および IAM ロールを統合するには、DB インスタンスが Amazon EFS ファイルシステムにアクセスするために IAM アクセス許可を持っている必要があります。

**Topics**
+ [

## ステップ 1: DB インスタンスの IAM ロールを作成し、ポリシーをアタッチする
](#oracle-efs-integration.iam.role)
+ [

## ステップ 2: Amazon EFS ファイルシステムのファイルシステムポリシーを作成します。
](#oracle-efs-integration.iam.policy)
+ [

## ステップ 3: IAM ロールを RDS for Oracle DB インスタンスに関連付ける
](#oracle-efs-integration.iam.instance)

## ステップ 1: DB インスタンスの IAM ロールを作成し、ポリシーをアタッチする
<a name="oracle-efs-integration.iam.role"></a>

このステップでは、RDS for Oracle DB インスタンスのロールを作成し、Amazon RDS が EFS ファイルシステムにアクセスできるようにします。

### コンソール
<a name="oracle-efs-integration.iam.role.console"></a>

**Amazon RDS が EFS ファイルシステムへのアクセスを許可する IAM ロールを作成するには**

1. [IAM マネジメントコンソール](https://console.aws.amazon.com/iam/home?#home)を開きます。

1. ナビゲーションペインで **Roles (ロール) ** を選択してください。

1. [**Create role**] を選択します。

1. [**AWS のサービス**] で、[**RDS**] を選択します。

1. [**ユースケースの選択**] で、[**RDS - Add Role to Database (ロールをデータベースに追加する)**] を選択します。

1. [**次へ**] を選択します。

1. アクセス許可ポリシーを追加しないでください。[**次へ**] を選択します。

1. [**ロール名**] を IAM ロールの名前 (例: `rds-efs-integration-role`) に設定します。オプションで [**Description**] 値を追加することもできます。

1. [**ロールの作成**] を選択してください。

### AWS CLI
<a name="integration.preparing.role.CLI"></a>

サービスのアクセス許可を特定のリソースに限定するには、リソースベースの信頼関係で [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) および [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) のグローバル条件コンテキストキーを使用することをお勧めします。これは、[混乱した使節の問題](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)に対する最も効果的な保護方法です。

両方のグローバル条件コンテキストキーを使用し、`aws:SourceArn` 値にアカウント ID を含めます。この場合は、`aws:SourceAccount` 値と `aws:SourceArn` 値のアカウントは、同じステートメントで使用する場合、同じアカウント ID を使用する必要があります。
+ 単一リソースに対するクロスサービスアクセスが必要な場合は `aws:SourceArn` を使用します。
+ そのアカウント内の任意のリソースをクロスサービス使用に関連付けることを許可する場合、`aws:SourceAccount`を使用します。

信頼関係では、`aws:SourceArn` グローバル条件コンテキストキーに、必ず、ロールにアクセスするリソースの完全な Amazon リソースネーム (ARN) を使用します。

次の AWS CLI コマンドでは、この目的で `rds-efs-integration-role` という名前のロールを作成します。

**Example**  
Linux、macOS、Unix の場合:  

```
aws iam create-role \
   --role-name rds-efs-integration-role \
   --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
            "Service": "rds.amazonaws.com"
          },
         "Action": "sts:AssumeRole",
         "Condition": {
             "StringEquals": {
                 "aws:SourceAccount": my_account_ID,
                 "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname"
             }
         }
       }
     ]
   }'
```
Windows の場合:  

```
aws iam create-role ^
   --role-name rds-efs-integration-role ^
   --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
            "Service": "rds.amazonaws.com"
          },
         "Action": "sts:AssumeRole",
         "Condition": {
             "StringEquals": {
                 "aws:SourceAccount": my_account_ID,
                 "aws:SourceArn": "arn:aws:rds:Region:my_account_ID:db:dbname"
             }
         }
       }
     ]
   }'
```

詳細については、*IAM ユーザーガイド*の「[IAM ユーザーにアクセス許可を委任するロールの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)」を参照してください。

## ステップ 2: Amazon EFS ファイルシステムのファイルシステムポリシーを作成します。
<a name="oracle-efs-integration.iam.policy"></a>

このステップでは、EFS ファイルシステムのファイルシステムポリシーを作成します。

**EFS ファイルシステムポリシーを作成または編集するには**

1. [EFS 管理コンソール](https://console.aws.amazon.com/efs/home?#home)を開きます。

1. [**File Systems (ファイルシステム)**] を選択します。

1. [**File systems (ファイルシステム)**] ページで、ファイルシステムポリシーを編集または作成する対象のファイルシステムを選択します。そのファイルシステムの詳細ページが表示されます。

1. **[File system policy]** (ファイルシステムポリシー) タブを選択します。

   ポリシーが空の場合は、デフォルトの EFS ファイルシステムポリシーが使用されます。詳細については、*Amazon Elastic File System ユーザーガイド*の「[EFS ファイルシステムポリシー](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html#default-filesystempolicy )」を参照してください。

1. **[編集]** を選択します。[**File system policy (ファイルシステムポリシー)**] ページが表示されます。

1. **[Policy editor]** (ポリシーエディタ) で次のようなポリシーを入力し、**[Save]** (保存) を選択します。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "ExamplePolicy01",
       "Statement": [
           {
               "Sid": "ExampleStatement01",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::123456789012:role/rds-efs-integration-role"
               },
               "Action": [
                   "elasticfilesystem:ClientMount",
                   "elasticfilesystem:ClientWrite",
                   "elasticfilesystem:ClientRootAccess"
               ],
               "Resource": "arn:aws:elasticfilesystem:us-east-1:123456789012:file-system/fs-1234567890abcdef0"
           }
       ]
   }
   ```

------

## ステップ 3: IAM ロールを RDS for Oracle DB インスタンスに関連付ける
<a name="oracle-efs-integration.iam.instance"></a>

このステップでは、IAM ロールを DB インスタンスに関連付けます。以下の要件に注意してください。
+ 必須の Amazon EFS アクセス許可ポリシーがアタッチされた IAM ロールへのアクセスが許可されている必要があります。
+ RDS for Oracle DB インスタンスには、一度に 1 つの IAM ロールのみを関連付けることができます。
+ インスタンスのステータスは **[Available]** (使用可能) である必要があります。

詳細については、*Amazon Elastic File System ユーザーガイド*の「[Amazon EFS の ID とアクセス管理](https://docs.aws.amazon.com/efs/latest/ug/auth-and-access-control.html)」を参照してください。

### コンソール
<a name="oracle-efs-integration.iam.instance.console"></a>

**IAM ロールを RDS for Oracle DB インスタンスに関連付けるには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. [**データベース**] をクリックします。

1. データベースインスタンスが使用できない場合は、[**Actions (アクション)**]、[**Start (スタート)**] の順に選択します。インスタンスのステータスに [**Started (スタート済み)**] と表示されたら、次のステップに進みます。

1. 詳細を表示する Oracle DB インスタンスの名前を選択します。

1. 「**接続性とセキュリティ**」 タブで、ページ下部の**IAM ロールを管理する** セクションまでスクロールダウンします。

1. **IAM ロールをこのインスタンスに追加する**セクションに追加するロールを選択します。

1. **[Feature]** (機能) で、**[EFS\$1INTEGRATION]** (EFS 統合) を選択します。

1. [**Add role**] を選択します。

### AWS CLI
<a name="oracle-efs-integration.iam.instance.CLI"></a>

以下の AWS CLI コマンドでは、`mydbinstance` という名前の Oracle DB インスタンスにこのロールを追加します。

**Example**  
Linux、macOS、Unix の場合:  

```
aws rds add-role-to-db-instance \
   --db-instance-identifier mydbinstance \
   --feature-name EFS_INTEGRATION \
   --role-arn your-role-arn
```
Windows の場合:  

```
aws rds add-role-to-db-instance ^
   --db-instance-identifier mydbinstance ^
   --feature-name EFS_INTEGRATION ^
   --role-arn your-role-arn
```

`your-role-arn` を、以前のステップで書き留めたロール ARN に置き換えます。`EFS_INTEGRATION` オプションには `--feature-name` が指定されている必要があります。

# EFS\$1INTEGRATION (EFS 統合) オプションの追加
<a name="oracle-efs-integration.adding"></a>

Amazon RDS for Oracle と Amazon EFS を統合するには、DB インスタンスが `EFS_INTEGRATION` オプションを含むオプショングループに関連付けられている必要があります。

同じオプショングループに属する複数の Oracle DB インスタンスは、同じ EFS ファイルシステムを共有します。異なる DB インスタンスは同じデータにアクセスできますが、異なる Oracle ディレクトリを使用することでアクセスを分割できます。詳細については、「[RDS for Oracle と Amazon EFS ファイルシステム間のファイルの転送](oracle-efs-integration.transferring.md)」を参照してください。

## コンソール
<a name="oracle-efs-integration.adding.console"></a>

**Amazon EFS 統合用のオプショングループを設定するには**

1. 新しいオプショングループを作成するか、`EFS_INTEGRATION` オプションを追加する既存のオプショングループを識別します。

   オプショングループの作成の詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. オプショングループに [`EFS_INTEGRATION`] オプションを追加します。`EFS_ID` ファイルシステム ID を指定し、`USE_IAM_ROLE` フラグを設定する必要があります。

   詳細については、「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。

1. 次のいずれかの方法を使用して、オプショングループを DB インスタンスに関連付けます。
   + 新しい Oracle DB インスタンスを作成して、オプショングループを関連付けます。DB インスタンスの作成については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
   + Oracle DB インスタンスを変更し、オプショングループを関連付けます。Oracle DB インスタンスの変更方法については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## AWS CLI
<a name="oracle-efs-integration.adding.cli"></a>

**EFS 統合用のオプショングループを設定するには**

1. 新しいオプショングループを作成するか、`EFS_INTEGRATION` オプションを追加する既存のオプショングループを識別します。

   オプショングループの作成の詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. オプショングループに [`EFS_INTEGRATION`] オプションを追加します。

   例えば、以下の AWS CLI コマンドでは、`EFS_INTEGRATION` オプションを、**myoptiongroup** という名前のオプショングループに追加します。  
**Example**  

   Linux、macOS、Unix の場合:

   ```
   aws rds add-option-to-option-group \
      --option-group-name myoptiongroup \
      --options "OptionName=EFS_INTEGRATION,OptionSettings=\ 
      [{Name=EFS_ID,Value=fs-1234567890abcdef0},{Name=USE_IAM_ROLE,Value=TRUE}]"
   ```

   Windows の場合:

   ```
   aws rds add-option-to-option-group ^
      --option-group-name myoptiongroup ^
      --options "OptionName=EFS_INTEGRATION,OptionSettings=^
      [{Name=EFS_ID,Value=fs-1234567890abcdef0},{Name=USE_IAM_ROLE,Value=TRUE}]"
   ```

1. 次のいずれかの方法を使用して、オプショングループを DB インスタンスに関連付けます。
   + 新しい Oracle DB インスタンスを作成して、オプショングループを関連付けます。DB インスタンスの作成については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
   + Oracle DB インスタンスを変更し、オプショングループを関連付けます。Oracle DB インスタンスの変更方法については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

# Amazon EFS ファイルシステムのアクセス許可の設定
<a name="oracle-efs-integration.file-system"></a>

デフォルトでは、ルートユーザー (UID `0`) のみが読み取り、書き込み、実行のアクセス許可を持ちます。他のユーザーがファイルシステムを変更できるようにするには、ルートユーザーは、明示的にアクセス許可を付与する必要があります。RDS for Oracle DB インスタンスのユーザーは `others` カテゴリに含まれます。詳細については、*Amazon Elastic File System ユーザーガイド*の「[ネットワークファイルシステム (NFS) レベルでのユーザー、グループ、アクセス許可の操作](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs-nfs-permissions.html)」を参照してください。

RDS for Oracle DB インスタンスによって EFS ファイルシステムのファイルを読み書きできるようにするには、次の手順を実行します。
+ Amazon EC2 またはオンプレミスインスタンスに、EFS ファイルシステムをローカルでマウントします。
+ きめ細かいアクセス許可を設定します。

例えば、`other` ユーザーに EFS ファイルシステムのルートへの書き込み許可を付与するには、このディレクトリで `chmod 777` を実行します。詳細については、*Amazon Elastic File System ユーザーガイド*の「[Amazon EFS ファイルシステムのユースケースとアクセス許可の例](https://docs.aws.amazon.com/efs/latest/ug/accessing-fs-nfs-permissions.html#accessing-fs-nfs-permissions-ex-scenarios)」を参照してください。

# RDS for Oracle と Amazon EFS ファイルシステム間のファイルの転送
<a name="oracle-efs-integration.transferring"></a>

RDS for Oracle インスタンスと Amazon EFS ファイルシステム間でファイルを転送するには、Oracle ディレクトリを 1 つまたは複数作成し、DB インスタンスのアクセスを制御する EFS ファイルシステム権限を設定します。

**Topics**
+ [

## Oracle ディレクトリの作成
](#oracle-efs-integration.transferring.od)
+ [

## EFS ファイルシステム間のデータ転送: 例
](#oracle-efs-integration.transferring.upload)

## Oracle ディレクトリの作成
<a name="oracle-efs-integration.transferring.od"></a>

ディレクトリを作成するには、`rdsadmin.rdsadmin_util.create_directory_efs` のプロシージャを使用します。 プロシージャには以下のパラメータがあります。


****  

| パラメータ名 | データ型 | デフォルト | 必須 | 説明 | 
| --- | --- | --- | --- | --- | 
|  `p_directory_name`  |  VARCHAR2  |  –  |  はい  |  Oracle ディレクトリの名前。  | 
|  `p_path_on_efs`  |  VARCHAR2  |  –  |  はい  |  EFS ファイルシステムのパス。パス名のプレフィックスには `/rdsefs-fsid/` パターンが使用されています。*fsid* は EFS ファイルシステム ID のプレースホルダーです。 例えば、`fs-1234567890abcdef0` という名前の EFS ファイルシステムがあり、この `mydir` という名前のファイルシステムにサブディレクトリを作成する場合、次の値を指定できます。 <pre>/rdsefs-fs-1234567890abcdef0/mydir</pre>  | 

`fs-1234567890abcdef0` という EFS ファイルシステムに、`/datapump1` という名前のサブディレクトリを作成したとします。次の例では、EFS ファイルシステムの `/datapump1` ディレクトリを指す Oracle ディレクトリ `DATA_PUMP_DIR_EFS` を作成しています。`p_path_on_efs` パラメータのファイルシステムパス値の先頭には文字列 `/rdsefs-` が付きます。

```
BEGIN
  rdsadmin.rdsadmin_util.create_directory_efs(
    p_directory_name => 'DATA_PUMP_DIR_EFS', 
    p_path_on_efs    => '/rdsefs-fs-1234567890abcdef0/datapump1');
END;
/
```

## EFS ファイルシステム間のデータ転送: 例
<a name="oracle-efs-integration.transferring.upload"></a>

次の例では、Oracle Data Pump を使用して、`MY_TABLE` という名前のテーブルを `datapump.dmp` ファイルにエクスポートしています。このファイルは EFS ファイルシステムにあります。

```
DECLARE
  v_hdnl NUMBER;
BEGIN
  v_hdnl := DBMS_DATAPUMP.OPEN(operation => 'EXPORT', job_mode => 'TABLE', job_name=>null);
  DBMS_DATAPUMP.ADD_FILE(
    handle    => v_hdnl,
    filename  => 'datapump.dmp',
    directory => 'DATA_PUMP_DIR_EFS',
    filetype  => dbms_datapump.ku$_file_type_dump_file);
  DBMS_DATAPUMP.ADD_FILE(
    handle    => v_hdnl,
    filename  => 'datapump-exp.log',
    directory => 'DATA_PUMP_DIR_EFS',
    filetype  => dbms_datapump.ku$_file_type_log_file);
  DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'NAME_EXPR','IN (''MY_TABLE'')');
  DBMS_DATAPUMP.START_JOB(v_hdnl);
END;
/
```

次の例では、Oracle Data Pump を使用して、`MY_TABLE` という名前のテーブルを `datapump.dmp` ファイルからインポートしています。このファイルは EFS ファイルシステムにあります。

```
DECLARE
  v_hdnl NUMBER;
BEGIN
  v_hdnl := DBMS_DATAPUMP.OPEN(
    operation => 'IMPORT',
    job_mode  => 'TABLE',
    job_name  => null);
  DBMS_DATAPUMP.ADD_FILE(
    handle    => v_hdnl,
    filename  => 'datapump.dmp',
    directory => 'DATA_PUMP_DIR_EFS',
    filetype  => dbms_datapump.ku$_file_type_dump_file );
  DBMS_DATAPUMP.ADD_FILE(
    handle    => v_hdnl,
    filename  => 'datapump-imp.log',
    directory => 'DATA_PUMP_DIR_EFS',
    filetype  => dbms_datapump.ku$_file_type_log_file);
  DBMS_DATAPUMP.METADATA_FILTER(v_hdnl,'NAME_EXPR','IN (''MY_TABLE'')');
  DBMS_DATAPUMP.START_JOB(v_hdnl);
END;
/
```

詳細については、「[Amazon RDS の Oracle にデータをインポートする](Oracle.Procedural.Importing.md)」を参照してください。

# EFS\$1INTEGRATION (EFS 統合) オプションの削除
<a name="oracle-efs-integration.removing"></a>

`EFS_INTEGRATION` オプションを削除する手順は、複数の DB インスタンスからオプションを削除するか、単一のインスタンスから削除するかによって異なります。


| DB インスタンス数 | アクション | 関連情報 | 
| --- | --- | --- | 
| 複数 | DB インスタンスが所属するオプショングループから EFS\$1INTEGRATION オプションを削除します。この変更は、そのオプショングループを使用するすべてのインスタンスに影響します。 | [オプショングループからオプションを削除する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption) | 
| 単一 | DB インスタンスを修正して、EFS\$1INTEGRATION オプションが含まれない別オプショングループを指定します。デフォルト (空) のオプショングループや別のカスタムオプショングループを指定できます。 | [Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md) | 

`EFS_INTEGRATION` オプションを削除した後、オプションで、DB インスタンスに接続された EFS ファイルシステムを削除できます。

# Amazon EFS 統合のトラブルシューティング
<a name="oracle-efs-integration.troubleshooting"></a>

RDS for Oracle DB インスタンスは、Amazon EFS ファイルシステムとの接続をモニタリングしています。モニタリングによって問題が検出されると、その問題を修正して RDS コンソールにイベントを公開しようとする場合があります。詳細については、「[Amazon RDS イベントの表示](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ListEvents.html)」を参照してください。

このセクションの情報を使用して、Amazon EFS 統合を使用する際の一般的な問題の診断と修正を行います。


| Notification | 説明 | Action | 
| --- | --- | --- | 
|  `The EFS for RDS Oracle instance instance_name isn't available on the primary host. NFS port 2049 of your EFS isn't reachable.`  |  DB インスタンスが、EFS ファイルシステムと通信できない。  |  以下を確認してください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/oracle-efs-integration.troubleshooting.html)  | 
|  `The EFS isn't reachable.`  |  `EFS_INTEGRATION` オプションのインストール中にエラーが発生した。  |  以下を確認してください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/oracle-efs-integration.troubleshooting.html)  | 
|  `The associated role with your DB instance wasn't found.`  |  `EFS_INTEGRATION` オプションのインストール中にエラーが発生した。  |  IAM ロールが RDS for Oracle DB インスタンスに関連付けられていることを確認してください。  | 
|  `The associated role with your DB instance wasn't found.`  |  `EFS_INTEGRATION` オプションのインストール中にエラーが発生した。RDS for Oracle は、`USE_IAM_ROLE` オプション設定が `TRUE` の DB スナップショットから復元されました。  |  IAM ロールが RDS for Oracle DB インスタンスに関連付けられていることを確認してください。  | 
|  `The associated role with your DB instance wasn't found.`  |  `EFS_INTEGRATION` オプションのインストール中にエラーが発生した。RDS for Oracle は、`USE_IAM_ROLE` オプション設定が `TRUE` のオールインワン CloudFormation テンプレートから作成されました。  |  回避策として、以下のステップを実行します。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/oracle-efs-integration.troubleshooting.html)  | 
|  `PLS-00302: component 'CREATE_DIRECTORY_EFS' must be declared`  |  このエラーは、Amazon EFS をサポートしていないバージョンの RDS for Oracle を使用している場合に発生する可能性があります。  |  RDS for Oracle DB インスタンスのバージョン 19.0.0.0.ru-2022-07.rur-2022-07.r1 以降を使用していることを確認してください。  | 
|  `Read access of your EFS is denied. Check your file system policy.`  |  DB インスタンスは EFS ファイルシステムを読み取ることができません。  |  EFS ファイルシステムが IAM ロールまたは EFS ファイルシステムレベルでの読み取りアクセスを許可していることを確認してください。  | 
|  該当なし  |  DB インスタンスは EFS ファイルシステムに書き込むことができません。  |  次のステップを実行します。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/oracle-efs-integration.troubleshooting.html)  | 

# Oracle Java Virtual Machine
<a name="oracle-options-java"></a>

Amazon RDS は、`JVM` オプションを使用することで Oracle Java Virtual Machine (JVM) をサポートします。Oracle Java では、SQL スキーマと関数が提供され、Oracle データベース内で Oracle Java の機能を活用できます。詳細については、Oracle ドキュメントの「[Oracle Database における Java の概要](https://docs.oracle.com/database/121/JJDEV/chone.htm)」を参照してください。Oracle JVM は、Oracle Database 21c (21.0.0) および Oracle Database 19c (19.0.0) のすべてのバージョンで使用できます。

## Oracle JVM に関する考慮事項
<a name="oracle-options-java.considerations"></a>

Amazon RDS の Java 実装のアクセス許可セットは制限されています。マスターユーザーには `RDS_JAVA_ADMIN` ロールが付与されます。このロールでは、`JAVA_ADMIN` ロールによって付与される特権のサブセットを付与します。`RDS_JAVA_ADMIN` ロールに付与される特権を一覧表示するには、DB インスタンスで次のクエリを実行します。

```
SELECT * FROM dba_java_policy 
   WHERE grantee IN ('RDS_JAVA_ADMIN', 'PUBLIC') 
   AND enabled = 'ENABLED' 
   ORDER BY type_name, name, grantee;
```

## Oracle JVM の前提条件
<a name="oracle-options-java.prerequisites"></a>

Oracle Java を使用するための前提条件は次のとおりです。
+ DB インスタンスが十分な大きさのクラスである必要があります。Oracle Java は、db.t3.small DB インスタンスクラスではサポートされていません。詳細については、「[ DB インスタンスクラス](Concepts.DBInstanceClass.md)」を参照してください。
+ DB インスタンスで [**マイナーバージョン自動アップグレード**] が有効になっている必要があります。このオプションにより、リリースされた DB エンジンのマイナーバージョンアップグレードが、自動的に DB インスタンスに適用されるようになります。Amazon RDS では、このオプションを使用して、DB インスタンスに対し最新の Oracle パッチセット更新 (PSU)、またはリリース更新 (RU) を行います。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## Oracle JVM のベストプラクティス
<a name="oracle-options-java.best-practices"></a>

Oracle Java を使用するためのベストプラクティスは次のとおりです。
+ セキュリティを最大にするためには、`JVM` オプションを Secure Sockets Layer (SSL) で使用します。詳細については、「[Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md)」を参照してください。
+ ネットワークアクセスを制限するように、DB インスタンスを設定します。詳細については、「[VPC の DB インスタンスにアクセスするシナリオ](USER_VPC.Scenarios.md)」および「[VPC 内の DB インスタンスの使用](USER_VPC.WorkingWithRDSInstanceinaVPC.md)」を参照してください。
+ 次の条件を満たす場合は、TLSv1.2 をサポートするように HTTPS エンドポイントの設定を更新します。
  + Oracle Java Virtual Machine (JVM) を使用して、TLSv1 または TLSv1.1 プロトコルを介して HTTPS エンドポイントを接続します。
  + エンドポイントは TLSv1.2 プロトコルをサポートしていません。
  + 2021 年 4 月リリースの更新を Oracle DB に適用していません。

  エンドポイント設定を更新することで、HTTPS エンドポイントへの JVM の接続が確実に引き続き機能するようにします。Oracle JRE および JDK の TLS の変更の詳細については、[Oracle JRE and JDK Cryptographic Roadmap](https://java.com/en/jre-jdk-cryptoroadmap.html) を参照してください。

## Oracle JVM オプションの追加
<a name="oracle-options-java.add"></a>

DB インスタンスに `JVM` オプションを追加する一般的な手順は以下のとおりです。

1. 新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更します。

1. オプショングループに [] オプションを追加します。

1. オプショングループを DB インスタンスに関連付けます。

`JVM` オプションが追加されるあいだ、短い停止が発生します。オプションを追加した後に DB インスタンスを再起動する必要はありません。オプショングループがアクティブになると、すぐに Oracle Java が使用可能となります。

**注記**  
この停止中、パスワード検証機能は一時的に無効になります。また、停止中にパスワード検証機能に関連するイベントを確認することもできます。Oracle DB インスタンスが使用可能になる前に、パスワード検証機能が再び有効になります。

**JVM オプションを DB インスタンスに追加するには**

1. 使用するオプショングループを決定します。新しいオプショングループを作成することも、既存のオプショングループを使用することもできます。既存のオプショングループを使用する場合は、次のステップは飛ばしてください。または、次の設定でカスタム DB オプショングループを作成します。
   + [**Engine (エンジン)**] に、DB インスタンスによって使用される DB エンジン ([**oracle-ee**]、[**oracle-se**]、[**oracle-se1**]、または [**oracle-se2**]) を選択します。
   + [**メジャーエンジンのバージョン**] で、DB インスタンスのバージョンを選択します。

   詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. オプショングループに [**JVM**] オプションを追加します。オプションの追加方法の詳細については、「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。

1. 新規または既存の DB インスタンスに、DB オプショングループを適用します。
   + 新しい DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
   + 既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

1. ユーザーに必要なアクセス権限を付与します。

   Amazon RDS マスターユーザーには、`JVM` オプションを使用するアクセス許可がデフォルトで付与されています。他のユーザーがこれらのアクセス許可を必要とする場合は、SQL クライアントのマスターユーザーとして DB インスタンスに接続し、そのユーザーにアクセス許可を付与します。

   次の例では、`JVM` オプションを使用するアクセス許可を `test_proc` ユーザーに付与しています。

   ```
   create user test_proc identified by password;
   CALL dbms_java.grant_permission('TEST_PROC', 'oracle.aurora.security.JServerPermission', 'LoadClassInPackage.*', '');
   ```
**注記**  
セキュリティ上のベストプラクティスとして、ここに示されているプロンプト以外のパスワードを指定してください。

   ユーザーにアクセス許可が付与されると、次のクエリで出力が返されます。

   ```
   select * from dba_java_policy where grantee='TEST_PROC';
   ```
**注記**  
Oracle ユーザー名では大文字と小文字が区別され、通常すべて大文字が使用されます。

## Oracle JVM オプションの削除
<a name="oracle-options-java.remove"></a>

DB インスタンスから `JVM` オプションを削除できます。オプションが削除されるあいだ、短い停止が発生します。`JVM` オプションを削除した後に DB インスタンスを再起動する必要はありません。

**警告**  
 `JVM` オプションを削除すると、DB インスタンスがオプションの一部として有効であったデータ型を使用している場合、データ損失が発生する可能性があります。続行する前にデータをバックアップしてください。詳細については、「[データのバックアップ、復元、エクスポート](CHAP_CommonTasks.BackupRestore.md)」を参照してください。

`JVM` オプションを DB インスタンスから削除するには、次のいずれかを実行します。
+ `JVM` オプションを所属するオプショングループから削除します。この変更はそのオプショングループを使用するすべての DB インスタンスに影響します。詳細については、「[オプショングループからオプションを削除する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption)」を参照してください。
+ DB インスタンスを修正して、`JVM` オプションが含まれない別オプショングループを指定します。この変更は、単一の DB インスタンスに影響します。デフォルト (空) のオプショングループや別のカスタムオプショングループを指定できます。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

# Oracle Enterprise Manager
<a name="Oracle.Options.OEM"></a>

Amazon RDS は Oracle Enterprise Manager (OEM) をサポートしています。OEM は、エンタープライズ情報技術の統合管理用の Oracle 製品ラインです。

Amazon RDS は、Oracle Database 19c の非 CDB または CDB で OEM をサポートしています。次の表で、サポートされている OEM オプションについて説明します。


****  

| オプション | オプション ID | サポートされている OEM のリリース | 
| --- | --- | --- | 
|  [OEM Database Express](Appendix.Oracle.Options.OEM_DBControl.md)  |  `OEM`  |  OEM Database Express 19c  | 
|  [OEM Management Agent](Oracle.Options.OEMAgent.md)  |  `OEM_AGENT`  |  OEM Cloud Control for 13c  | 

**注記**  
OEM Database または OEM Management Agent を使用できますが、両方を使用することはできません。

# Oracle Enterprise Manager Database Express
<a name="Appendix.Oracle.Options.OEM_DBControl"></a>

Amazon RDS は OEM オプションの使用を通じて、Oracle Enterprise Manager Database Express (EM Express) をサポートします。Amazon RDS は、CDB または非 CDB アーキテクチャを使用する EM Express for Oracle Database 19c をサポートします。

EM Express は、データベースに含まれるウェブベースのデータベース管理ツールで、開いている場合のみ使用できます。主要なパフォーマンス管理機能と基本的なデータベース管理機能をサポートしています。詳細については、Oracle Database ドキュメントの「[Introduction to Oracle Enterprise Manager Database Express](https://docs.oracle.com/en/database/oracle/oracle-database/19/admqs/getting-started-with-database-administration.html#GUID-BA75AD46-D22E-4914-A31E-C395CD6A2BBA)」を参照してください。

**注記**  
EM Express は、db.t3.small DB インスタンスクラスではサポートされていません。DB インスタンスクラスの詳細については、「[RDS for Oracle DB インスタンスクラス](Oracle.Concepts.InstanceClasses.md)」を参照してください。

## OEM オプション設定
<a name="Appendix.Oracle.Options.OEM_DBControl.Options"></a>

Amazon RDS は、OEM オプションの次の設定をサポートします。


****  

| オプション設定 | 有効な値 | 説明 | 
| --- | --- | --- | 
| **ポート** –  | 整数値 |  EM Express をリッスンする RDS for Oracle DB インスタンスのポート。デフォルトは 5500 です。  | 
| ** セキュリティグループ** | — |  [**Port**] へのアクセス権限を持つセキュリティグループ。  | 

## ステップ 1: OEM オプションの追加
<a name="Appendix.Oracle.Options.OEM_DBControl.Add"></a>

DB インスタンスに OEM オプションを追加する一般的な手順は以下のとおりです。

1. 新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更します。

1. オプショングループにオプションを追加します。

1. オプショングループを DB インスタンスに関連付けます。

OEM オプションを追加する場合、DB インスタンスが自動的に再起動する間に短い停止が発生します。

**OEM オプションを DB インスタンスに追加するには**

1. 使用するオプショングループを決定します。新しいオプショングループを作成することも、既存のオプショングループを使用することもできます。既存のオプショングループを使用する場合は、次のステップは飛ばしてください。または、次の設定でカスタム DB オプショングループを作成します。

   1. [**Engine**] で DB インスタンスの Oracle エディションを選択します。

   1. [**メジャーエンジンのバージョン**] で、DB インスタンスのバージョンを選択します。

   詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. オプショングループに OEM オプションを追加し、オプションを設定します。オプションの追加方法の詳細については、「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。各設定の詳細については、「[OEM オプション設定](#Appendix.Oracle.Options.OEM_DBControl.Options)」を参照してください。
**注記**  
すでに 1 つ以上の DB インスタンスにアタッチされている既存のオプショングループに OEM オプションを追加すると、すべての DB インスタンスが自動的に再起動する間に短い停止が発生します。

1. 新規または既存の DB インスタンスに、DB オプショングループを適用します。
   + 新しい DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
   + 既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。OEM オプションを追加する場合、DB インスタンスが自動的に再起動する間に短い停止が発生します。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

**注記**  
AWS CLI を使用して OEM オプションを追加することもできます。例については、「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。

## ステップ 2: (CDB のみ) DBSNMP ユーザーアカウントのロック解除
<a name="Appendix.Oracle.Options.OEM_DBControl.DBSNMP"></a>

DB インスタンスが CDB アーキテクチャを使用している場合は、EM Express に `DBSNMP` としてログインする必要があります。CDB では、`DBSNMP` は共通ユーザーです。デフォルトでは、このアカウントはロックされています。DB インスタンスが CDB アーキテクチャを使用しない場合は、このステップをスキップします。

**CDB インスタンスで DBSNMP ユーザーアカウントをロック解除するには**

1. SQL\$1Plus または別の Oracle SQL アプリケーションで、マスターユーザーとして DB インスタンスにログインします。

1. 次のストアドプロシージャを実行して、`DBSNMP` アカウントのロックを解除します。

   ```
   1. EXEC rdsadmin.rdsadmin_util.reset_oem_agent_password('new_password');
   ```

   プロシージャが存在しないことを示すエラーが表示された場合は、CDB インスタンスを再起動して自動的にインストールします。詳細については、「[ DB インスタンスの再起動](USER_RebootInstance.md)」を参照してください。

## ステップ 3: ブラウザから EM Express にアクセスする
<a name="Appendix.Oracle.Options.OEM_DBControl.Using"></a>

ウェブブラウザから EM Express にアクセスすると、ログインウィンドウが表示され、ユーザー名とパスワードを求められます。

**ブラウザから EM Express にアクセスするには**

1. Amazon RDS DB インスタンスのエンドポイントと EM Express ポートを特定します。Amazon RDS DB インスタンスのエンドポイントを見つける方法については、「[RDS for Oracle DB インスタンスのエンドポイントを見つける](USER_Endpoint.md)」を参照してください。

1. ブラウザのロケーターバーに URL を次の形式で入力します。

   ```
   https://endpoint.rds.amazonaws.com:port/em
   ```

   例えば、Amazon RDS DB インスタンスのエンドポイントが `mydb.a1bcde234fgh.us-east-1.rds.amazonaws.com` で、EM Express ポートが `1158` の場合、EM Express にアクセスする URL は次のようになります。

   ```
   1. https://mydb.f9rbfa893tft.us-east-1.rds.amazonaws.com:1158/em
   ```

1. ログインの詳細の入力を求められたら、データベースアーキテクチャに応じて、次のいずれかのアクションを実行します。  
**データベースが非 CDB の場合**  
DB インスタンスのマスターユーザー名とマスターパスワードを入力します。  
**データベースが CDB の場合**  
ユーザーに `DBSNMP` と入力し、`DBSNMP` のパスワードを入力します。`Container` フィールドは空白のままにします。

## OEM データベース設定の変更
<a name="Appendix.Oracle.Options.OEM_DBControl.ModifySettings"></a>

OEM データベースを有効にすると、オプションのセキュリティグループ設定を変更できます。

オプショングループを DB インスタンスに関連付けた後に OEM ポート番号を変更することはできません。DB インスタンスの OEM ポート番号を変更するには、以下の作業を行います。

1. 新しいオプショングループを作成します。

1. 新しいポート番号の OEM オプションを新しいオプショングループに追加します。

1. DB インスタンスから既存のオプショングループを削除します。

1. 新しいオプショングループを DB インスタンスに追加します。

オプション設定の変更方法の詳細については、「[オプションの設定を変更する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption)」を参照してください。各設定の詳細については、「[OEM オプション設定](#Appendix.Oracle.Options.OEM_DBControl.Options)」を参照してください。

## OEM Database Express タスクの実行
<a name="Appendix.Oracle.Options.OEM_DBControl.DBTasks"></a>

Amazon RDS プロシージャを使用して、特定の OEM Database Express のタスクを実行できます。これらの手順を実行すると、以下のタスクを実行できます。

**注記**  
OEM Database Express のタスクは非同期で実行されます。

**Topics**
+ [

### OEM Database Express のウェブサイトフロントエンドを Adobe Flash に切り替える
](#Appendix.Oracle.Options.OEM_DBControl.DBTasks.FrontEndToFlash)
+ [

### OEM Database Express のウェブサイトフロントエンドを Oracle JET に切り替える
](#Appendix.Oracle.Options.OEM_DBControl.DBTasks.FrontEndToOracleJET)

### OEM Database Express のウェブサイトフロントエンドを Adobe Flash に切り替える
<a name="Appendix.Oracle.Options.OEM_DBControl.DBTasks.FrontEndToFlash"></a>

**注記**  
このタスクは、Oracle Database 19c 非 CDB でのみ使用できます。

Oracle Database 19c 以降では、以前の OEM Database Express ユーザーインターフェイスは非推奨になりました。このユーザーインターフェイスは Adobe Flash に基づいていました。代わりに、OEM Database Express は Oracle JET で構築されたインターフェイスを使用するようになりました。新しいインターフェイスで問題が発生した場合は、非推奨の Flash ベースのインターフェイスに戻すことができます。新しいインターフェイスで発生する可能性のある問題として、OEM Database Express にログインした後に `Loading` 画面が停止することがあります。また、Flash ベースのバージョンの OEM Database Express に存在していた特定の機能を見逃す可能性もあります。

OEM Database Express のウェブサイトフロントエンドを Adobe Flash に切り替えるには、Amazon RDS プロシージャ`rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_flash` を実行します 。このプロシージャは、`execemx emx` SQL コマンドに相当します。

セキュリティのベストプラクティスでは、Adobe Flash の使用は推奨されていません。Flash ベースの OEM Database Express に戻すことはできますが、可能であれば、JET ベースの OEM Database Express のウェブサイトを使用することをお勧めします。Adobe Flash を使用するように戻した後で、Oracle JET の使用に切り替える場合は、 `rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_jet` プロシージャを使用します。Oracle データベースにアップグレードすると、新しいバージョンの Oracle JET では、OEM Database Express の JET 関連の問題が解決される場合があります。Oracle JET への切り替えの詳細については、「[OEM Database Express のウェブサイトフロントエンドを Oracle JET に切り替える](#Appendix.Oracle.Options.OEM_DBControl.DBTasks.FrontEndToOracleJET)」を参照してください。

**注記**  
リードレプリカの出典 DB インスタンスからこのタスクを実行すると、リードレプリカは OEM Database Express ウェブサイトフロントエンドを Adobe Flash に切り替えます。

次のプロシージャの呼び出しでは、OEM Database Express ウェブサイトを Adobe Flash に切り替えるタスクを作成し、タスクの ID を返します。

```
SELECT rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_flash() as TASK_ID from DUAL;
```

タスクの出力ファイルを表示すると、結果を確認できます。

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));
```

*`task-id`* は、この手順で返されたタスク ID に置き換えます。Amazon RDS プロシージャ `rdsadmin.rds_file_util.read_text_file` の詳細については、「[DB インスタンスディレクトリ内のファイルの読み取り](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles)」を参照してください。

AWS マネジメントコンソール の [**ログとイベント** ] セクションでログエントリを検索して、タスクの出力ファイルの内容を `task-id` に表示することもできます。

### OEM Database Express のウェブサイトフロントエンドを Oracle JET に切り替える
<a name="Appendix.Oracle.Options.OEM_DBControl.DBTasks.FrontEndToOracleJET"></a>

**注記**  
このタスクは、Oracle Database 19c 非 CDB でのみ使用できます。

OEM Database Express のウェブサイトフロントエンドを Oracle JET に切り替えるには、Amazon RDS プロシージャ `rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_jet` を実行します。このプロシージャは、`execemx omx` SQL コマンドに相当します。

デフォルトでは、19c 以降を実行している Oracle DB インスタンス用の OEM Database Express ウェブサイトは Oracle JET を使用します。`rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_flash` プロシージャを使用して OEM Database Express のウェブサイトフロントエンドを Adobe Flash に切り替えた場合は、Oracle JET に戻すことができます。これを行うには、`rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_jet` プロシージャを使用します。Adobe Flash への切り替えの詳細については、「[OEM Database Express のウェブサイトフロントエンドを Adobe Flash に切り替える](#Appendix.Oracle.Options.OEM_DBControl.DBTasks.FrontEndToFlash)」を参照してください。

**注記**  
リードレプリカの出典 DB インスタンスからこのタスクを実行すると、リードレプリカによって OEM Database Express ウェブサイトフロントエンドが Oracle JET に切り替わります。

次のプロシージャの呼び出しでは、OEM Database Express ウェブサイトを Oracle JET に切り替えるタスクを作成し、タスクの ID を返します。

```
SELECT rdsadmin.rdsadmin_oem_tasks.em_express_frontend_to_jet() as TASK_ID from DUAL;
```

タスクの出力ファイルを表示すると、結果を確認できます。

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-task-id.log'));
```

*`task-id`* は、この手順で返されたタスク ID に置き換えます。Amazon RDS プロシージャ `rdsadmin.rds_file_util.read_text_file` の詳細については、「[DB インスタンスディレクトリ内のファイルの読み取り](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles)」を参照してください。

AWS マネジメントコンソール の [**ログとイベント** ] セクションでログエントリを検索して、タスクの出力ファイルの内容を `task-id` に表示することもできます。

## OEM データベースオプションの削除
<a name="Appendix.Oracle.Options.OEM_DBControl.Remove"></a>

DB インスタンスから OEM オプションを削除できます。OEM オプションを削除する場合、インスタンスが自動的に再起動する間に短い停止が発生します。そのため、OEM オプションを削除した後に DB インスタンスを再起動する必要はありません。

OEM オプションを DB インスタンスから削除するには、次のいずれかを実行します。
+ OEM オプションを、所属するオプショングループから削除します。この変更はそのオプショングループを使用するすべての DB インスタンスに影響します。詳細については、「[オプショングループからオプションを削除する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption)」を参照してください。
+ DB インスタンスを修正して、OEM オプションが含まれない別オプショングループを指定します。この変更は、単一の DB インスタンスに影響します。デフォルト (空) のオプショングループや別のカスタムオプショングループを指定できます。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

# Enterprise Manager Cloud Control 向け Oracle Management Agent
<a name="Oracle.Options.OEMAgent"></a>

Oracle Enterprise Manager (OEM) Management Agent は、ホスト上で実行中のターゲットをモニタリングし、その情報を中間層 Oracle Management Service (OMS) に送信するソフトウェアコンポーネントです。Amazon RDS は `OEM_AGENT` オプションを使用して Management Agent をサポートします。

詳細については、Oracle ドキュメントの「[Oracle Enterprise Manager Cloud Control 12c の概要](http://docs.oracle.com/cd/E24628_01/doc.121/e25353/overview.htm)」と「[Oracle Enterprise Manager Cloud Control 13c の概要](http://docs.oracle.com/cd/E63000_01/EMCON/overview.htm#EMCON109)」を参照してください。

**Topics**
+ [

## Management Agent の要件
](#Oracle.Options.OEMAgent.PreReqs)
+ [

## OMS ホスト通信の前提条件
](#Oracle.Options.OEMAgent.PreReqs.host)
+ [

## Management Agent の制限
](#Oracle.Options.OEMAgent.limitations)
+ [

## Management Agent のオプション設定
](#Oracle.Options.OEMAgent.Options)
+ [

## Management Agent オプションを DB インスタンス用に有効にする
](#Oracle.Options.OEMAgent.Enable)
+ [

## Management Agent オプションの削除
](#Oracle.Options.OEMAgent.Remove)
+ [

## Management Agent を使用したデータベースタスクの実行
](#Oracle.Options.OEMAgent.DBTasks)

## Management Agent の要件
<a name="Oracle.Options.OEMAgent.PreReqs"></a>

以下は、Management Agent を使用するための一般的な要件です。
+ DB インスタンスは Oracle Database 19c (19.0.0.0) を実行している必要があります。CDB アーキテクチャまたは非 CDB アーキテクチャのいずれかを使用できます。
+ DB インスタンスに接続するように設定されている Oracle Management Service (OMS) が必要です。次の OMS 要件に注意してください。
  + Management Agent のバージョン 13.5.0.0.v2 および 13.5.0.0.v3 には、OMS バージョン 13.5.0.23 または 24.1 が必要です。
  + Management Agent のバージョン 13.5.0.0.v1 には、OMS バージョン 13.5.0.0 または 24.1 が必要です。
  + Management Agent のバージョン 13.4.0.9.v1 および 13.4.0.9.v2 には、OMS バージョン 13.4.0.9 以降と 32198287 のパッチが必要です。
+ ほとんどの場合、OMS から DB インスタンスへの接続を許可するように VPC を設定する必要があります。Amazon Virtual Private Cloud (Amazon VPC) についてあまり詳しくない場合は、「[チュートリアル: DB インスタンスで使用する VPC を作成する (IPv4 専用)](CHAP_Tutorials.WebServerDB.CreateVPC.md)」のステップを完了してから続行することをお勧めします。
+ Management Agent は、Oracle Enterprise Manager Cloud Control for 12c および 13c で使用できます。OEM リリース用の十分なストレージ領域があることを確認します。
  + OEM 13c リリース 5 では 8.5 GiB 以上
  + OEM 13c リリース 4 では 8.5 GiB 以上
  + OEM 13c リリース 3 では 8.5 GiB 以上
  + OEM 13c リリース 2 では 5.5 GiB 以上
  + OEM 13c リリース 1 では 4.5 GiB 以上
  + OEM 12c では 2.5 GiB 以上
+ Management Agent バージョン `OEM_AGENT 13.2.0.0.v3` および `13.3.0.0.v2` を使用している場合、また、TCPS 接続を使用する場合は、Oracle ドキュメントの「[ターゲットデータベースと通信するためのサードパーティー CA 証明書の設定](https://docs.oracle.com/cd/E73210_01/EMSEC/GUID-8337AD48-1A32-4CD5-84F3-256FAE93D043.htm#EMSEC15996)」の手順に従ってください。また、Oracle Doc ID 2241358.1 の Oracle のドキュメントの指示に従って、OMS の JDK を更新します。このステップにより、データベースがサポートするすべての暗号スイートが OMS でサポートされるようになります。
**注記**  
Management Agent と DB インスタンス間の TCPS 接続は、Management Agent の `OEM_AGENT 13.2.0.0.v3`、`13.3.0.0.v2`、`13.4.0.9.v1` 以上のバージョンでサポートされます。

## OMS ホスト通信の前提条件
<a name="Oracle.Options.OEMAgent.PreReqs.host"></a>

OMS ホストと Amazon RDS DB インスタンスが通信できることを確認してください。以下の操作を実行します。
+ OMS ホストがファイアウォールの内側にある場合、Management Agent から OMS ホストに接続するには、ファイアウォール に DB インスタンスの IP アドレスを追加します。OMS のファイアウォールで次のネットワークトラフィックが許可されていることを確認します。  
OMS ホストから DB インスタンスへ  
OMS ホストからデータベースリスナーポート (デフォルトは 1521) および OEM エージェントポート (デフォルトは 3872) へのトラフィックを許可する一方向ファイアウォールルールを設定します。  
DB インスタンスから OMS ホストへ  
DB インスタンスから OMS HTTP ポート (デフォルトは 4903) へのトラフィックを許可する一方向ファイアウォールルールを設定します。
+ OMS にパブリックに解決可能なホスト名がある場合、OMS から Management Agent に接続するには、セキュリティグループに OMS アドレスを追加します。セキュリティグループには、DB リスナーポートと Management Agent ポートへのアクセスを許可するインバウンドルールが必要です。セキュリティの作成とインバウンドルールの追加の例については、「[チュートリアル: DB インスタンスで使用する VPC を作成する (IPv4 専用)](CHAP_Tutorials.WebServerDB.CreateVPC.md)」を参照してください。
+ OMS にパブリックに解決可能なホスト名がない場合、OMS から Management Agent に接続するには、以下のいずれかを使用します。
  + OMS がプライベート VPC の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスでホストされている場合、VPC ペアリングを設定して OMS から Management Agent に接続できます。詳細については、「[VPC 内の DB インスタンスに別の VPC 内の EC2 インスタンスからアクセスする](USER_VPC.Scenarios.md#USER_VPC.Scenario3)」を参照してください。
  + OMS がオンプレミスでホストされている場合、VPN 接続を設定して OMS から Management Agent へのアクセスを許可できます。VPN 接続の詳細については、「[インターネット経由でクライアントアプリケーションから VPC 内の DB インスタンスにアクセスする](USER_VPC.Scenarios.md#USER_VPC.Scenario4)」または「[VPN 接続](https://docs.aws.amazon.com/vpc/latest/userguide/vpn-connections.html)」を参照してください。
+ OEM Management Agent バージョン 13.5.0.0 (v1-v3) を 24.1 OMS ホストに接続するには、設定オプション `TLSv1.2` で TLS 1.2 プロトコルを使用するように `MINIMUM_TLS_VERSION` を設定します。

## Management Agent の制限
<a name="Oracle.Options.OEMAgent.limitations"></a>

Management Agent の使用にあたってのいくつかの制限を以下に挙げます。
+ カスタム Oracle Management Agent イメージを指定することはできません。
+ ジョブの実行やデータベースのパッチなど、ホスト認証情報を必要とする管理タスクはサポートされません。
+ ホストメトリクスおよびプロセスリストが実際のシステムの状態を反映しているかは、保証されていません。したがって、OEM を使用してルートファイルシステムまたはマウントポイントファイルシステムをモニタリングしないでください。オペレーティングシステムのモニタリングの詳細については、「[拡張モニタリングを使用した OS メトリクスのモニタリング](USER_Monitoring.OS.md)」を参照してください。
+ 自動検出はサポートされていません。手動でデータベースターゲットを追加する必要があります。
+ OMS モジュールの可用性はデータベースのエディションによって異なります。例えば、データベースのパフォーマンス診断およびモジュール調整は、Oracle Database Enterprise Edition でのみ使用できます。
+ Management Agent は増設メモリとコンピューティングリソースを消費します。`OEM_AGENT` オプションを有効にしてパフォーマンスの問題が発生する場合、DB インスタンスのクラスをスケールアップすることをお勧めします。詳細については、「[ DB インスタンスクラス](Concepts.DBInstanceClass.md)」および「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。
+ Amazon RDS ホストで `OEM_AGENT` を実行しているユーザーには、アラートログへのオペレーティングシステムアクセス権がありません。したがって、OEM の `DB Alert Log` と `DB Alert Log Error Status` のメトリクスを収集することはできません。

## Management Agent のオプション設定
<a name="Oracle.Options.OEMAgent.Options"></a>

Amazon RDS は Management Agent オプションの次の設定をサポートします。


| オプション設定 | 必須 | 有効な値 | 説明 | 
| --- | --- | --- | --- | 
|  **バージョン** (`AGENT_VERSION`)  |  はい  |  `13.5.0.0.v3` `13.5.0.0.v2` `13.5.0.0.v1` `13.4.0.9.v2` `13.4.0.9.v1` `13.3.0.0.v2` `13.3.0.0.v1` `13.2.0.0.v3` `13.2.0.0.v2` `13.2.0.0.v1` `13.1.0.0.v1`  |  Management Agent ソフトウェアのバージョン。サポートされる最小のバージョンは、`13.1.0.0.v1` です。 AWS CLI オプション名は `OptionVersion` です。  AWS GovCloud (US) リージョンでは、13.1 バージョンは利用できません。   | 
|  **ポート** (`AGENT_PORT`)  |  はい  |  整数値  |  OMS ホストをリッスンする DB インスタンスのポート。デフォルトは 3872 です。OMS ホストは、このポートへのアクセス権限があるセキュリティグループに属さなければなりません。 AWS CLI オプション名は `Port` です。  | 
|  ** セキュリティグループ**  |  はい  |  既存のセキュリティグループ  |  [**Port**] へのアクセス権限を持つセキュリティグループ。OMS ホストは、このセキュリティグループに属さなければなりません。 AWS CLI オプション名は `VpcSecurityGroupMemberships` または `DBSecurityGroupMemberships` です。  | 
|  **OMS\$1HOST**  |  はい  |  文字列値、例えば *my.example.oms*   |  OMS のパブリックに解決可能なホスト名または IP アドレスです。 AWS CLI オプション名は `OMS_HOST` です。  | 
|  **OMS\$1PORT**  |  はい  |  整数値  |  Management Agent をリッスンする OMS ホストの HTTPS アップロードポート。 HTTPS アップロードポートを確認するには、OMS ホストに接続し、次のコマンドを実行します (`SYSMAN` のパスワードが必要)。 emctl status oms -details  AWS CLI オプション名は `OMS_PORT` です。  | 
|  **AGENT\$1REGISTRATION\$1PASSWORD**  |  はい  |  文字列値  |  Management Agent が OMS に対して自身を認証するために使用するパスワード。`OEM_AGENT` オプションを有効化する前に、OMS に永続的なパスワードを作成することをお勧めします。永続的なパスワードを使用すると、複数の Amazon RDS データベース間で、Management Agent オプショングループを共有できます。 AWS CLI オプション名は `AGENT_REGISTRATION_PASSWORD` です。  | 
|  **ALLOW\$1TLS\$1ONLY**  |  いいえ  |  `true`、`false` (デフォルト値)  |  エージェントがサーバーとしてリッスンしている間 `TLSv1` プロトコルのみをサポートするように、OEM エージェントを構成する値。この設定はサポートされなくなりました。Management Agent バージョン 13.1.0.0.v1 以降では、デフォルトで Transport Layer Security (TLS) がサポートされています。  | 
|  **MINIMUM\$1TLS\$1VERSION**  |  いいえ  |  `TLSv1` (デフォルト)`TLSv1.2`  |  エージェントがサーバーとしてリッスンしている間 OEM エージェントがサポートする、最小 TLS バージョンを指定する値。サポートされなくなったエージェントバージョンでは、`TLSv1` 設定のみがサポートされています。 13.5.0.0 (v1-v3) を 24.1 OMS ホストに接続するには、これを `TLSv1.2` に設定します。  | 
|  **TLS\$1CIPHER\$1SUITE**  |  いいえ  |  「[Management Agent のオプション設定](#Oracle.Options.OEMAgent.Options)」を参照してください。  |  エージェントがサーバーとしてリッスンしている間 OEM エージェントによって使用される、TLS 暗号スイートを指定する値。  | 

次の表は、Management Agent オプションがサポートする TLS 暗号スイートの一覧です。


| 暗号スイート | サポートされる Agent のバージョン | FedRAMP 準拠 | 
| --- | --- | --- | 
| TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA | すべて | いいえ | 
| TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 | 13.1.0.0.v1 以降 | いいえ | 
| TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA | 13.2.0.0.v3 以降 | いいえ | 
| TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256 | 13.2.0.0.v3 以降 | いいえ | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA | 13.2.0.0.v3 以降 | はい | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA | 13.2.0.0.v3 以降 | はい | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 | 13.2.0.0.v3 以降 | はい | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 | 13.2.0.0.v3 以降 | はい | 
| TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 | 13.4.0.9.v1 以降 | はい | 
| TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 | 13.4.0.9.v1 以降 | はい | 

### 暗号スイートと証明書の互換性
<a name="Oracle.Options.OEMAgent.CertificateCompatibility"></a>

RDS for Oracle は、RSA 証明書と楕円曲線デジタル署名アルゴリズム (ECDSA) 証明書の両方をサポートしています。DB インスタンスの OEM エージェントオプションを設定するときは、`TLS_CIPHER_SUITE` オプション設定で指定した暗号スイートが DB インスタンスで使用される証明書タイプと互換性があることを確認する必要があります。

次の表は、証明書タイプと暗号スイート間の互換性を示しています。


| [証明書タイプ] | 互換性のある暗号スイート | 互換性のない暗号スイート | 
| --- | --- | --- | 
| RSA 証明書 (rds-ca-2019、rds-ca-rsa2048-g1、rds-ca-rsa4096-g1) |  TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  | 
| ECDSA 証明書 (rds-ca-ecc384-g1) |  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  | 

`TLS_CIPHER_SUITE` オプション設定で暗号スイートを指定するときは、DB インスタンスで使用される証明書タイプと互換性があることを確認してください。DB インスタンスの証明書タイプと互換性のない暗号スイートを含む OEM エージェントオプションにオプショングループを関連付けようとすると、オペレーションは失敗し、非互換性を示すエラーメッセージが表示されます。

## Management Agent オプションを DB インスタンス用に有効にする
<a name="Oracle.Options.OEMAgent.Enable"></a>

Management Agent オプションを有効にするには、次の手順を実行します。

**Topics**
+ [

### ステップ 1: DB インスタンスに Management Agent オプションを追加する
](#Oracle.Options.OEMAgent.Add)
+ [

### ステップ 2: DBSNMP ユーザーアカウントのロックを解除する
](#Oracle.Options.OEMAgent.DBSNMP)
+ [

### ステップ 3: Management Agent コンソールにターゲットを追加する
](#Oracle.Options.OEMAgent.Using)

### ステップ 1: DB インスタンスに Management Agent オプションを追加する
<a name="Oracle.Options.OEMAgent.Add"></a>

Management Agent オプションを DB インスタンスに追加するには、次の手順を実行します。

1. 新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更します。

1. オプショングループに [] オプションを追加します。

1. オプショングループを DB インスタンスに関連付けます。

エラーが発生した場合は、特定の問題の解決に関する情報について、[My Oracle Support](https://support.oracle.com/) のドキュメントを確認します。

Management Agent オプションを追加した後に DB インスタンスを再起動する必要はありません。オプショングループがアクティブになると、すぐに OEM Agent がアクティブになります。

OMS ホストで信頼できないサードパーティーの証明書が使用されている場合は、Amazon RDS より次のエラーが返ります。

```
You successfully installed the OEM_AGENT option. Your OMS host is using an untrusted third party certificate. 
Configure your OMS host with the trusted certificates from your third party.
```

このエラーが返った場合、Management Agent オプションは問題が解決するまで有効になりません。問題の修正については、My Oracle Support ドキュメント「[2202569.1](https://support.oracle.com/epmos/faces/DocContentDisplay?id=2202569.1)」を参照してください。

#### コンソール
<a name="Oracle.Options.OEMAgent.Add.Console"></a>

**Management Agent オプションを DB インスタンスに追加するには**

1. 使用するオプショングループを決定します。新しいオプショングループを作成することも、既存のオプショングループを使用することもできます。既存のオプショングループを使用する場合は、次のステップは飛ばしてください。または、次の設定でカスタム DB オプショングループを作成します。

   1. [**Engine**] で DB インスタンスの Oracle エディションを選択します。

   1. [**メジャーエンジンのバージョン**] で、DB インスタンスのバージョンを選択します。

   詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. オプショングループに [**OEM\$1AGENT**] オプションを追加し、オプションを設定します。オプションの追加方法の詳細については、「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。各設定の詳細については、「[Management Agent のオプション設定](#Oracle.Options.OEMAgent.Options)」を参照してください。

1. 新規または既存の DB インスタンスに、DB オプショングループを適用します。
   + 新規 DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
   + 既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

#### AWS CLI
<a name="Oracle.Options.OEMAgent.Add.CLI"></a>

次の例では、AWS CLI の [add-option-to-option-group](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html) コマンドを使用して、`OEM_AGENT` オプションを `myoptiongroup` オプショングループに追加しています。

Linux、macOS、Unix の場合:

```
aws rds add-option-to-option-group \
    --option-group-name "myoptiongroup" \
    --options OptionName=OEM_AGENT,OptionVersion=13.1.0.0.v1,Port=3872,VpcSecurityGroupMemberships=sg-1234567890,OptionSettings=[{Name=OMS_HOST,Value=my.example.oms},{Name=OMS_PORT,Value=4903},{Name=AGENT_REGISTRATION_PASSWORD,Value=password}] \
    --apply-immediately
```

Windows の場合:

```
aws rds add-option-to-option-group ^
    --option-group-name "myoptiongroup" ^
    --options OptionName=OEM_AGENT,OptionVersion=13.1.0.0.v1,Port=3872,VpcSecurityGroupMemberships=sg-1234567890,OptionSettings=[{Name=OMS_HOST,Value=my.example.oms},{Name=OMS_PORT,Value=4903},{Name=AGENT_REGISTRATION_PASSWORD,Value=password}] ^
    --apply-immediately
```

### ステップ 2: DBSNMP ユーザーアカウントのロックを解除する
<a name="Oracle.Options.OEMAgent.DBSNMP"></a>

Management Agent は、`DBSNMP` ユーザーアカウントを使用してデータベースに接続し、問題を Oracle Enterprise Manager に報告します。CDB では、`DBSNMP` は共通ユーザーです。このユーザーアカウントは、Management Agent と OEM Database Express の両方に必要です。デフォルトでは、このアカウントはロックされています。このアカウントのロック解除手順は、データベースが非 CDB アーキテクチャを使用しているか CDB アーキテクチャを使用しているかによって異なります。

**DBSNMP ユーザーアカウントのロックを解除するには**

1. SQL\$1Plus または別の Oracle SQL アプリケーションで、マスターユーザーとして DB インスタンスにログインします。

1. データベースアーキテクチャに応じて、次のいずれかのアクションを実行します。  
**データベースが非 CDB の場合**  
次の SQL ステートメントを実行します。  

   ```
   1. ALTER USER dbsnmp IDENTIFIED BY new_password ACCOUNT UNLOCK;
   ```  
**データベースが CDB の場合**  
次のストアドプロシージャを実行して、`DBSNMP` アカウントのロックを解除します。  

   ```
   1. EXEC rdsadmin.rdsadmin_util.reset_oem_agent_password('new_password');
   ```
プロシージャが存在しないことを示すエラーが表示された場合は、CDB インスタンスを再起動して自動的にインストールします。詳細については、「[ DB インスタンスの再起動](USER_RebootInstance.md)」を参照してください。

### ステップ 3: Management Agent コンソールにターゲットを追加する
<a name="Oracle.Options.OEMAgent.Using"></a>

DB インスタンスをターゲットとして追加するには、エンドポイントとポートがわかっていることを確認してください。Amazon RDS DB インスタンスのエンドポイントを見つける方法については、「[RDS for Oracle DB インスタンスのエンドポイントを見つける](USER_Endpoint.md)」を参照してください。データベースが CDB アーキテクチャを使用している場合は、`CDB$ROOT` コンテナをターゲットとして個別に追加します。

**Management Agent コンソールにターゲットを追加するには**

1. OMS コンソールで、[**Setup**]、[**Add Target**]、[**Add Targets Manually**] の順に選択します。

1. [**Add Targets Declaratively by Specifying Target Monitoring Properties**] を選択します。

1. [**Target Type**] で、[**Database Instance**] を選択します。

1. [**Monitoring Agent (モニタリングエージェント)**] で、RDS DB インスタンス識別子と同じ識別子のエージェントを選択します。

1. [**Add Manually**] を選択します。

1. Amazon RDS DB インスタンスのエンドポイントを入力するか、ホスト名リストから選択します。指定されたホスト名が Amazon RDS DB インスタンスのエンドポイントと一致することを確認します。

1. 次のデータベースのプロパティを指定します。
   + [**ターゲット名**] に、名前を入力します。
   + [**Database system name (データベースシステム名)**] に名前を入力します。
   + [**Monitor username (モニターユーザーネーム)**] に **dbsnmp** と入力します。
   + **[モニターパスワード]** に [ステップ 2: DBSNMP ユーザーアカウントのロックを解除する](#Oracle.Options.OEMAgent.DBSNMP) のパスワードを入力します。
   + [**ロール**] に **normal** と入力します。
   + [**Oracle home path (Oracle ホームパス)**] に **/oracle** と入力します。
   + [**Listener Machine name**] には、エージェント識別子があらかじめ表示されます。
   + [**Port (ポート)**] にデータベースポートを入力します。RDS のデフォルトのポート番号は 1521 です。
   + [**Database name (データベース名)**] には、データベースの名前を入力します。データベースが CDB の場合、この名前は `RDSCDB` です。

1. [**Test Connection**] を選択します。

1. **[次へ]** を選択します。ターゲットデータベースは、モニタリング対象リソースのリストに表示されます。

## Management Agent オプションの削除
<a name="Oracle.Options.OEMAgent.Remove"></a>

DB インスタンスから OEM Agent を削除できます。OEM Agent を削除した後、DB インスタンスを再起動する必要はありません。

OEM Agent を DB インスタンスから削除するには、次のいずれかを実行します。
+ OEM Agent オプションを、所属するオプショングループから削除します。この変更はそのオプショングループを使用するすべての DB インスタンスに影響します。詳細については、「[オプショングループからオプションを削除する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption)」を参照してください。
+ DB インスタンスを修正して、OEM Agent オプションが含まれない別オプショングループを指定します。この変更は、単一の DB インスタンスに影響します。デフォルト (空) のオプショングループや別のカスタムオプショングループを指定できます。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## Management Agent を使用したデータベースタスクの実行
<a name="Oracle.Options.OEMAgent.DBTasks"></a>

Amazon RDS 手順を使用して、Management Agent で特定の EMCTL コマンドを実行できます。これらの手順を実行すると、以下のタスクを実行できます。

**注記**  
タスクは非同期的に実行されます。

**Topics**
+ [

### Management Agent を保護する
](#Oracle.Options.OEMAgent.DBTasks.SecureAgent)
+ [

### Management Agent のステータスの取得
](#Oracle.Options.OEMAgent.DBTasks.GetAgentStatus)
+ [

### Management Agent の再起動
](#Oracle.Options.OEMAgent.DBTasks.RestartAgent)
+ [

### Management Agent でモニタリングするターゲットのリスト化
](#Oracle.Options.OEMAgent.DBTasks.ListTargets)
+ [

### Management Agent でモニタリングする取集スレッドのリスト化
](#Oracle.Options.OEMAgent.DBTasks.ListCollectionThreads)
+ [

### Management Agent のステータスの削除
](#Oracle.Options.OEMAgent.DBTasks.ClearState)
+ [

### Management Agent に OMS をアップロードさせる
](#Oracle.Options.OEMAgent.DBTasks.ForceUploadOMS)
+ [

### OMS への ping
](#Oracle.Options.OEMAgent.DBTasks.PingOMS)
+ [

### 実行中のタスクのステータスの表示
](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus)

### Management Agent を保護する
<a name="Oracle.Options.OEMAgent.DBTasks.SecureAgent"></a>

Management Agent を保護するには、Amazon RDS 手順 `rdsadmin.rdsadmin_oem_agent_tasks.secure_oem_agent` を実行します。この手順は、`emctl secure agent` コマンドの実行に相当します。

次の手順では、管理エージェントを保護するタスクを作成し、タスクの ID を返します。

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.secure_oem_agent as TASK_ID from DUAL;
```

タスクの出力ファイルを表示し、結果を確認するには、「[実行中のタスクのステータスの表示](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus)」を参照してください。

### Management Agent のステータスの取得
<a name="Oracle.Options.OEMAgent.DBTasks.GetAgentStatus"></a>

Management Agent のステータスを取得するには、Amazon RDS のプロシージャ `rdsadmin.rdsadmin_oem_agent_tasks.get_status_oem_agent` を実行します。このプロシージャは、`emctl status agent` コマンドに相当します。

次の手順では、管理エージェントのステータスを取得するタスクを作成し、タスクの ID を返します。

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.get_status_oem_agent() as TASK_ID from DUAL;
```

タスクの出力ファイルを表示し、結果を確認するには、「[実行中のタスクのステータスの表示](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus)」を参照してください。

### Management Agent の再起動
<a name="Oracle.Options.OEMAgent.DBTasks.RestartAgent"></a>

Management Agent を再起動するには、Amazon RDS 手順 `rdsadmin.rdsadmin_oem_agent_tasks.restart_oem_agent` を実行します。この手順は、`emctl stop agent` および `emctl start agent` コマンドの実行に相当します。

次の手順では、管理エージェントを再起動するタスクを作成し、タスクの ID を返します。

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.restart_oem_agent as TASK_ID from DUAL;    
```

タスクの出力ファイルを表示し、結果を確認するには、「[実行中のタスクのステータスの表示](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus)」を参照してください。

### Management Agent でモニタリングするターゲットのリスト化
<a name="Oracle.Options.OEMAgent.DBTasks.ListTargets"></a>

Management Agent によってモニタリングされるターゲットをリスト化するには、Amazon RDS 手順 `rdsadmin.rdsadmin_oem_agent_tasks.list_targets_oem_agent` を実行します。この手順は、`emctl config agent listtargets` コマンドの実行に相当します。

次の手順では、管理エージェントによってモニタリングされるターゲットを一覧表示するタスクを作成し、タスクの ID を返します。

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.list_targets_oem_agent as TASK_ID from DUAL;
```

タスクの出力ファイルを表示し、結果を確認するには、「[実行中のタスクのステータスの表示](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus)」を参照してください。

### Management Agent でモニタリングする取集スレッドのリスト化
<a name="Oracle.Options.OEMAgent.DBTasks.ListCollectionThreads"></a>

管理エージェントによってモニタリングされる、実行中、準備完了、スケジュール済みの収集スレッドをすべて一覧表示するには、Amazon RDS プロシージャ `rdsadmin.rdsadmin_oem_agent_tasks.list_clxn_threads_oem_agent` を実行します。このプロシージャは、`emctl status agent scheduler` コマンドに相当します。

次の手順では、収集スレッドを一覧表示するタスクを作成し、タスクの ID を返します。

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.list_clxn_threads_oem_agent() as TASK_ID from DUAL;          
```

タスクの出力ファイルを表示し、結果を確認するには、「[実行中のタスクのステータスの表示](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus)」を参照してください。

### Management Agent のステータスの削除
<a name="Oracle.Options.OEMAgent.DBTasks.ClearState"></a>

Management Agent のステータスを削除するには、Amazon RDS の手順 `rdsadmin.rdsadmin_oem_agent_tasks.clearstate_oem_agent` を実行します。この手順は、`emctl clearstate agent` コマンドの実行に相当します。

次の手順では、管理エージェントの状態をクリアするタスクを作成し、タスクの ID を返します。

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.clearstate_oem_agent() as TASK_ID from DUAL;
```

タスクの出力ファイルを表示し、結果を確認するには、「[実行中のタスクのステータスの表示](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus)」を参照してください。

### Management Agent に OMS をアップロードさせる
<a name="Oracle.Options.OEMAgent.DBTasks.ForceUploadOMS"></a>

Management Agent に関連付けられた Oracle Management Server (OMS) をアップロードするには、Amazon RDS のプロシージャ `rdsadmin.rdsadmin_oem_agent_tasks.upload_oem_agent` を実行します。この手順は、`emclt upload agent` コマンドの実行に相当します。

次の手順では、関連付けられている OMS を管理エージェントにアップロードさせるタスクを作成し、タスクの ID を返します。

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.upload_oem_agent() as TASK_ID from DUAL;
```

タスクの出力ファイルを表示し、結果を確認するには、「[実行中のタスクのステータスの表示](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus)」を参照してください。

### OMS への ping
<a name="Oracle.Options.OEMAgent.DBTasks.PingOMS"></a>

Management Agent の OMS を ping するには、Amazon RDS の手順 `rdsadmin.rdsadmin_oem_agent_tasks.ping_oms_oem_agent` を実行します。この手順は、`emctl pingOMS` コマンドの実行に相当します。

次の手順では、管理エージェントの OMS に ping を送信するタスクを作成し、タスクの ID を返します。

```
SELECT rdsadmin.rdsadmin_oem_agent_tasks.ping_oms_oem_agent() as TASK_ID from DUAL;
```

タスクの出力ファイルを表示し、結果を確認するには、「[実行中のタスクのステータスの表示](#Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus)」を参照してください。

### 実行中のタスクのステータスの表示
<a name="Oracle.Options.OEMAgent.DBTasks.ViewTaskStatus"></a>

実行中のタスクのステータスは bdump ファイルで確認できます。bdump ファイルは `/rdsdbdata/log/trace` ディレクトリにあります。bdump ファイルの名前形式は、以下のとおりです。

```
dbtask-task-id.log 
```

タスクをモニタリングしたい場合は、`task-id` を、モニタリングするタスクの ID に置き換えます。

bdump ファイルの内容を表示するには、Amazon RDS 手順 `rdsadmin.rds_file_util.read_text_file` を実行します。次のクエリは、`dbtask-1546988886389-2444.log` bdump ファイルの中身を返します。

```
SELECT text FROM table(rdsadmin.rds_file_util.read_text_file('BDUMP','dbtask-1546988886389-2444.log'));
```

このAmazon RDS 手順 `rdsadmin.rds_file_util.read_text_file` の詳細については、「[DB インスタンスディレクトリ内のファイルの読み取り](Appendix.Oracle.CommonDBATasks.Misc.md#Appendix.Oracle.CommonDBATasks.ReadingFiles)」を参照してください。

# Oracle Label Security
<a name="Oracle.Options.OLS"></a>

Amazon RDS は OLS オプションの使用を通じて Oracle Database の Oracle Enterprise Edition 用のOracle Label Security をサポートします。

ほとんどのデータベースセキュリティでは、オブジェクトレベルでアクセスを制御します。Oracle Label Security は、個別のテーブル行へのアクセスのきめ細かい制御を提供します。例えば、Label Security を使用して、ポリシーベースの管理モデルで規制コンプライアンスを適用できます。Label Security ポリシーを使用して機密データへのアクセスを制御し、適切なクリアランスレベルを持つユーザーのみにアクセスを制限できます。詳細については、Oracle ドキュメントの「[Introduction to Oracle Label Security](https://docs.oracle.com/database/121/OLSAG/intro.htm#OLSAG001)」を参照してください。

**Topics**
+ [

## Oracle Label Security の要件
](#Oracle.Options.OLS.PreReqs)
+ [

## Oracle Label Security を使用する際の考慮事項
](#Oracle.Options.OLS.Using)
+ [

## Oracle Label Security オプションの追加
](#Oracle.Options.OLS.Add)
+ [

## トラブルシューティング
](#Oracle.Options.OLS.Troubleshooting)

## Oracle Label Security の要件
<a name="Oracle.Options.OLS.PreReqs"></a>

Oracle Label Security に関する次の要件を理解してください。
+ DB インスタンスでは Bring-Your-Own-License モデルを使用する必要があります。詳細については、「[RDS for Oracle のライセンスオプション](Oracle.Concepts.Licensing.md)」を参照してください。
+ Oracle Enterprise Edition の有効なライセンスと、ソフトウェア更新ライセンスおよびサポートが必要です。
+ Oracle ライセンスには、Label Security オプションが必要です。

## Oracle Label Security を使用する際の考慮事項
<a name="Oracle.Options.OLS.Using"></a>

Oracle Label Security を使用するには、テーブルの特定の行へのアクセスを制御するポリシーを作成します。詳細については、Oracle ドキュメントの「[Creating an Oracle Label Security Policy](https://docs.oracle.com/database/121/OLSAG/getstrtd.htm#OLSAG3096)」を参照してください。

以下の点を考慮してください。
+ Oracle Label Security は、固定かつ永続オプションです。このオプションは固定的なものであり、オプショングループから削除することはできません。Oracle Label Security をオプショングループに追加して DB インスタンスに関連付けた場合、後で DB インスタンスに別のオプショングループを関連付けることはできますが、このグループには Oracle Label Security オプションも含める必要があります。
+ Label Security を操作する場合、すべてのアクションを `LBAC_DBA` ロールとして実行します。DB インスタンスのマスターユーザーには `LBAC_DBA` ロールが付与されます。他のユーザーが Label Security ポリシーを管理できるように、`LBAC_DBA` ロールを他のユーザーに付与できます。
+ Oracle Label Security へのアクセスが必要な新規ユーザーに `OLS_ENFORCEMENT` パッケージへのアクセス権を付与するようにしてください。`OLS_ENFORCEMENT` パッケージへのアクセス権を付与するには、DB インスタンスにマスターユーザーとして接続し、次の SQL ステートメントを実行します。

  ```
  GRANT ALL ON LBACSYS.OLS_ENFORCEMENT TO username;
  ```
+ Oracle Enterprise Manager (OEM) Cloud Control を使用して、Label Security を設定することができます。Amazon RDS は Management Agent オプションを通じて OEM Cloud Control をサポートします。詳細については、「[Enterprise Manager Cloud Control 向け Oracle Management Agent](Oracle.Options.OEMAgent.md)」を参照してください。

## Oracle Label Security オプションの追加
<a name="Oracle.Options.OLS.Add"></a>

DB インスタンスに Oracle Label Security オプションを追加する一般的な手順は以下のとおりです。

1. 新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更します。

1. オプショングループにオプションを追加します。
**重要**  
Oracle Label Security は、固定かつ永続オプションです。

1. オプショングループを DB インスタンスに関連付けます。

Label Security オプションの追加後、オプショングループがアクティブになるとすぐに、Label Security がアクティブになります。

**Label Security オプションを DB インスタンスに追加するには**

1. 使用するオプショングループを決定します。新しいオプショングループを作成することも、既存のオプショングループを使用することもできます。既存のオプショングループを使用する場合は、次のステップは飛ばしてください。または、次の設定でカスタム DB オプショングループを作成します。

   1. [**Engine**] で、[**oracle-ee**] を選択します。

   1. [**メジャーエンジンのバージョン**] で、DB インスタンスのバージョンを選択します。

   詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. オプショングループに [**OLS**] オプションを追加します。オプションの追加方法の詳細については、「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。
**重要**  
すでに 1 つ以上の DB インスタンスにアタッチされている既存のオプショングループに Label Security を追加すると、すべての DB インスタンスが再起動されます。

1. 新規または既存の DB インスタンスに、DB オプショングループを適用します。
   + 新規 DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。

      
   + 既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。既存の DB インスタンスに Label Security オプションを追加すると、DB インスタンスを自動的に再起動している間に短い停止が発生します。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## トラブルシューティング
<a name="Oracle.Options.OLS.Troubleshooting"></a>

Oracle Label Security を使用するときに発生する可能性のある問題を次に示します。


****  

| 問題 | トラブルシューティングの推奨事項 | 
| --- | --- | 
|  ポリシーを作成しようとすると、次のようなエラーメッセージが表示されます: `insufficient authorization for the SYSDBA package`。  |  Oracle の Label Security 機能の既知の問題により、16～24 文字のユーザーネームを持つユーザーは、Label Security のコマンドを実行することができません。文字数が異なる新しいユーザーを作成し、LBAC\$1DBA を新しいユーザーに付与し、新しいユーザーとしてログインして、新しいユーザーとして OLS コマンドを実行します。詳細については、Oracle サポートにお問い合わせください。  | 

# Oracle Locator
<a name="Oracle.Options.Locator"></a>

Amazon RDS は、`LOCATOR` オプションを使用することで Oracle Locator をサポートします。Oracle Locator は、インターネットとワイヤレスベースのアプリケーションをサポートするために一般的に必要な機能とパートナーベースの GIS ソリューションを提供します。Oracle Locator は Oracle Spatial の制限付きのサブネットです。詳細については、Oracle ドキュメントの [Oracle Locator](https://docs.oracle.com/database/121/SPATL/sdo_locator.htm#SPATL340) を参照してください。

**重要**  
Oracle Locator を使用する際、共通脆弱性評価システム (CVSS) のスコアが 9 以上、またはそのほかのセキュリティ脆弱性の報告によりセキュリティ脆弱性がある場合に、Amazon RDS は自動的に DB インスタンスを最新の Oracle PSU にアップデートします。

## サポートされている Oracle Locator のデータベースリリース
<a name="Oracle.Options.Locator.Releases"></a>

RDS for Oracle は、Oracle Database 19c について Oracle Locator をサポートしています。Oracle Locator は Oracle データベース 21c ではサポートされていませんが、その機能は Oracle Spatial オプションで使用できます。以前は、Spatial オプションには追加のライセンスが必要でした。Oracle Locator は Oracle Spatial 機能のサブセットの 1 つであり、追加のライセンスは必要ありませんでした。2019 年、Oracle は Oracle Spatial のすべての機能が Enterprise Edition と Standard Edition 2 のライセンスに追加費用なしで含まれたことを発表しました。その結果、Oracle Spatial オプションに追加のライセンスは必要なくなりました。詳細については、Oracle Database Insider ブログの [Machine Learning, Spatial and Graph - No License Required\$1](https://blogs.oracle.com/database/post/machine-learning-spatial-and-graph-no-license-required) (機械学習、Spatial と Graph のライセンスが不要に) を参照してください。

## Oracle Locator の前提条件
<a name="Oracle.Options.Locator.PreReqs"></a>

Oracle Locator を使用するための前提条件は次のとおりです。
+ DB インスタンスが十分なクラスである必要があります。Oracle Locator は、db.t3.small DB インスタンスクラスではサポートされていません。詳細については、「[RDS for Oracle DB インスタンスクラス](Oracle.Concepts.InstanceClasses.md)」を参照してください。
+ DB インスタンスで [**マイナーバージョン自動アップグレード**] が有効になっている必要があります。このオプションにより、DB インスタンスは、(それが利用可能になった時点で) DB エンジンのマイナーバージョンアップグレードを自動的に受信できるようになります。これは、Oracle の Java 仮想マシン (JVM) をインストールする、すべてのオプションに必須です。Amazon RDS では、このオプションを使用して、DB インスタンスに対し最新の Oracle パッチセット更新 (PSU)、またはリリース更新 (RU) を行います。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## Oracle Locator のベストプラクティス
<a name="Oracle.Options.Locator.BestPractces"></a>

Oracle Locator を使用するためのベストプラクティスは次のとおりです。
+ セキュリティを最大にするためには、`LOCATOR` オプションを Secure Sockets Layer (SSL) で使用します。詳細については、「[Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md)」を参照してください。
+ DB インスタンスへのアクセスを制限するように、DB インスタンスを設定します。詳細については、「[VPC の DB インスタンスにアクセスするシナリオ](USER_VPC.Scenarios.md)」および「[VPC 内の DB インスタンスの使用](USER_VPC.WorkingWithRDSInstanceinaVPC.md)」を参照してください。

## Oracle Locator オプションの追加
<a name="Oracle.Options.Locator.Add"></a>

DB インスタンスに `LOCATOR` オプションを追加する一般的な手順は以下のとおりです。

1. 新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更します。

1. オプショングループに [] オプションを追加します。

1. オプショングループを DB インスタンスに関連付けます。

DB インスタンスに Oracle Java Virtual Machine (JVM) がインストールされて*いない*場合、`LOCATOR` オプションが追加されている間は短時間停止します。Oracle Java Virtual Machine (JVM) がすでに DB インスタンスにインストールされている場合、停止は発生しません。オプションを追加した後に DB インスタンスを再起動する必要はありません。オプショングループがアクティブになると、すぐに Oracle Locator が使用可能となります。

**注記**  
この停止中、パスワード検証機能は一時的に無効になります。また、停止中にパスワード検証機能に関連するイベントを確認することもできます。Oracle DB インスタンスが使用可能になる前に、パスワード検証機能が再び有効になります。

**`LOCATOR` オプションを DB インスタンスに追加するには**

1. 使用するオプショングループを決定します。新しいオプショングループを作成することも、既存のオプショングループを使用することもできます。既存のオプショングループを使用する場合は、次のステップは飛ばしてください。または、次の設定でカスタム DB オプショングループを作成します。

   1. [**エンジン**] で DB インスタンスの Oracle エディションを選択します。

   1. [**メジャーエンジンのバージョン**] で、DB インスタンスのバージョンを選択します。

   詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. オプショングループに [**LOCATOR**] オプションを追加します。オプションの追加方法の詳細については、「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。

1. 新規または既存の DB インスタンスに、DB オプショングループを適用します。
   + 新規 DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
   + 既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## Oracle Locator を使用する
<a name="Oracle.Options.Locator.Using"></a>

Oracle Locator オプションを有効にしたら、使用をスタートできます。Oracle Locator の機能のみ使用する必要があります。Oracle Spatial のライセンスがない場合には、Oracle Spatial の機能は使用しないでください。

Oracle Locator デサポートされている機能の一覧については、Oracle ドキュメントで [Features Included with Locator](https://docs.oracle.com/database/121/SPATL/sdo_locator.htm#GUID-EC6DEA23-8FD7-4109-A0C1-93C0CE3D6FF2__CFACCEEG) を参照してください。

Oracle Locator デサポートされていない機能の一覧については、Oracle ドキュメントで [Features Not Included with Locator](https://docs.oracle.com/database/121/SPATL/sdo_locator.htm#GUID-EC6DEA23-8FD7-4109-A0C1-93C0CE3D6FF2__CFABACEA) を参照してください。

## Oracle Locator オプションの削除
<a name="Oracle.Options.Locator.Remove"></a>

`LOCATOR` オプションが提供するデータ型を使用するすべてのオブジェクトを削除したら、そのオプションを DB インスタンスから削除できます。DB インスタンスに Oracle Java Virtual Machine (JVM) がインストールされて*いない*場合、`LOCATOR` オプションの削除中にサービスが短時間停止します。Oracle Java Virtual Machine (JVM) がすでに DB インスタンスにインストールされている場合、停止は発生しません。`LOCATOR` オプションを削除した後に DB インスタンスを再起動する必要はありません。

**`LOCATOR` オプションを削除するには**

1. データをバックアップします。
**警告**  
オプションの一部として有効化されたデータ型がインスタンスで使用されている場合、`LOCATOR` オプションを削除すると、データが失われる可能性があります。詳細については、「[データのバックアップ、復元、エクスポート](CHAP_CommonTasks.BackupRestore.md)」を参照してください。

1. 既存のオブジェクトが、`LOCATOR` オプションのデータ型や機能を参照しているかどうかを確認します。

   `LOCATOR` オプションが存在する場合、`LOCATOR` オプションを持たない新しいオプショングループを適用すると、インスタンスが停止することがあります。次のクエリを使用して、オブジェクトを識別できます。

   ```
   SELECT OWNER, SEGMENT_NAME, TABLESPACE_NAME, BYTES/1024/1024 mbytes
   FROM   DBA_SEGMENTS
   WHERE  SEGMENT_TYPE LIKE '%TABLE%'
   AND    (OWNER, SEGMENT_NAME) IN
          (SELECT DISTINCT OWNER, TABLE_NAME 
           FROM   DBA_TAB_COLUMNS
           WHERE  DATA_TYPE='SDO_GEOMETRY'
           AND    OWNER <> 'MDSYS')
   ORDER BY 1,2,3,4;
   
   SELECT OWNER, TABLE_NAME, COLUMN_NAME
   FROM   DBA_TAB_COLUMNS 
   WHERE  DATA_TYPE = 'SDO_GEOMETRY' 
   AND    OWNER <> 'MDSYS' 
   ORDER BY 1,2,3;
   ```

1. `LOCATOR` オプションのデータ型や機能を参照するすべてのオブジェクトを削除します。

1. 次のいずれかを行ってください。
   + `LOCATOR` オプションを所属するオプショングループから削除します。この変更はそのオプショングループを使用するすべての DB インスタンスに影響します。詳細については、「[オプショングループからオプションを削除する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption)」を参照してください。
   + DB インスタンスを修正して、`LOCATOR` オプションが含まれない別オプショングループを指定します。この変更は、単一の DB インスタンスに影響します。デフォルト (空) のオプショングループや別のカスタムオプショングループを指定できます。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

# Oracle ネイティブネットワーク暗号化
<a name="Appendix.Oracle.Options.NetworkEncryption"></a>

Amazon RDS は、Oracle ネイティブネットワーク暗号化 (NNE) をサポートしています。`NATIVE_NETWORK_ENCRYPTION` オプションを使用すると、DB インスタンスとの間でデータを移動するときにデータを暗号化できます。Amazon RDS では、Oracle Database のすべてのエディションの NNE がサポートされています。

Oracle ネイティブネットワーク暗号化の詳細な説明はこのガイドでは取り上げませんが、配置で使用するソリューションを決定する前に各アルゴリズムおよびキーの長所と短所を理解する必要があります。Oracle ネイティブネットワークの暗号化で使用できるアルゴリズムとキーについては、Oracle ドキュメントの「[Configuring Network Data Encryption](http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/11g/r2/prod/security/network_encrypt/ntwrkencrypt.htm)」を参照してください。AWS セキュリティの詳細については、[AWS セキュリティセンター](https://aws.amazon.com/security)を参照してください。

**注記**  
ネイティブネットワーク暗号化または Secure Sockets Layer を使用できますが、両方を使用することはできません。詳細については、「[Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md)」を参照してください。

**Topics**
+ [

# NATIVE\$1NETWORK\$1ENCRYPTION オプション設定
](Oracle.Options.NNE.Options.md)
+ [

# NATIVE\$1NETWORK\$1ENCRYPTION オプションの追加
](Oracle.Options.NNE.Add.md)
+ [

# sqlnet.ora で NNE 値を設定する
](Oracle.Options.NNE.Using.md)
+ [

# NATIVE\$1NETWORK\$1ENCRYPTION オプション設定
](Oracle.Options.NNE.ModifySettings.md)
+ [

# NATIVE\$1NETWORK\$1ENCRYPTION オプションの削除
](Oracle.Options.NNE.Remove.md)

# NATIVE\$1NETWORK\$1ENCRYPTION オプション設定
<a name="Oracle.Options.NNE.Options"></a>

暗号化要件は、サーバーとクライアントの両方で指定できます。DB インスタンスは、データベースリンクを使用して別のデータベースに接続する場合などに、クライアントとして機能します。サーバー側で暗号化の強制を回避できます。例えば、サーバーで必要としているからといって、すべてのクライアント通信で暗号化の使用を強制することはありません。この場合、`SQLNET.*CLIENT` オプションを使用してクライアント側で暗号化を強制できます。

Amazon RDS は、`NATIVE_NETWORK_ENCRYPTION` オプションの次の設定をサポートします。

**注記**  
オプション設定の値をコンマで区切る場合は、コンマの後にスペースを挿入しないでください。


****  

| オプション設定 | 有効な値 | デフォルト値 | 説明 | 
| --- | --- | --- | --- | 
|  `SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS`  |  `TRUE`, `FALSE`  |  `TRUE`  |  非セキュア暗号を使用しているクライアントでデータベースへの接続を試行したときのサーバーの動作。`TRUE` の場合、2021 年 7 月 PSU パッチが適用されていなくても、クライアントでの接続が可能です。 設定を `FALSE` にすると、クライアントで 2021 年 7 月 PSU パッチが適用された場合にだけ、データベースへの接続が可能です。`SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS` を `FALSE` に設定する前に、次の条件が満たされていることを確認してください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html)  | 
|  `SQLNET.ALLOW_WEAK_CRYPTO`  |  `TRUE`, `FALSE`  |  `TRUE`  |  非セキュア暗号を使用しているクライアントでデータベースへの接続を試行したときのサーバーの動作。次の暗号はセキュアではないと見なされます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html) 設定を `TRUE` にすると、クライアントで前述の非セキュア暗号を使用した場合に接続できます。 設定を `FALSE` にすると、クライアントで前述の非セキュア暗号を使用した場合にデータベースが接続を阻止します。`SQLNET.ALLOW_WEAK_CRYPTO` を `FALSE` に設定する前に、次の条件が満たされていることを確認してください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html)  | 
|  `SQLNET.CRYPTO_CHECKSUM_CLIENT`  |  `Accepted`, `Rejected`, `Requested`, `Required`   |  `Requested`  |  クライアント、またはクライアントとして機能しているサーバーが DB インスタンスに接続する場合のデータ整合性動作。DB インスタンスでデータベースリンクが使用されている場合、そのインスタンスはクライアントとして機能します。 `Requested` は、DB インスタンスによるチェックサムの実行をクライアントで必要としないことを示しています。  | 
|  `SQLNET.CRYPTO_CHECKSUM_SERVER`  |  `Accepted`, `Rejected`, `Requested`, `Required`   |  `Requested`  |  クライアント、またはクライアントとして機能しているサーバーが DB インスタンスに接続する場合のデータ整合性動作。DB インスタンスでデータベースリンクが使用されている場合、そのインスタンスはクライアントとして機能します。 `Requested` は、クライアントによるチェックサムの実行を DB インスタンスで必要としないことを示しています。  | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`  |  `SHA256`, `SHA384`, `SHA512`, `SHA1`, `MD5`  |  `SHA256`, `SHA384`, `SHA512`  |  チェックサムアルゴリズムのリスト。 1 つの値を指定することも、カンマで区切られた値リストを指定することもできます。コンマを使用する場合は、コンマの後にスペースを挿入しないでください。スペースを挿入すると、`InvalidParameterValue` エラーが発生します。 このパラメータと `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER ` には、共通の暗号が必要です。  | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`  |  `SHA256`, `SHA384`, `SHA512`, `SHA1`, `MD5`  |  `SHA256`, `SHA384`, `SHA512`, `SHA1`, `MD5`  |  チェックサムアルゴリズムのリスト。 1 つの値を指定することも、カンマで区切られた値リストを指定することもできます。コンマを使用する場合は、コンマの後にスペースを挿入しないでください。スペースを挿入すると、`InvalidParameterValue` エラーが発生します。 このパラメータと `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT` には、共通の暗号が必要です。  | 
|  `SQLNET.ENCRYPTION_CLIENT`  |  `Accepted`, `Rejected`, `Requested`, `Required`   |  `Requested`  |  クライアント、またはクライアントとして機能しているサーバーが DB インスタンスに接続する場合のクライアントの暗号化動作。DB インスタンスでデータベースリンクが使用されている場合、そのインスタンスはクライアントとして機能します。 `Requested` は、クライアントでサーバーからのトラフィックを暗号化する必要がないことを示しています。  | 
|  `SQLNET.ENCRYPTION_SERVER`  |  `Accepted`, `Rejected`, `Requested`, `Required`   |  `Requested`  |  クライアント、またはクライアントとして機能しているサーバーが DB インスタンスに接続する場合のサーバーの暗号化動作。DB インスタンスでデータベースリンクが使用されている場合、そのインスタンスはクライアントとして機能します。 `Requested` は、DB インスタンスでクライアントからのトラフィックを暗号化する必要がないことを示します。  | 
|  `SQLNET.ENCRYPTION_TYPES_CLIENT`  |  `RC4_256`, `AES256`, `AES192`, `3DES168`, `RC4_128`, `AES128`, `3DES112`, `RC4_56`, `DES`, `RC4_40`, `DES40`  |  `RC4_256`, `AES256`, `AES192`, `3DES168`, `RC4_128`, `AES128`, `3DES112`, `RC4_56`, `DES`, `RC4_40`, `DES40`  |  クライアントによって使用される暗号化アルゴリズムのリスト。クライアントは、各アルゴリズムが順序どおりに使用され、アルゴリズムが成功するか、リストの末尾に到達するまでサーバー入力の復号を試みます。 Amazon RDS は、Oracle による次のデフォルトリストを使用します。RDS は `RC4_256` で始まり、リストの下の方へ順番に進みます。順序を変更したり、DB インスタンスで受け入れられるアルゴリズムを制限したりすることができます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html) 1 つの値を指定することも、カンマで区切られた値リストを指定することもできます。コンマの場合は、コンマの後にスペースを挿入しないでください。スペースを挿入しないと、`InvalidParameterValue` エラーが発生します。 このパラメータと `SQLNET.SQLNET.ENCRYPTION_TYPES_SERVER` には、共通の暗号が必要です。  | 
|  `SQLNET.ENCRYPTION_TYPES_SERVER`  |  `RC4_256`, `AES256`, `AES192`, `3DES168`, `RC4_128`, `AES128`, `3DES112`, `RC4_56`, `DES`, `RC4_40`, `DES40`  |  `RC4_256`, `AES256`, `AES192`, `3DES168`, `RC4_128`, `AES128`, `3DES112`, `RC4_56`, `DES`, `RC4_40`, `DES40`  |  DB インスタンスによって使用された暗号化アルゴリズムのリスト。DB インスタンスは、各アルゴリズムを順序どおりに使用し、アルゴリズムが成功するか、リストの末尾に到達するまでクライアントの復号を試みます。 Amazon RDS は、Oracle による次のデフォルトリストを使用します。順序を変更したり、クライアントで受け入れられるアルゴリズムを制限したりすることができます。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/Oracle.Options.NNE.Options.html) 1 つの値を指定することも、カンマで区切られた値リストを指定することもできます。コンマの場合は、コンマの後にスペースを挿入しないでください。スペースを挿入しないと、`InvalidParameterValue` エラーが発生します。 このパラメータと `SQLNET.SQLNET.ENCRYPTION_TYPES_SERVER` には、共通の暗号が必要です。  | 

# NATIVE\$1NETWORK\$1ENCRYPTION オプションの追加
<a name="Oracle.Options.NNE.Add"></a>

DB インスタンスに `NATIVE_NETWORK_ENCRYPTION` オプションを追加する一般的なプロセスは以下のとおりです。

1. 新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更します。

1. オプショングループに [] オプションを追加します。

1. オプショングループを DB インスタンスに関連付けます。

オプショングループがアクティブになると、NNE がアクティブになります。

**AWS マネジメントコンソール を使用して DB インスタンスに NATIVE\$1NETWORK\$1ENCRYPTION オプションを追加するには**

1. [**Engine**] で、使用する Oracle のエディションを選択します。NNE はすべてのエディションでサポートされます。

1. [**メジャーエンジンのバージョン**] で、DB インスタンスのバージョンを選択します。

   詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. **NATIVE\$1NETWORK\$1ENCRYPTION** オプションをオプショングループに追加します。オプションの追加方法の詳細については、「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。
**注記**  
**NATIVE\$1NETWORK\$1ENCRYPTION** オプションを追加した後に DB インスタンスを再起動する必要はありません。オプショングループがアクティブになると、すぐに NNE がアクティブになります。

1. 新規または既存の DB インスタンスに、DB オプショングループを適用します。
   + 新規 DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
   + 既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。**NATIVE\$1NETWORK\$1ENCRYPTION** オプションを追加した後に DB インスタンスを再起動する必要はありません。オプショングループがアクティブになると、すぐに NNE がアクティブになります。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

# sqlnet.ora で NNE 値を設定する
<a name="Oracle.Options.NNE.Using"></a>

Oracle ネイティブネットワーク暗号化を使用すると、サーバー側とクライアント側でネットワーク暗号化を設定できます。クライアントとは DB インスタンスへの接続に使用されるコンピュータです。slqnet.ora では、次のクライアント設定を指定できます。
+ `SQLNET.ALLOW_WEAK_CRYPTO`
+ `SQLNET.ALLOW_WEAK_CRYPTO_CLIENTS`
+ `SQLNET.CRYPTO_CHECKSUM_CLIENT`
+ `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`
+ `SQLNET.ENCRYPTION_CLIENT`
+ `SQLNET.ENCRYPTION_TYPES_CLIENT`

詳細については、Oracle ドキュメントの「[Oracle サーバーおよびクライアントのネットワークデータ暗号化と整合性の設定](http://docs.oracle.com/cd/E11882_01/network.112/e40393/asoconfg.htm)」を参照してください。

DB インスタンスでアプリケーションからの接続リクエストが拒否される場合があります。例えば、クライアント側の暗号化アルゴリズムとサーバー側の暗号化アルゴリズムが一致しない場合、拒否される可能性があります。Oracle ネイティブネットワーク暗号化をテストするには、クライアントの sqlnet.ora ファイルに次の行を追加します。

```
DIAG_ADR_ENABLED=off
TRACE_DIRECTORY_CLIENT=/tmp
TRACE_FILE_CLIENT=nettrace
TRACE_LEVEL_CLIENT=16
```

接続が試行されると、前の行により `/tmp/nettrace*` というトレースファイルがクライアントに生成されます。トレースファイルには、接続に関する情報が含まれています。Oracle ネイティブネットワーク暗号化を使用した場合の接続に関連する問題の詳細については、「Oracle Database ドキュメント」の「[暗号化と整合性のネゴシエーションについて](http://docs.oracle.com/cd/E11882_01/network.112/e40393/asoconfg.htm#autoId12)」を参照してください。

# NATIVE\$1NETWORK\$1ENCRYPTION オプション設定
<a name="Oracle.Options.NNE.ModifySettings"></a>

`NATIVE_NETWORK_ENCRYPTION` オプションを有効にすると、その設定を変更できます。現在、`NATIVE_NETWORK_ENCRYPTION` オプション設定は、AWS CLI または RDS API でのみ変更できます。 コンソールは使用できません。次の例では、オプションで 2 つの設定を変更します。

```
aws rds add-option-to-option-group \
    --option-group-name my-option-group \
    --options "OptionName=NATIVE_NETWORK_ENCRYPTION,OptionSettings=[{Name=SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER,Value=SHA256},{Name=SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER,Value=SHA256}]" \
    --apply-immediately
```

CLI を使用したオプション設定の変更方法の詳細については、「[AWS CLI](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption.CLI)」を参照してください。各設定の詳細については、「[NATIVE\$1NETWORK\$1ENCRYPTION オプション設定](Oracle.Options.NNE.Options.md)」を参照してください。

**Topics**
+ [

## CRYPTO\$1CHECKSUM\$1\$1 値の変更
](#Oracle.Options.NNE.ModifySettings.checksum)
+ [

## ALLOW\$1WEAK\$1CRYPTO\$1 設定の変更
](#Oracle.Options.NNE.ModifySettings.encryption)

## CRYPTO\$1CHECKSUM\$1\$1 値の変更
<a name="Oracle.Options.NNE.ModifySettings.checksum"></a>

**NATIVE\$1NETWORK\$1ENCRYPTION** オプション設定を変更する場合は、次のオプション設定に共通の暗号が少なくとも 1 つあることを確認してください。
+ `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`
+ `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`

次の例は、`SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER` を変更するシナリオを示しています。`CRYPTO_CHECKSUM_TYPES_CLIENT`、`CRYPTO_CHECKSUM_TYPES_SERVER` の両方が `SHA256` を使用するため、設定は有効です。


| オプション設定 | 変更前の値 | 変更後の値 | 
| --- | --- | --- | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`  |  `SHA256`, `SHA384`, `SHA512`  |  変更なし  | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`  |  `SHA256`, `SHA384`, `SHA512`, `SHA1`, `MD5`  | SHA1,MD5,SHA256 | 

別の例では、`SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER` をデフォルト設定から `SHA1,MD5` に変更するとします。この場合、`SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT` を 必ず `SHA1` または `MD5` に設定してください。これらのアルゴリズムは `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT` のデフォルト値に含まれていません。

## ALLOW\$1WEAK\$1CRYPTO\$1 設定の変更
<a name="Oracle.Options.NNE.ModifySettings.encryption"></a>

`SQLNET.ALLOW_WEAK_CRYPTO*` オプションをデフォルト値から `FALSE` に設定する場合は、次の条件が満たされていることを確認してください。
+ `SQLNET.ENCRYPTION_TYPES_SERVER` と `SQLNET.ENCRYPTION_TYPES_CLIENT` には、一致するセキュアな暗号化方式が 1 つあります。方式が `DES`、`3DES`、または `RC4` (すべてのキーの長さ) ではない場合、セキュアと見なされます。
+ `SQLNET.CHECKSUM_TYPES_SERVER` と `SQLNET.CHECKSUM_TYPES_CLIENT` には、一致するセキュアなチェックサム方式が 1 つあります。方式が `MD5` ではない場合、セキュアと見なされます。
+ クライアントで 2021 年 7 月 PSU パッチが適用されます。クライアントにパッチが適用されていない場合、クライアントでの接続が失われ、`ORA-12269` エラーを受け取ります。

次の例は サンプル NNE 設定を示しています。`SQLNET.ENCRYPTION_TYPES_SERVER` と `SQLNET.ENCRYPTION_TYPES_CLIENT` をFALSE に設定して、非セキュア接続をブロックすると仮定します。チェックサムオプションの設定は、どちらにも `SHA256` が含まれているため、前提条件を満たしています。ただし、`SQLNET.ENCRYPTION_TYPES_CLIENT` と `SQLNET.ENCRYPTION_TYPES_SERVER` では、非セキュアな暗号化方式である `DES`、`3DES`、および `RC4` が使用されます。したがって、`SQLNET.ALLOW_WEAK_CRYPTO*` オプションを `FALSE` に設定する場合は、まず `SQLNET.ENCRYPTION_TYPES_SERVER` と `SQLNET.ENCRYPTION_TYPES_CLIENT` をセキュアな暗号化方式 (`AES256` など) に設定します。


| オプション設定 | 値 | 
| --- | --- | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT`  |  `SHA256`, `SHA384`, `SHA512`  | 
|  `SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER`  | SHA1,MD5,SHA256 | 
|  `SQLNET.ENCRYPTION_TYPES_CLIENT`  |  `RC4_256`, `3DES168`, `DES40`  | 
|  `SQLNET.ENCRYPTION_TYPES_SERVER`  |  `RC4_256`, `3DES168`, `DES40`  | 

# NATIVE\$1NETWORK\$1ENCRYPTION オプションの削除
<a name="Oracle.Options.NNE.Remove"></a>

DB インスタンスから NNE を削除できます。

`NATIVE_NETWORK_ENCRYPTION` オプションを DB インスタンスから削除するには、次のいずれかを実行します。
+ 複数の DB インスタンスからオプションを削除するには、それらが属しているオプショングループから `NATIVE_NETWORK_ENCRYPTION` オプションを削除します。この変更はそのオプショングループを使用するすべての DB インスタンスに影響します。`NATIVE_NETWORK_ENCRYPTION` オプションを削除した後に DB インスタンスを再起動する必要はありません。詳細については、「[オプショングループからオプションを削除する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption)」を参照してください。
+ 1 つの DB インスタンスからオプションを削除するには、DB インスタンスを変更し、`NATIVE_NETWORK_ENCRYPTION` オプションを含まない別のオプショングループを指定します。デフォルト (空) のオプショングループや別のカスタムオプショングループを指定できます。`NATIVE_NETWORK_ENCRYPTION` オプションを削除した後に DB インスタンスを再起動する必要はありません。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

# Oracle OLAP
<a name="Oracle.Options.OLAP"></a>

Amazon RDS は、`OLAP` オプションを使用することで Oracle OLAP をサポートします。このオプションは、Oracle DB インスタンスのオンライン分析処理 (OLAP) を提供します。Oracle OLAP を使用すると、OLAP スタンダードに従って次元オブジェクトやキューブを作成することにより、大量のデータを分析できます。詳細については、[Oracle のドキュメント](https://docs.oracle.com/en/database/oracle/oracle-database/19/olaug/index.html)を参照してください。

**重要**  
Oracle OLAP を使用する際、共通脆弱性評価システム (CVSS) のスコアが 9 以上、またはそのほかのセキュリティ脆弱性の報告によりセキュリティ脆弱性がある場合に、Amazon RDS は自動的に DB インスタンスを最新の Oracle PSU にアップデートします。

Amazon RDS は、Oracle Database 19c 以降の Enterprise Edition の Oracle OLAP をサポートしています。

## Oracle OLAP の前提条件
<a name="Oracle.Options.OLAP.PreReqs"></a>

Oracle OLAP を使用するための前提条件は次のとおりです。
+ Oracle から Oracle OLAP のライセンスを入手する必要があります。詳細については、Oracle のドキュメントの [Licensing Information](https://docs.oracle.com/en/database/oracle/oracle-database/19/dblic/Licensing-Information.html#GUID-B6113390-9586-46D7-9008-DCC9EDA45AB4) を参照してください。
+ DB インスタンスは、十分な性能のインスタンスクラスのものである必要があります。Oracle OLAP は、db.t3.small DB インスタンスクラスではサポートされていません。詳細については、「[RDS for Oracle DB インスタンスクラス](Oracle.Concepts.InstanceClasses.md)」を参照してください。
+ DB インスタンスで [**マイナーバージョン自動アップグレード**] が有効になっている必要があります。このオプションにより、DB インスタンスは、(それが利用可能になった時点で) DB エンジンのマイナーバージョンアップグレードを自動的に受信できるようになります。これは、Oracle の Java 仮想マシン (JVM) をインストールする、すべてのオプションに必須です。Amazon RDS では、このオプションを使用して、DB インスタンスに対し最新の Oracle パッチセット更新 (PSU)、またはリリース更新 (RU) を行います。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。
+ DB インスタンスに `OLAPSYS` というユーザーが存在していないことが必要です。存在している場合、OLAP オプションのインストールは失敗します。

## Oracle OLAP のベストプラクティス
<a name="Oracle.Options.OLAP.BestPractces"></a>

Oracle OLAP を使用するためのベストプラクティスは次のとおりです。
+ セキュリティを最大にするためには、`OLAP` オプションを Secure Sockets Layer (SSL) で使用します。詳細については、「[Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md)」を参照してください。
+ DB インスタンスへのアクセスを制限するように、DB インスタンスを設定します。詳細については、「[VPC の DB インスタンスにアクセスするシナリオ](USER_VPC.Scenarios.md)」および「[VPC 内の DB インスタンスの使用](USER_VPC.WorkingWithRDSInstanceinaVPC.md)」を参照してください。

## Oracle OLAP オプションの追加
<a name="Oracle.Options.OLAP.Add"></a>

DB インスタンスに `OLAP` オプションを追加する一般的な手順は以下のとおりです。

1. 新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更します。

1. オプショングループに [] オプションを追加します。

1. オプショングループを DB インスタンスに関連付けます。

DB インスタンスに Oracle Java Virtual Machine (JVM) がインストールされて*いない*場合、`OLAP` オプションが追加されている間は短時間停止します。Oracle Java Virtual Machine (JVM) がすでに DB インスタンスにインストールされている場合、停止は発生しません。オプションを追加した後に DB インスタンスを再起動する必要はありません。オプショングループがアクティブになると、すぐに Oracle OLAP が使用可能となります。

**OLAP オプションを DB インスタンスに追加するには**

1. 使用するオプショングループを決定します。新しいオプショングループを作成することも、既存のオプショングループを使用することもできます。既存のオプショングループを使用する場合は、次のステップは飛ばしてください。または、次の設定でカスタム DB オプショングループを作成します。
   + [**エンジン**] で DB インスタンスの Oracle エディションを選択します。
   + [**メジャーエンジンのバージョン**] で、DB インスタンスのバージョンを選択します。

   詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. オプショングループに [**OLAP**] オプションを追加します。オプションの追加方法の詳細については、「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。

1. 新規または既存の DB インスタンスに、DB オプショングループを適用します。
   + 新しい DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
   + 既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## Oracle OLAP の使用
<a name="Oracle.Options.OLAP.Using"></a>

Oracle OLAP オプションを有効にしたら、使用をスタートできます。Oracle OLAP でサポートされている機能のリストについては、[Oracle のドキュメント](https://docs.oracle.com/en/database/oracle/oracle-database/19/olaug/overview.html#GUID-E2056FE4-C623-4D29-B7D8-C4762F941966)を参照してください。

## Oracle OLAP オプションの削除
<a name="Oracle.Options.OLAP.Remove"></a>

`OLAP` オプションが提供するデータ型を使用するすべてのオブジェクトを削除したら、そのオプションを DB インスタンスから削除できます。DB インスタンスに Oracle Java Virtual Machine (JVM) がインストールされて*いない*場合、`OLAP` オプションの削除中にサービスが短時間停止します。Oracle Java Virtual Machine (JVM) がすでに DB インスタンスにインストールされている場合、停止は発生しません。`OLAP` オプションを削除した後に DB インスタンスを再起動する必要はありません。

**`OLAP` オプションを削除するには**

1. データをバックアップします。
**警告**  
オプションの一部として有効化されたデータ型がインスタンスで使用されている場合、`OLAP` オプションを削除すると、データが失われる可能性があります。詳細については、「[データのバックアップ、復元、エクスポート](CHAP_CommonTasks.BackupRestore.md)」を参照してください。

1. 既存のオブジェクトが、`OLAP` オプションのデータ型や機能を参照しているかどうかを確認します。

1. `OLAP` オプションのデータ型や機能を参照するすべてのオブジェクトを削除します。

1. 次のいずれかを行ってください。
   + `OLAP` オプションを所属するオプショングループから削除します。この変更はそのオプショングループを使用するすべての DB インスタンスに影響します。詳細については、「[オプショングループからオプションを削除する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption)」を参照してください。
   + DB インスタンスを修正して、`OLAP` オプションが含まれない別オプショングループを指定します。この変更は、単一の DB インスタンスに影響します。デフォルト (空) のオプショングループや別のカスタムオプショングループを指定できます。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

# Oracle Secure Sockets Layer
<a name="Appendix.Oracle.Options.SSL"></a>

RDS for Oracle DB インスタンスの SSL 暗号化を有効するには、その DB インスタンスに関連付けられているオプショングループに、Oracle SSL オプションを追加します。Oracle からの要求があるため、Amazon RDS では SSL 接続のために 2 番目のポートを使用しています。この方法では、クリアテキストと SSL 暗号化の両方の通信を、DB インスタンスと SQL\$1Plus 間で同時に実行できます。例えば、このポートで SSL 暗号化通信を使用して VPC 外部のリソースと通信する一方で、このポートでクリアテキスト通信を使用して VPC 内の他のリソースと通信できます。

**注記**  
同じ RDS for Oracle DB インスタンスで SSL またはネイティブネットワークの暗号化 (NNE) のいずれかを使用できますが、両方使用することはできません。SSL 暗号化を使用する場合は、他のすべての接続の暗号化を無効にする必要があります。詳細については、「[Oracle ネイティブネットワーク暗号化](Appendix.Oracle.Options.NetworkEncryption.md)」を参照してください。

SSL/TLS と NNE は、Oracle Advanced Security の一部ではなくなりました。RDS for Oracle では、以下のデータベースバージョンのすべてのライセンスされたエディションで、SSL 暗号化を使用できます。
+ Oracle Database 21c (21.0.0)
+ Oracle Database 19c (19.0.0)

**Topics**
+ [

## Oracle SSL オプションの TLS バージョン
](#Appendix.Oracle.Options.SSL.TLS)
+ [

## Oracle SSL オプションの暗号スイート
](#Appendix.Oracle.Options.SSL.CipherSuites)
+ [

## FIPS のサポート
](#Appendix.Oracle.Options.SSL.FIPS)
+ [

## 暗号スイートと証明書の互換性
](#Appendix.Oracle.Options.SSL.CertificateCompatibility)
+ [

# SSL オプションの追加
](Appendix.Oracle.Options.SSL.OptionGroup.md)
+ [

# RDS for Oracle DB インスタンスで SSL を使用するように SQL\$1Plus を設定する
](Appendix.Oracle.Options.SSL.ClientConfiguration.md)
+ [

# SSL を使用した RDS for Oracle DB インスタンスへの接続
](Appendix.Oracle.Options.SSL.Connecting.md)
+ [

# JDBC を介した SSL 接続のセットアップ
](Appendix.Oracle.Options.SSL.JDBC.md)
+ [

# SSL 接続で DN を一致させる
](Appendix.Oracle.Options.SSL.DNMatch.md)
+ [

# SSL 接続のトラブルシューティング
](Appendix.Oracle.Options.SSL.troubleshooting.md)

## Oracle SSL オプションの TLS バージョン
<a name="Appendix.Oracle.Options.SSL.TLS"></a>

Amazon RDS for Oracle は、Transport Layer Security (TLS) バージョン 1.0 および 1.2 をサポートしています。新しい Oracle SSL オプションを追加するときは、`SQLNET.SSL_VERSION` を有効な値に明示的に設定します。オプション設定には、次の値を使用できます。
+ `"1.0"` - クライアントは、TLS バージョン 1.0 のみを使用して DB インスタンスに接続できます。既存の Oracle SSL オプションで、`SQLNET.SSL_VERSION` は自動的に `"1.0"` に設定されます。必要に応じて設定を変更できます。
+ `"1.2"` - クライアントは、TLS 1.2 のみを使用して DB インスタンスに接続できます。
+ `"1.2 or 1.0"` - クライアントは、TLS 1.2 または 1.0 のいずれかを使用して DB インスタンスに接続できます。

## Oracle SSL オプションの暗号スイート
<a name="Appendix.Oracle.Options.SSL.CipherSuites"></a>

Amazon RDS for Oracle は、複数の SSL 暗号スイートをサポートしています。デフォルトでは、Oracle SSL オプションは `SSL_RSA_WITH_AES_256_CBC_SHA` 暗号スイートを使用するように設定されています。SSL 接続で使用する別の暗号スイートを指定するには、`SQLNET.CIPHER_SUITE` オプション設定を使用します。

`SQLNET.CIPHER_SUITE` には複数の値を指定することができます。この手法は、DB インスタンス間にデータベースリンクがあり、暗号スイートを更新する場合に便利です。

次の表は、Oracle Database 19c および 21c のすべてのエディションでの RDS for Oracle の SSL サポートをまとめたものです。


| 暗号スイート (SQLNET.CIPHER\$1SUITE) | TLS バージョン (SQLNET.SSL\$1VERSION) | FIPS のサポート | FedRAMP 準拠 | 
| --- | --- | --- | --- | 
| SSL\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA (デフォルト) | 1.0 および 1.2 | あり | いいえ | 
| SSL\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256 | 1.2 | あり | いいえ | 
| SSL\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 | 1.2 | あり | いいえ | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 | 1.2 | はい | あり | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 | 1.2 | はい | あり | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 | 1.2 | はい | あり | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 | 1.2 | はい | あり | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA | 1.2 | はい | あり | 
| TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA | 1.2 | はい | あり | 
| TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 | 1.2 | はい | あり | 
| TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 | 1.2 | はい | あり | 

## FIPS のサポート
<a name="Appendix.Oracle.Options.SSL.FIPS"></a>

RDS for Oracle では、連邦情報処理規格 (FIPS) 140-2 標準を使用できます。FIPS 140-2 は、暗号化モジュールのセキュリティ要件を規定する米国政府のスタンダード規格です。FIPS 標準は、Oracle SSL オプションの `FIPS.SSLFIPS_140` を `TRUE` に設定することでオンにします。SSL に FIPS 140-2 を設定した場合、暗号化ライブラリはクライアントと RDS for Oracle DB インスタンスの間のデータを暗号化します。

クライアントは、FIPS 準拠の暗号スイートを使用する必要があります。接続を確立する際、クライアントと RDS for Oracle DB インスタンスはメッセージの送受信に使用する暗号スイートをネゴシエートします。[Oracle SSL オプションの暗号スイート](#Appendix.Oracle.Options.SSL.CipherSuites) の表に、各 TLS バージョンについて FIPS 準拠の SSL 暗号スイートを示します。詳細については、Oracle データベースドキュメントの「[Oracle データベース FIPS 140-2 設定](https://docs.oracle.com/en/database/oracle/oracle-database/12.2/dbseg/oracle-database-fips-140-settings.html#GUID-DDBEB3F9-B216-44BB-8C18-43B5E468CBBB)」を参照してください。

## 暗号スイートと証明書の互換性
<a name="Appendix.Oracle.Options.SSL.CertificateCompatibility"></a>

RDS for Oracle は、RSA 証明書と楕円曲線デジタル署名アルゴリズム (ECDSA) 証明書の両方をサポートしています。DB インスタンスの SSL を設定するときは、`SQLNET.CIPHER_SUITE` オプション設定で指定した暗号スイートが DB インスタンスで使用される証明書タイプと互換性があることを確認する必要があります。

次の表は、証明書タイプと暗号スイート間の互換性を示しています。


| [証明書タイプ] | 互換性のある暗号スイート | 互換性のない暗号スイート | 
| --- | --- | --- | 
| RSA 証明書 (rds-ca-2019、rds-ca-rsa2048-g1、rds-ca-rsa4096-g1) |  SSL\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA SSL\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256 SSL\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA  |  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  | 
| ECDSA 証明書 (rds-ca-ecc384-g1) |  TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1ECDSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384  |  SSL\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA SSL\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA256 SSL\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1GCM\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1GCM\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA384 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA256 TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1256\$1CBC\$1SHA TLS\$1ECDHE\$1RSA\$1WITH\$1AES\$1128\$1CBC\$1SHA  | 

`SQLNET.CIPHER_SUITE` オプション設定で複数の暗号スイートを指定する場合は、DB インスタンスで使用される証明書タイプと互換性のある暗号スイートを少なくとも 1 つ含めてください。証明書タイプが異なる複数の DB インスタンスでオプショングループを使用している場合は、証明書タイプごとに少なくとも 1 つの暗号スイートを含めます。

DB インスタンスの証明書タイプと互換性のない暗号スイートのみを含む SSL オプションにオプショングループを関連付けようとすると、オペレーションは失敗し、非互換性を示すエラーメッセージが表示されます。

# SSL オプションの追加
<a name="Appendix.Oracle.Options.SSL.OptionGroup"></a>

SSL を使用するには、RDS for Oracle DB インスタンスが、`SSL` オプションを含むオプショングループに関連付けられている必要があります。

## コンソール
<a name="Appendix.Oracle.Options.SSL.OptionGroup.Console"></a>

**SSL オプションをオプショングループに追加するには**

1. 新しいオプショングループを作成するか、`SSL` オプションを追加する既存のオプショングループを識別します。

   オプショングループの作成の詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. オプショングループに [`SSL`] オプションを追加します。

   SSL 接続に FIPS で検証された暗号スイートのみを使用する場合は、`FIPS.SSLFIPS_140` オプションを `TRUE` に設定します。FIPS スタンダードの詳細については、「[FIPS のサポート](Appendix.Oracle.Options.SSL.md#Appendix.Oracle.Options.SSL.FIPS)」を参照してください。

   オプショングループへのオプションの追加の詳細については、「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。

1. 新しい RDS for Oracle DB インスタンスを作成し、オプショングループをそのインスタンスに関連付けるか、オプショングループを関連付けるように RDS for Oracle DB インスタンスを変更します。

   DB インスタンスの作成については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。

   DB インスタンスの変更については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## AWS CLI
<a name="Appendix.Oracle.Options.SSL.OptionGroup.CLI"></a>

**SSL オプションをオプショングループに追加するには**

1. 新しいオプショングループを作成するか、`SSL` オプションを追加する既存のオプショングループを識別します。

   オプショングループの作成の詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. オプショングループに [`SSL`] オプションを追加します。

   以下のオプション設定を指定します。
   + `Port` - SSL ポート番号
   + `VpcSecurityGroupMemberships` - オプションが有効な VPC セキュリティグループ
   + `SQLNET.SSL_VERSION` - クライアントから DB インスタンスへの接続に使用できる TLS バージョン

   例えば、以下の AWS CLI コマンドでは、`SSL` オプションを、`ora-option-group` という名前のオプショングループに追加します。  
**Example**  

   Linux、macOS、Unix の場合:

   ```
   aws rds add-option-to-option-group --option-group-name ora-option-group \
     --options 'OptionName=SSL,Port=2484,VpcSecurityGroupMemberships="sg-68184619",OptionSettings=[{Name=SQLNET.SSL_VERSION,Value=1.0}]'
   ```

   Windows の場合:

   ```
   aws rds add-option-to-option-group --option-group-name ora-option-group ^
     --options 'OptionName=SSL,Port=2484,VpcSecurityGroupMemberships="sg-68184619",OptionSettings=[{Name=SQLNET.SSL_VERSION,Value=1.0}]'
   ```

1. 新しい RDS for Oracle DB インスタンスを作成し、オプショングループをそのインスタンスに関連付けるか、オプショングループを関連付けるように RDS for Oracle DB インスタンスを変更します。

   DB インスタンスの作成については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。

   DB インスタンスの変更については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

# RDS for Oracle DB インスタンスで SSL を使用するように SQL\$1Plus を設定する
<a name="Appendix.Oracle.Options.SSL.ClientConfiguration"></a>

Oracle SSL オプションを使用する RDS for Oracle DB インスタンスに接続する前に、SQL\$1Plus を設定する必要があります。

**注記**  
適切なクライアントからの DB インスタンスへのアクセスを許可するには、セキュリティグループが適切に設定されていることを確認します。詳細については、「[セキュリティグループによるアクセス制御](Overview.RDSSecurityGroups.md)」を参照してください。さらに、この手順は、SQL\$1Plus および Oracle ホームを直接使用するその他のクライアント向けです。JDBC 接続については、「[JDBC を介した SSL 接続のセットアップ](Appendix.Oracle.Options.SSL.JDBC.md)」を参照してください。

**SSL を使用して RDS for Oracle DB インスタンスに接続するように SQL\$1Plus を設定するには**

1. `ORACLE_HOME` 環境可変を Oracle ホームディレクトリの場所に設定します。

   Oracle ホームディレクトリへのパスは、インストールによって異なります。次の例では、`ORACLE_HOME` 環境可変を設定します。

   ```
   prompt>export ORACLE_HOME=/home/user/app/user/product/19.0.0/dbhome_1
   ```

   Oracle 環境可変の設定については、Oracle ドキュメントの「[SQL\$1Plus 環境可変](http://docs.oracle.com/database/121/SQPUG/ch_two.htm#SQPUG331)」を参照してください。オペレーティングシステムについては、Oracle インストールガイドを参照してください。

1. `$ORACLE_HOME/lib` を `LD_LIBRARY_PATH` 環境可変に追加します。

   LD\$1LIBRARY\$1PATH 環境可変を設定する例を以下に示します。

   ```
   prompt>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib 
   ```

1. `$ORACLE_HOME/ssl_wallet` に Oracle Wallet のディレクトリを作成します。

   以下は、Oracle Wallet のディレクトリを作成する例です。

   ```
   prompt>mkdir $ORACLE_HOME/ssl_wallet
   ```

1. すべての AWS リージョン で動作する証明書バンドルをダウンロードし、そのファイルを ssl\$1wallet ディレクトリに置きます。詳細については、「[SSL/TLS を使用した DB インスタンスまたはクラスターへの接続の暗号化](UsingWithRDS.SSL.md)」を参照してください。

1. `$ORACLE_HOME/network/admin` ディレクトリで、`tnsnames.ora` ファイルを変更または作成して以下のエントリを含めます。

   ```
   net_service_name = 
     (DESCRIPTION = 
       (ADDRESS_LIST = 
         (ADDRESS = 
           (PROTOCOL = TCPS) 
           (HOST = endpoint) 
           (PORT = ssl_port_number)
         )
       )
       (CONNECT_DATA = 
         (SID = database_name)
       )
       (SECURITY = 
         (SSL_SERVER_CERT_DN = "C=US,ST=Washington,L=Seattle,O=Amazon.com,OU=RDS,CN=endpoint")
       )
     )
   ```

1. 同じディレクトリで、sqlnet.ora ファイルを変更または作成して以下のパラメータを含めます。
**注記**  
TLS でセキュリティ保護された接続を介してエンティティと通信するために、Oracle は認証用の必要な証明書を持つウォレットを必要とします。ステップ 7 に示すように、Oracle の ORAPKI ユーティリティを使用して Oracle ウォレットを作成して管理できます。詳細については、Oracle ドキュメントで「[ORAPKI を使用した Oracle ウォレットの設定](https://docs.oracle.com/cd/E92519_02/pt856pbr3/eng/pt/tsvt/task_SettingUpOracleWalletUsingORAPKI.html)」を参照してください。

   ```
   WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = $ORACLE_HOME/ssl_wallet))) 
   SSL_CLIENT_AUTHENTICATION = FALSE 
   SSL_VERSION = 1.0 
   SSL_CIPHER_SUITES = (SSL_RSA_WITH_AES_256_CBC_SHA) 
   SSL_SERVER_DN_MATCH = ON
   ```
**注記**  
`SSL_VERSION` はより高い値に設定できます (DB インスタンスでサポートされている場合)。

1. 以下のコマンドを実行して Oracle Wallet を作成します。

   ```
   prompt>orapki wallet create -wallet $ORACLE_HOME/ssl_wallet -auto_login_only
   ```

1. OS ユーティリティを使用して、.pem バンドルファイル内の各証明書を個別の .pem ファイルに抽出します。

1. 個別の `orapki` コマンドを使用して各証明書をウォレットに追加し、`certificate-pem-file` を.pem ファイルの絶対ファイル名に置き換えます。

   ```
   prompt>orapki wallet add -wallet $ORACLE_HOME/ssl_wallet -trusted_cert -cert
         certificate-pem-file -auto_login_only
   ```

   詳細については、「[SSL/TLS 証明書のローテーション](UsingWithRDS.SSL-certificate-rotation.md)」を参照してください。

# SSL を使用した RDS for Oracle DB インスタンスへの接続
<a name="Appendix.Oracle.Options.SSL.Connecting"></a>

前述のように SQL\$1Plus で SSL を使用するように設定すると、SSL オプションを使用して RDS for Oracle DB インスタンスに接続できるようになります。オプションとして、初期に、tnsnames.ora ファイルと sqlnet.ora ファイルが含まれているディレクトリを指す `TNS_ADMIN` 値をエクスポートできます。これにより、これらのファイルを SQL\$1Plus は確実に見つけることができます。次の例では、`TNS_ADMIN` の値をエクスポートしています。

```
export TNS_ADMIN = ${ORACLE_HOME}/network/admin          
```

DB インスタンスに接続します。例えば、SQL \$1Plus と、tnsnames.ora ファイルの *<net\$1service\$1name>* を使用して接続できます。

```
sqlplus mydbuser@net_service_name          
```

以下のコマンドを使用すると、tnsnames.ora ファイルを使用せずに SQL \$1Plus のみを使用して、DB インスタンスに接続することもできます。

```
sqlplus 'mydbuser@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCPS)(HOST = endpoint) (PORT = ssl_port_number))(CONNECT_DATA = (SID = database_name)))'          
```

SSL を使用せずに RDS for Oracle DB インスタンスに接続することもできます。例えば、以下のコマンドは SSL 暗号化を使用せずにクリアテキストポートを使用して DB インスタンスに接続します。

```
sqlplus 'mydbuser@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = endpoint) (PORT = port_number))(CONNECT_DATA = (SID = database_name)))'          
```

Transmission Control Protocol (TCP) ポートアクセスを閉じる場合は、IP アドレスの進入を許可しないセキュリティグループを作成して、インスタンスに追加します。これを追加することで、TCP ポートを使用した接続を閉じながら、SSL オプションのセキュリティグループで許可された範囲内の IP アドレスから指定された SSL ポートを使用して接続できます。

# JDBC を介した SSL 接続のセットアップ
<a name="Appendix.Oracle.Options.SSL.JDBC"></a>

JDBC を介した SSL 接続を使用するには、キーストアを作成して、Amazon RDS のルート CA 証明書を信頼し、以下で指定されるコードスニペットを使用する必要があります。

JKS 形式でキーストアを作成するには、次のコマンドを使用できます。キーストアの作成の詳細については、Oracle のドキュメントの「[キーストアの作成](https://docs.oracle.com/cd/E35822_01/server.740/es_admin/src/tadm_ssl_jetty_keystore.html)」を参照してください。リファレンス情報については、「*Java プラットフォーム、標準エディションツールリファレンス*」の「[keytool](https://docs.oracle.com/javase/8/docs/technotes/tools/windows/keytool.html)」を参照してください。

```
keytool -genkey -alias client -validity 365 -keyalg RSA -keystore clientkeystore         
```

Amazon RDS のルート CA 証明書を信頼するよう、以下のステップを実行します。

**Amazon RDS ルート CA 証明書を信頼するには**

1. すべての AWS リージョン で動作する証明書バンドルをダウンロードし、そのファイルを ssl\$1wallet ディレクトリに置きます。

   証明書のダウンロードについては、[SSL/TLS を使用した DB インスタンスまたはクラスターへの接続の暗号化](UsingWithRDS.SSL.md) を参照してください。

1. OS ユーティリティを使用して、.pem ファイル内の各証明書を個別のファイルに抽出します。

1. *certificate-pem-file* を証明書 .pem ファイルの名前 (.pem 拡張子なし) に置き換えて、個別の `openssl` コマンドを使用して各証明書を .der 形式に変換します。

   ```
   openssl x509 -outform der -in certificate-pem-file.pem -out certificate-pem-file.der                
   ```

1. 次のコマンドを使用して、各証明書をキーストアにインポートします。

   ```
   keytool -import -alias rds-root -keystore clientkeystore.jks -file certificate-pem-file.der                
   ```

   詳細については、「[SSL/TLS 証明書のローテーション](UsingWithRDS.SSL-certificate-rotation.md)」を参照してください。

1. キーストアが正常に作成されたことを確認します。

   ```
   keytool -list -v -keystore clientkeystore.jks                                            
   ```

   キーストアのパスワードを求められたら、これを入力します。

次のコード例は、JDBC を使用する SSL 接続のセットアップ方法を示します。

```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
 
public class OracleSslConnectionTest {
    private static final String DB_SERVER_NAME = "dns-name-provided-by-amazon-rds";
    private static final Integer SSL_PORT = "ssl-option-port-configured-in-option-group";
    private static final String DB_SID = "oracle-sid";
    private static final String DB_USER = "user-name";
    private static final String DB_PASSWORD = "password";
    // This key store has only the prod root ca.
    private static final String KEY_STORE_FILE_PATH = "file-path-to-keystore";
    private static final String KEY_STORE_PASS = "keystore-password";
 
    public static void main(String[] args) throws SQLException {
        final Properties properties = new Properties();
        final String connectionString = String.format(
                "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=%s)(PORT=%d))(CONNECT_DATA=(SID=%s)))",
                DB_SERVER_NAME, SSL_PORT, DB_SID);
        properties.put("user", DB_USER);
        properties.put("password", DB_PASSWORD);
        properties.put("oracle.jdbc.J2EE13Compliant", "true");
        properties.put("javax.net.ssl.trustStore", KEY_STORE_FILE_PATH);
        properties.put("javax.net.ssl.trustStoreType", "JKS");
        properties.put("javax.net.ssl.trustStorePassword", KEY_STORE_PASS);
        final Connection connection = DriverManager.getConnection(connectionString, properties);
        // If no exception, that means handshake has passed, and an SSL connection can be opened
    }
}
```

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

# SSL 接続で DN を一致させる
<a name="Appendix.Oracle.Options.SSL.DNMatch"></a>

データベースサーバーの識別子名 (DN) をそのサービス名と一致させるには、Oracle パラメータ `SSL_SERVER_DN_MATCH` を使用できます。マッチングの検証を実施する場合は、SSL により、証明書がサーバーから取得されたものであることが確認されます。マッチングの検証を実施しない場合、SSL によって確認が行われますが、一致しているかどうかにかかわらず接続が許可されます。マッチングを実施しない場合、サーバーで識別をモデリング偽造することを許可できます。

DN マッチングを実施するには、DN マッチングのプロパティを追加し、以下に示されている接続文字列を使用します。

DN マッチングを実施するには、このプロパティをクライアント接続に追加します。

```
properties.put("oracle.net.ssl_server_dn_match", "TRUE");            
```

SSL の使用時は、以下の接続文字列を使用して DN マッチングを実施します。

```
final String connectionString = String.format(
    "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=%s)(PORT=%d))" +
    "(CONNECT_DATA=(SID=%s))" +
    "(SECURITY = (SSL_SERVER_CERT_DN = 
\"C=US,ST=Washington,L=Seattle,O=Amazon.com,OU=RDS,CN=%s\")))",
    DB_SERVER_NAME, SSL_PORT, DB_SID, DB_SERVER_NAME);
```

# SSL 接続のトラブルシューティング
<a name="Appendix.Oracle.Options.SSL.troubleshooting"></a>

データベースにクエリを実行すると、`ORA-28860` エラーが表示されることがあります。

```
ORA-28860: Fatal SSL error
28860. 00000 - "Fatal SSL error"
*Cause: An error occurred during the SSL connection to the peer. It is likely that this side sent data which the peer rejected.
*Action: Enable tracing to determine the exact cause of this error.
```

このエラーは、サーバーがサポートしていないバージョンの TLS を使用してクライアントが接続しようとしたときに発生します。このエラーを回避するには、sqlnet.ora を編集して、`SSL_VERSION` を正しい TLS バージョンに設定します。詳細については、My Oracle Support の「[Oracle Support ドキュメント 2748438.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=2748438.1)」を参照してください。

# Oracle Spatial
<a name="Oracle.Options.Spatial"></a>

Amazon RDS は、`SPATIAL` オプションを使用することで Oracle Spatial をサポートします。Oracle Spatial は、Oracle データベースのストレージ、取得、更新、および spatial データコレクションのクエリを可能にする SQL スキーマと機能を提供します。詳細については、Oracle ドキュメントの [Spatial Concepts](http://docs.oracle.com/database/121/SPATL/spatial-concepts.htm#SPATL010) を参照してください。Amazon RDS は、サポートされているすべてのリリースのすべてのエディションで Oracle Spatial をサポートしています。

## Spatial パッチバンドル (SPB) の仕組み
<a name="Oracle.Options.Spatial.SPBs"></a>

RDS for Oracle は、四半期ごとに、サポートされているすべてのメジャーエンジンに対して新しいマイナーエンジンバージョンをリリースします。リリースアップデート (RU) エンジンバージョンには、指定された四半期の RU パッチを含めることで Oracle からのバグ修正が組み込まれています。Spatial パッチバンドル (SPB) エンジンバージョンには、RU パッチと Oracle Spatial に固有のパッチが含まれています。例えば、19.0.0.0.ru-2025-01.spb-1.r1 は、エンジンバージョン 19.0.0.0.ru-2025-01.rur-2025-01.r1 の RU パッチと Spatial パッチを含むマイナーエンジンバージョンです。SPB は Oracle Database 19c でのみサポートされています。

SPB は名前が異なりますが、RU と同じように機能します。RU は、19.0.0.0.ru-2025-01.rur-2025-01.r1 という命名形式を使用します。SPB 名には、19.0.0.0.ru-2025-01.spb-1.r1 のように「spb」というテキストが含まれます。通常、SPB は対応する四半期 RU の 2～3 週間後にリリースされます。例えば、19.0.0.0.ru-2025-01.spb-1.r1 は 19.0.0.0.ru-2025-01.rur-2025-01.r1 以降にリリースされています。

RDS for Oracle には、RU と SPB の自動マイナーバージョンアップグレード用の個別のパスがあります。DB インスタンスが RU を使用している場合、RDS は自動的にインスタンスを RU にアップグレードします。DB インスタンスが SPB を使用している場合、RDS はインスタンスを SPB にアップグレードします。

RU および SPB の詳細については、「[Oracle のマイナーバージョンのアップグレード](USER_UpgradeDBInstance.Oracle.Minor.md)」を参照してください。Oracle Database 19c でサポートされている RU と SPB のリストについては、「*Amazon RDS for Oracle リリースノート*」の「[Amazon RDS for Oracle Database 19c (19.0.0.0)](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html)」を参照してください。

## Oracle Spatial の前提条件
<a name="Oracle.Options.Spatial.PreReqs"></a>

Oracle Spatial を使用するための前提条件は次のとおりです。
+ DB インスタンスが十分なインスタンスクラスであることを確認します。Oracle Spatial は、db.t3.small DB インスタンスクラスではサポートされていません。詳細については、「[RDS for Oracle DB インスタンスクラス](Oracle.Concepts.InstanceClasses.md)」を参照してください。
+ DB インスタンスで [**自動マイナーバージョンアップグレード**] が有効になっていることを確認します。このオプションにより、DB インスタンスは、(それが利用可能になった時点で) DB エンジンのマイナーバージョンアップグレードを自動的に受信できるようになります。これは、Oracle の Java 仮想マシン (JVM) をインストールする、すべてのオプションに必須です。Amazon RDS では、このオプションを使用して、DB インスタンスに対し最新の Oracle パッチセット更新 (PSU)、またはリリース更新 (RU) を行います。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## Oracle Spatial のベストプラクティス
<a name="Oracle.Options.Spatial.BestPractces"></a>

Oracle Spatial を使用するためのベストプラクティスは次のとおりです。
+ セキュリティを最大にするためには、`SPATIAL` オプションを Secure Sockets Layer (SSL) で使用します。詳細については、「[Oracle Secure Sockets Layer](Appendix.Oracle.Options.SSL.md)」を参照してください。
+ DB インスタンスへのアクセスを制限するように、DB インスタンスを設定します。詳細については、「[VPC の DB インスタンスにアクセスするシナリオ](USER_VPC.Scenarios.md)」および「[VPC 内の DB インスタンスの使用](USER_VPC.WorkingWithRDSInstanceinaVPC.md)」を参照してください。

## Oracle Spatial オプションの追加
<a name="Oracle.Options.Spatial.Add"></a>

DB インスタンスに `SPATIAL` オプションを追加する一般的な手順は以下のとおりです。

1. 新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更します。

1. オプショングループに [] オプションを追加します。

1. オプショングループを DB インスタンスに関連付けます。

DB インスタンスに Oracle Java Virtual Machine (JVM) がインストールされて*いない*場合、`SPATIAL` オプションが追加されている間は短時間停止します。Oracle Java Virtual Machine (JVM) がすでに DB インスタンスにインストールされている場合、停止は発生しません。オプションを追加した後に DB インスタンスを再起動する必要はありません。オプショングループがアクティブになると、すぐに Oracle Spatial が使用可能となります。

**注記**  
この停止中、パスワード検証機能は一時的に無効になります。また、停止中にパスワード検証機能に関連するイベントを確認することもできます。Oracle DB インスタンスが使用可能になる前に、パスワード検証機能が再び有効になります。

**`SPATIAL` オプションを DB インスタンスに追加するには**

1. 使用するオプショングループを決定します。新しいオプショングループを作成することも、既存のオプショングループを使用することもできます。既存のオプショングループを使用する場合は、次のステップは飛ばしてください。または、次の設定でカスタム DB オプショングループを作成します。

   1. [**エンジン**] で DB インスタンスの Oracle エディションを選択します。

   1. [**メジャーエンジンのバージョン**] で、DB インスタンスのバージョンを選択します。

   詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. オプショングループに [**SPATIAL**] オプションを追加します。オプションの追加方法の詳細については、「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。

1. 新規または既存の DB インスタンスに、DB オプショングループを適用します。
   + 新規 DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
   + 既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## Oracle Spatial オプションの削除
<a name="Oracle.Options.Spatial.Remove"></a>

`SPATIAL` オプションで提供されるデータ型を使用するすべてのオブジェクトを削除したら、DB インスタンスからそのオプションを削除できます。DB インスタンスに Oracle Java Virtual Machine (JVM) がインストールされて*いない*場合、`SPATIAL` オプションの削除中にサービスが短時間停止します。Oracle Java Virtual Machine (JVM) がすでに DB インスタンスにインストールされている場合、停止は発生しません。`SPATIAL` オプションを削除した後に DB インスタンスを再起動する必要はありません。

**`SPATIAL` オプションを削除するには**

1. データをバックアップします。
**警告**  
オプションの一部として有効化されたデータ型がインスタンスで使用されている場合、`SPATIAL` オプションを削除すると、データが失われる可能性があります。詳細については、「[データのバックアップ、復元、エクスポート](CHAP_CommonTasks.BackupRestore.md)」を参照してください。

1. 既存のオブジェクトが、`SPATIAL` オプションのデータ型や機能を参照しているかどうかを確認します。

   `SPATIAL` オプションが存在する場合、`SPATIAL` オプションを持たない新しいオプショングループを適用すると、インスタンスが停止することがあります。次のクエリを使用して、オブジェクトを識別できます。

   ```
   SELECT OWNER, SEGMENT_NAME, TABLESPACE_NAME, BYTES/1024/1024 mbytes
   FROM   DBA_SEGMENTS
   WHERE  SEGMENT_TYPE LIKE '%TABLE%'
   AND    (OWNER, SEGMENT_NAME) IN
          (SELECT DISTINCT OWNER, TABLE_NAME 
           FROM   DBA_TAB_COLUMNS
           WHERE  DATA_TYPE='SDO_GEOMETRY'
           AND    OWNER <> 'MDSYS')
   ORDER BY 1,2,3,4;
   
   SELECT OWNER, TABLE_NAME, COLUMN_NAME
   FROM   DBA_TAB_COLUMNS 
   WHERE  DATA_TYPE = 'SDO_GEOMETRY' 
   AND    OWNER <> 'MDSYS' 
   ORDER BY 1,2,3;
   ```

1. `SPATIAL` オプションのデータ型や機能を参照するすべてのオブジェクトを削除します。

1. 次のいずれかを行ってください。
   + `SPATIAL` オプションを所属するオプショングループから削除します。この変更はそのオプショングループを使用するすべての DB インスタンスに影響します。詳細については、「[オプショングループからオプションを削除する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption)」を参照してください。
   + DB インスタンスを修正して、`SPATIAL` オプションが含まれない別オプショングループを指定します。この変更は、単一の DB インスタンスに影響します。デフォルト (空) のオプショングループや別のカスタムオプショングループを指定できます。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

# Oracle SQLT
<a name="Oracle.Options.SQLT"></a>

Amazon RDS は、SQLT オプションの使用を通じて SQLTPLAIN (SQLT) をサポートします。SQLT は Oracle Database 19c 以降の任意のエディションで使用できます。

Oracle `EXPLAIN PLAN` ステートメントでは、SQL ステートメントの実行計画を決定できます。Oracle オプティマイザが、ネステッドループされたループ結合などの特定の実行計画を選択しているかどうかを検証できます。また、ハッシュ結合を介してネステッドループ結合を選択した理由など、オプティマイザの決定を理解するのに役立ちます。そのため、`EXPLAIN PLAN` はステートメントのパフォーマンスの理解に役立ちます。

SQLT は、レポートを作成する Oracle ユーティリティです。このレポートには、オブジェクト統計、オブジェクトメタデータ、オプティマイザ関連の初期化パラメータ、およびデータベース管理者が最適なパフォーマンスを得るために SQL ステートメントを調節するために使用できるその他の情報が含まれています。SQLT は、レポート内のすべてのセクションへのハイパーリンクを含む HTML レポートを生成します。

SQLT は、自動ワークロードリポジトリまたは Statspack レポートとは異なり、個々の SQL ステートメントに対して機能します。SQLT は、パフォーマンスデータを収集、保存、表示する SQL、PL/SQL、および SQL\$1Plus ファイルのコレクションです。

各 SQLT バージョンでは次の Oracle バージョンがサポートされています。


****  

| SQLT バージョン | Oracle Database 21c | Oracle Database 19c | 
| --- | --- | --- | 
|  2018-07-25.v1  |  サポート  |  サポート  | 
|  2018-03-31.v1  |  サポートされません  |  サポートされません  | 
|  2016-04-29.v1  |  サポートされません  |  サポートされません  | 

SQLT および使用のためのアクセス手順をダウンロードします。
+ My Oracle Support アカウントにログインして、以下のドキュメントを開きます。
+ SQLT のダウンロード: [ドキュメント 215187.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=215187.1)
+ SQLT のご利用方法: [ドキュメント 1614107.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=1614107.1)
+ SQLT についてのよくある質問: [ドキュメント 1454160.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=1454160.1)
+ 出力された SQLT 読み取りについて: [ドキュメント 1456176.1](https://support.oracle.com/epmos/main/downloadattachmentprocessor?parent=DOCUMENT&sourceId=1456176.1&attachid=1456176.1:58&clickstream=yes)
+ メインレポートの解釈について: [ドキュメント 1922234.1](https://support.oracle.com/epmos/faces/DocumentDisplay?parent=DOCUMENT&sourceId=215187.1&id=1922234.1)

Amazon RDS は、以下の SQLT メソッドをサポートしていません。
+ `XPLORE` 
+ `XHUME` 

## &SQLT の前提条件
<a name="Oracle.Options.SQLT.PreReqs"></a>

SQLT を使用するための前提条件は次のとおりです。
+ 存在する場合は、SQLT で必要とされるロールとユーザーを削除する必要があります。

  SQLT オプションは、DB インスタンスの次のユーザーおよびロールを作成します。
  + `SQLTXPLAIN` ユーザー
  + `SQLTXADMIN` ユーザー
  + `SQLT_USER_ROLE` ロール

  DB インスタンスにこれらのユーザーまたはロールがある場合は、SQL クライアントを使用して DB インスタンスにログインし、次のステートメントを使用して削除します。

  ```
  DROP USER SQLTXPLAIN CASCADE;
  DROP USER SQLTXADMIN CASCADE;   
  DROP ROLE SQLT_USER_ROLE CASCADE;
  ```
+ 存在する場合は、SQLT で必要とされるテーブルスペースを削除する必要があります。

  SQLT オプションは、DB インスタンスの次のテーブルスペースを作成します。
  + `RDS_SQLT_TS`
  + `RDS_TEMP_SQLT_TS`

  DB インスタンスにこれらのテーブルスペースがある場合は、SQL クライアントを使用して DB インスタンスにログインし、削除します。

## SQLT オプション設定
<a name="Oracle.Options.SQLT.Options"></a>

 SQLT は、Oracle Tuning Pack および Oracle Diagnostics Pack によって提供されるライセンス機能を使用して動作します。Oracle Tuning Pack には SQL チューニングアドバイザが、Oracle Diagnostics Pack には自動ワークロードリポジトリが含まれています。SQLT 設定は、SQLT からこれらの機能へのアクセスを有効または無効にします。

Amazon RDS は、SQLT オプションの次の設定をサポートします。


****  

| オプション設定 | 有効な値 | デフォルト値 | 説明 | 
| --- | --- | --- | --- | 
|  `LICENSE_PACK`  |  `T`, `D`, `N`  |  `N`   |  SQLT を使用してアクセスする Oracle Management Pack。以下のいずれかの値にエラーがあります。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/Oracle.Options.SQLT.html)  Amazon RDS はこれらの Oracle Management Pack のライセンスを提供しません。DB インスタンスに含まれていないパックを使用することを指定した場合は、DB インスタンスで SQLT を使用できます。ただし、SQLT はパックにアクセスできず、SQLT レポートにはパックのデータは含まれません。例えば、`T` を指定したが、DB インスタンスに Oracle Tuning Pack が含まれていない場合、SQLT は DB インスタンス上で動作しますが、作成するレポートに Oracle Tuning Pack に関係するデータは含まれません。   | 
|  `VERSION`  |  `2016-04-29.v1` `2018-03-31.v1` `2018-07-25.v1`  |  `2016-04-29.v1`   |  インストールする SQLT のバージョン。  Oracle Database 19c と 21c では、サポートされているバージョンは `2018-07-25.v1` のみです。このバージョンは、これらのリリースのデフォルトです。   | 

## SQLT オプションの追加
<a name="Oracle.Options.SQLT.Add"></a>

DB インスタンスに SQLT オプションを追加する一般的なプロセスを次に示します。

1. 新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更します。

1. オプショングループに SQLT オプションを追加します。

1. オプショングループを DB インスタンスに関連付けます。

SQLT オプションの追加後、オプショングループがアクティブになるとすぐに、SQLT がアクティブになります。

**SQLT オプションを DB インスタンスに追加するには**

1. 使用するオプショングループを決定します。新しいオプショングループを作成することも、既存のオプショングループを使用することもできます。既存のオプショングループを使用する場合は、次のステップは飛ばしてください。または、次の設定でカスタム DB オプショングループを作成します。

   1. [**Engine**] で、使用する Oracle のエディションを選択します。SQLT オプションは、すべてのエディションでサポートされます。

   1. [**メジャーエンジンのバージョン**] で、DB インスタンスのバージョンを選択します。

   詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. オプショングループに [**SQLT**] オプションを追加します。オプションの追加方法の詳細については、「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。

1. 新規または既存の DB インスタンスに、DB オプショングループを適用します。
   + 新規 DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。

      
   + 既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

1. (オプション) SQLT オプションを伴う各 DB インスタンスの SQLT のインストールを検証します。

   1. マスターユーザーとして DB インスタンスに接続している SQL クライアントを使用します。

      Oracle DB インスタンスで SQL クライアントに接続する詳細については、「[Oracle DB インスタンスへの接続](USER_ConnectToOracleInstance.md)」を参照してください。

   1. 次のクエリを実行します。

      ```
      SELECT sqltxplain.sqlt$a.get_param('tool_version') sqlt_version FROM DUAL;                        
      ```

      クエリは Amazon RDS の SQLT オプションの最新バージョンを返します。`12.1.160429` は Amazon RDS で使用可能である SQLT のバージョンの例です。

1. SQLT オプションで作成されたユーザーのパスワードを変更します。

   1. マスターユーザーとして DB インスタンスに接続している SQL クライアントを使用します。

   1. `SQLTXADMIN` ユーザーのパスワードを変更するには、以下の SQL ステートメントを実行します。

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

   1. `SQLTXPLAIN` ユーザーのパスワードを変更するには、以下の SQL ステートメントを実行します。

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

**注記**  
SQLT をアップグレードするには、SQLT の旧バージョンをアンインストールしてから、新しいバージョンをインストールする必要があります。そのため、すべての SQLT メタデータが SQLT をアップグレードすると失われる可能性があります。データベースのメジャーバージョンのアップグレードでも、SQLT がアンインストールされ、再インストールされます。メジャーバージョンのアップグレードの例は、Oracle Database 18c から Oracle Database 19c へのアップグレードです。

## SQLT の使用
<a name="Oracle.Options.SQLT.Using"></a>

SQLT は Oracle SQL\$1Plus ユーティリティで動作します。

**使用する SQLT**

1.  My Oracle Support サイトの [ドキュメント 215187.1](https://support.oracle.com/epmos/faces/DocumentDisplay?id=215187.1) から SQLT .zip ファイルをダウンロードします。
**注記**  
My Oracle Support サイトから SQLT 12.1.160429 をダウンロードすることはできません。Oracle はこの古いバージョンを廃止しました。

1.  SQLT .zip ファイルを解凍します。

1.  コマンドプロンプトから、ファイルシステムの `sqlt/run` をディレクトリに変更します。

1.  コマンドプロンプトで、SQL\$1Plus を開き、マスターユーザーとして DB インスタンスに接続します。

   SQL\$1Plus を使用する DB インスタンスへの接続の詳細については、「[Oracle DB インスタンスへの接続](USER_ConnectToOracleInstance.md)」を参照してください。

1.  SQL ステートメントの SQL ID を取得します。

   ```
   SELECT SQL_ID FROM V$SQL WHERE SQL_TEXT='sql_statement';                               
   ```

   以下のような出力が生成されます。

   ```
   SQL_ID
   -------------
   chvsmttqjzjkn
   ```

1. SQLT を含む SQL ステートメントの分析: 

   ```
   START sqltxtract.sql sql_id sqltxplain_user_password                    
   ```

   例えば、SQL ID`chvsmttqjzjkn` に対して、以下を入力してください。

   ```
   START sqltxtract.sql chvsmttqjzjkn sqltxplain_user_password                    
   ```

   SQLT は、HTML レポートと関連リソースを SQLT コマンドが実行されたディレクトリに .zip ファイルとして生成します。

1.  (オプション) アプリケーションユーザーが SQLT を使用して SQL ステートメントを診断できるようにするには、次のステートメントを使用して `SQLT_USER_ROLE` を各アプリケーションユーザーに付与します。

   ```
   GRANT SQLT_USER_ROLE TO application_user_name;                
   ```
**注記**  
Oracle は、`SYS` ユーザー、または `DBA` ロールを持つユーザーで SQLT を実行することを推奨していません。`SQLT_USER_ROLE` をアプリケーションユーザーに付与することにより、アプリケーションユーザーのアカウントを使用して SQLT 診断を実行することをお勧めします。

## SQLT オプションのアップグレード
<a name="Oracle.Options.SQLT.Upgrading"></a>

Amazon RDS for Oracle では、SQLT オプションをバージョンを既存のバージョンから上位のバージョンにアップグレードできます。SQLT オプションをアップグレードするには、SQLT の新しいバージョンの [SQLT の使用](#Oracle.Options.SQLT.Using) のステップ 1-3 を完了します。また、そのセクションのステップ 7 で以前のバージョンの SQLT の特権を付与した場合は、新しい SQLT バージョンの特権を再度付与してください。

SQLT オプションをアップグレードすると、古い SQLT バージョンのメタデータが失われます。古い SQLT バージョンのスキーマおよび関連オブジェクトは削除され、新しいバージョンの SQLT がインストールされます。最新の SQLT バージョン における変更の詳細については、My Oracle Support サイトの「[ドキュメント 1614201.1](https://support.oracle.com/epmos/faces/DocumentDisplay?parent=DOCUMENT&sourceId=215187.1&id=1614201.1)」を参照してください。

**注記**  
バージョンのダウングレードはサポートされていません。

## SQLT 設定の変更
<a name="Oracle.Options.SQLT.ModifySettings"></a>

SQLT を有効にした後、オプションで `LICENSE_PACK` および `VERSION` 設定を変更できます。

オプション設定の変更方法の詳細については、「[オプションの設定を変更する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.ModifyOption)」を参照してください。各設定の詳細については、「[SQLT オプション設定](#Oracle.Options.SQLT.Options)」を参照してください。

## SQLT オプションの削除
<a name="Oracle.Options.SQLT.Remove"></a>

DB インスタンスから SQLT を削除できます。

DB インスタンスから SQLT を削除するには、次のいずれかを実行します。
+ 複数の DB インスタンスから SQLT を削除するには、DB インスタンスが属しているオプショングループから SQLT オプションを削除します。この変更はそのオプショングループを使用するすべての DB インスタンスに影響します。詳細については、「[オプショングループからオプションを削除する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption)」を参照してください。

   
+ 単一の DB インスタンスから SQLT を削除するには、DB インスタンスを変更し、NNE オプションが含まれていない別のオプショングループを指定します。デフォルト (空) のオプショングループや別のカスタムオプショングループを指定できます。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

# Oracle Statspack
<a name="Appendix.Oracle.Options.Statspack"></a>

Oracle Statspack オプションは、Oracle Statspack パフォーマンス統計機能をインストールして有効にします。Oracle Statspack は、パフォーマンスデータを収集、保存、表示する SQL、PL/SQL、および SQL\$1Plus スクリプトのコレクションです。Oracle Statspack 使用の詳細には、Oracle ドキュメントの「[Oracle Statspack](http://docs.oracle.com/cd/E13160_01/wli/docs10gr3/dbtuning/statsApdx.html)」を参照してください。

**注記**  
Oracle Statspack は、Oracle によるサポートが停止されたため、より高度な自動ワークロードリポジトリ (AWR) に置き換えられました。AWR は、Diagnostics Pack を購入した Oracle Enterprise Edition のお客様だけが使用できます。Oracle Statspack は、Amazon RDS 上の任意の Oracle DB エンジンで使用できます。Amazon RDS リードレプリカでは Oracle Statspack を実行できません。

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

Statspack スクリプトを実行するには、Statspack オプションを追加する必要があります。

**Oracle Statspack をセットアップするには**

1. SQL クライアントで、管理アカウントを使用して Oracle DB にログインします。

1. Statspack がインストールされているかどうかに応じて、次のいずれかの操作を行います。
   + Statspack がインストールされていて、`PERFSTAT` アカウントが Statspack に関連付けられている場合は、ステップ 4 に進みます。
   + Statspack がインストールされておらず、`PERFSTAT` アカウントが存在する場合は、次のようにアカウントを削除します。

     ```
     DROP USER PERFSTAT CASCADE;
     ```

     それ以外の場合は、Statspack オプションを追加しようとすると、エラーと `RDS-Event-0058` が生成されます。

1. オプショングループに Statspack オプションを追加します。「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。

   Amazon RDS は、DB インスタンスに Statspack スクリプトを自動的にインストールしてから、 `PERFSTAT` アカウントを設定します。

1. 次の SQL 文を使用してパスワードをリセットし、*pwd* を新しいパスワードに置き換えます。

   ```
   ALTER USER PERFSTAT IDENTIFIED BY pwd ACCOUNT UNLOCK;
   ```

   `PERFSTAT` ユーザーアカウントを使用してログインし、Statspack スクリプトを実行できます。

1. 次のステートメントを使用して、`PERFSTAT` アカウントに `CREATE JOB` 権限を付与します。

   ```
   GRANT CREATE JOB TO PERFSTAT;
   ```

1. `PERFSTAT.STATS$IDLE_EVENT` テーブル内のアイドル待機イベントが設定されていることを確認します。

   Oracle バグ 28523746 のため、`PERFSTAT.STATS$IDLE_EVENT` のアイドル待機イベントが設定されていないことがあります。すべてのアイドルイベントが利用可能であることを確認するには、次のステートメントを実行します。

   ```
   INSERT INTO PERFSTAT.STATS$IDLE_EVENT (EVENT)
   SELECT NAME FROM V$EVENT_NAME WHERE WAIT_CLASS='Idle'
   MINUS
   SELECT EVENT FROM PERFSTAT.STATS$IDLE_EVENT;
   COMMIT;
   ```

## Statspack レポートの生成
<a name="Appendix.Oracle.Options.Statspack.generating-reports"></a>

Statspack レポートでは、2 つのスナップショットを比較します。

**Statspack レポートを生成するには**

1. SQL クライアントで、`PERFSTAT` アカウントを使用して Oracle DB にログインします。

1. 次のいずれかの方法を使用して、スナップショットを作成します。
   + Statspack スナップショットを手動で作成します。
   + 特定の時間間隔の後に Statspack スナップショットを取得するジョブを作成します。例えば、次のジョブは Statspack スナップショットを 1 時間おきに作成します。

     ```
     VARIABLE jn NUMBER;
     exec dbms_job.submit(:jn, 'statspack.snap;',SYSDATE,'TRUNC(SYSDATE+1/24,''HH24'')');
     COMMIT;
     ```

1. 次のクエリを使用してスナップショットを表示します。

   ```
   SELECT SNAP_ID, SNAP_TIME FROM STATS$SNAPSHOT ORDER BY 1;
   ```

1. Amazon RDS プロシージャ `rdsadmin.rds_run_spreport` を実行し、*begin\$1snap* と *end\$1snap* をスナップショット ID に置き換えます。

   ```
   exec rdsadmin.rds_run_spreport(begin_snap,end_snap);
   ```

   例えば、次のコマンドでは、Statspack スナップショット 1 と 2 の間の間隔に基づいてレポートが作成されます。

   ```
   exec rdsadmin.rds_run_spreport(1,2);
   ```

   Statspack レポートのファイル名には、2 つのスナップショットの番号が含まれます。例えば、Statspack スナップショット 1 および 2 を使用して作成されたレポートファイルの名前は `ORCL_spreport_1_2.lst` になります。

1. 出力にエラーがないかモニタリングします。

   Oracle Statspack は、レポートを実行する前にチェックを実行します。したがって、コマンド出力にエラーメッセージが表示される可能性もあります。例えば、スタートの Statspack スナップショット値が終了値よりも大きい、無効な範囲に基づいてレポートを生成しようとするとします。この場合、出力にはエラーメッセージが表示されますが、DB エンジンはエラーファイルを生成しません。

   ```
   exec rdsadmin.rds_run_spreport(2,1);
   *
   ERROR at line 1:
   ORA-20000: Invalid snapshot IDs. Find valid ones in perfstat.stats$snapshot.
   ```

   無効な番号の Statspack スナップショットを使用すると、出力にエラーが表示されます。例えば、スナップショット 1 と 50 のレポートを生成しようとして、スナップショット 50 が存在しない場合、出力にはエラーが表示されます。

   ```
   exec rdsadmin.rds_run_spreport(1,50);
   *
   ERROR at line 1:
   ORA-20000: Could not find both snapshot IDs
   ```

1. (オプション) 

   レポートを取得するには、[Oracle トレースファイルを使用する](USER_LogAccess.Concepts.Oracle.md#USER_LogAccess.Concepts.Oracle.WorkingWithTracefiles) で説明されているように、トレースファイルプロシージャを呼び出します。

   または、RDS コンソールから Statspack レポートをダウンロードします。DB インスタンスの詳細の **[ログ]** セクションに移動し、**[ダウンロード]** を選択します。次の例は、`trace/ORCL_spreport_1_2.lst` を示します。  
![\[RDS コンソールに Oracle ログファイルのリストを表示します。次のトレースファイルは丸で囲まれています。trace/ORCL_spreport_1_2.lst。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/statspack1.png)

   レポートの生成中にエラーが発生した場合、DB エンジンはレポートと同じ命名規則を使用しますが、拡張子は `.err` です。例えば、Statspack スナップショット 1 および 7 を使用してレポートを作成するときにエラーが発生した場合、レポートファイルの名前は `ORCL_spreport_1_7.err` になります。エラーレポートは、スタンダードのスナップショットレポートと同じ方法でダウンロードできます。

## Statspack スナップショットの削除
<a name="Appendix.Oracle.Options.Statspack.removing-files"></a>

一定の範囲の Oracle Statspack スナップショットを削除するには、次のコマンドを使用します。

```
exec statspack.purge(begin snap, end snap); 
```

# Oracle のタイムゾーン
<a name="Appendix.Oracle.Options.Timezone"></a>

タイムゾーンオプションを使用して、Oracle DB インスタンスで使用するシステムのタイムゾーンを変更することができます。例えば、オンプレミス環境またはレガシーアプリケーションとの互換性があるように、DB インスタンスのタイムゾーンで変更が必要になることがあります。タイムゾーンオプションでは、ホストレベルでタイムゾーンが変更されます。タイムゾーンを変更すると、`SYSDATE` や `SYSTIMESTAMP` など、すべての日付列および値に影響を与えます。

タイムゾーンオプションは、`rdsadmin_util.alter_db_time_zone` コマンドと異なります。`alter_db_time_zone` コマンドによって変更されるタイムゾーンは、一定のデータタイプのみ対象です。タイムゾーンオプションでは、すべての日付列および値のタイムゾーンが変更されます。`alter_db_time_zone` の詳細については、「[データベースタイムゾーンの設定](Appendix.Oracle.CommonDBATasks.TimeZoneSupport.md)」を参照してください。アップグレードに関する考慮事項の詳細については、「[タイムゾーンに関する考慮事項](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.DST)」を参照してください。

## タイムゾーンの設定に関する制限
<a name="Appendix.Oracle.Options.Timezone.Restrictions"></a>

タイムゾーンオプションは、固定かつ永続オプションです。したがって、以下の操作を行うことはできません。
+ タイムゾーンオプションを追加した後、オプショングループからオプションを削除します。
+ DB インスタンスに追加したオプショングループを削除する。
+ オプションのタイムゾーン設定を別のタイムゾーンに変更する。

## タイムゾーンの設定に関する推奨事項
<a name="Appendix.Oracle.Options.Timezone.PreReqs"></a>

タイムゾーンオプションを運用データベースに追加する前に、次の操作をお勧めします。
+ インスタンスの DB スナップショットを取得します。誤ってタイムゾーンを設定した場合、DB インスタンスを以前のタイムゾーン設定に戻す必要があります。詳細については、「[Amazon RDS のシングル AZ DB インスタンスの DB スナップショットの作成](USER_CreateSnapshot.md)」を参照してください。
+ タイムゾーンオプションを DB インスタンスに追加します。タイムゾーンオプションを追加すると、システムの日付を使用して日付または時刻を追加するテーブルに問題が発生することがあります。テストインスタンスでデータとアプリケーションを分析することをお勧めします。これにより、本番稼働用インスタンスのタイムゾーンを変更した場合の影響を評価できます。

DB インスタンスでデフォルトのオプショングループを使用している場合は、以下のステップに従います。

1. インスタンスの DB スナップショットを取得します。

1. タイムゾーンオプションを DB インスタンスに追加します。

DB インスタンスでデフォルト以外のオプショングループを使用している場合は、以下のステップに従います。

1. インスタンスの DB スナップショットを取得します。

1. 新しいオプショングループを作成します。

1. タイムゾーンオプションを、既存のオプショングループに現在関連付けられている他のすべてのオプションとともに追加します。

   これにより、タイムゾーンオプションを有効にしている間に既存のオプションがアンインストールされるのを防ぐことができます。

1. DB インスタンスにオプショングループを追加します。

## タイムゾーンオプション設定
<a name="Appendix.Oracle.Options.Timezone.Options"></a>

Amazon RDS は、タイムゾーンオプションの次の設定をサポートします。


****  

| オプション設定 | 有効な値 | 説明 | 
| --- | --- | --- | 
| `TIME_ZONE` |  利用可能なタイムゾーンの例 利用できるタイムゾーンの一覧については、「[利用可能なタイムゾーン](#Appendix.Oracle.Options.Timezone.Zones)」を参照してください。  |  DB インスタンスの新しいタイムゾーン。  | 

## タイムゾーンオプションの追加
<a name="Appendix.Oracle.Options.Timezone.Add"></a>

タイムゾーンオプションを DB インスタンスに追加するには、次のステップを完了します。

1. (推奨) DB インスタンスのスナップショットを取ります。

1. 次のいずれかのタスクを行います。
   + 新しいオプショングループを初めから作成します。詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。
   + AWS CLI または API を使用して既存のオプショングループをコピーします。詳細については、「[オプショングループをコピーする](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Copy)」を参照してください。
   + デフォルト以外の既存のオプショングループを再利用します。ベストプラクティスは、DB インスタンスまたはスナップショットに現在関連付けられていないオプショングループを使用することです。

1. 前のステップからオプショングループに新しいオプションを追加します。

1. 現在 DB インスタンスに関連付けられているオプショングループでオプションが有効になっている場合は、これらのオプションを新しいオプショングループに追加します。この戦略は、新しいオプションを有効にしている間に既存のオプションがアンインストールされるのを防ぐことができます。

1. DB インスタンスに新しいオプショングループを追加します。

タイムゾーンオプションを追加すると、DB インスタンスが自動的に再起動する際に短い停止が発生します。

### コンソール
<a name="Appendix.Oracle.Options.Timezone.Console"></a>

**タイムゾーンオプションをオプショングループに追加して、DB インスタンスに関連付けるには**

1. RDS コンソールで、[**オプショングループ**] を選択します。

1. オプションを追加するオプショングループの名前を選択します。

1. **[オプションを追加]** を選択します。

1. [**オプション名**] として [**タイムゾーン**] を選択し、オプション設定を行います。

1. オプショングループを新規または既存の DB インスタンスに関連付けます。
   + 新しい DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
   + 既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。既存の DB インスタンスに新しいオプションを追加すると、DB インスタンスが自動的に再起動している間に短い停止が発生します。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

### AWS CLI
<a name="Appendix.Oracle.Options.Timezone.CLI"></a>

以下の例では、AWS CLI の [add-option-to-option-group](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html) コマンドを使用して、`Timezone` オプションと `TIME_ZONE` オプションの設定をオプショングループ `myoptiongroup` に追加しています。タイムゾーンは `Africa/Cairo` に設定されています。

Linux、macOS、Unix の場合:

```
aws rds add-option-to-option-group \
    --option-group-name "myoptiongroup" \
    --options "OptionName=Timezone,OptionSettings=[{Name=TIME_ZONE,Value=Africa/Cairo}]" \
    --apply-immediately
```

Windows の場合:

```
aws rds add-option-to-option-group ^
    --option-group-name "myoptiongroup" ^
    --options "OptionName=Timezone,OptionSettings=[{Name=TIME_ZONE,Value=Africa/Cairo}]" ^
    --apply-immediately
```

## タイムゾーン設定の変更
<a name="Appendix.Oracle.Options.Timezone.ModifySettings"></a>

タイムゾーンオプションは、固定かつ永続オプションです。オプショングループに追加したオプションを削除することはできません。DB インスタンスに追加したオプショングループを削除することはできません。オプションのタイムゾーン設定を別のタイムゾーンへと変更することはできません。タイムゾーンオプションが正しく設定されていない場合は、タイムゾーンオプション追加前の DB インスタンスのスナップショットを復元します。

## タイムゾーンオプションの削除
<a name="Appendix.Oracle.Options.Timezone.Remove"></a>

タイムゾーンオプションは、固定かつ永続オプションです。オプショングループに追加したオプションを削除することはできません。DB インスタンスに追加したオプショングループを削除することはできません。タイムゾーンオプションを削除するには、タイムゾーンオプション追加前の DB インスタンスのスナップショットを復元します。

## 利用可能なタイムゾーン
<a name="Appendix.Oracle.Options.Timezone.Zones"></a>

タイムゾーンオプションには、以下の値を使用できます。


****  

| ゾーン | タイムゾーン | 
| --- | --- | 
|  アフリカ  |  Africa/Cairo、Africa/Casablanca、Africa/Harare、Africa/Lagos、Africa/Luanda、Africa/Monrovia、Africa/Nairobi、Africa/Tripoli、Africa/Windhoek   | 
|  南北アメリカ大陸  |  America/Araguaina、America/Argentina/Buenos\$1Aires、America/Asuncion、America/Bogota、America/Caracas、America/Chicago、America/Chihuahua、America/Cuiaba、America/Denver、America/Detroit、America/Fortaleza、America/Godthab、America/Guatemala、America/Halifax、America/Lima、America/Los\$1Angeles、America/Manaus、America/Matamoros、America/Mexico\$1City、America/Monterrey、America/Montevideo、America/New\$1York、America/Phoenix、America/Santiago、America/Sao\$1Paulo、America/Tijuana、America/Toronto   | 
|  アジア  |  Asia/Amman、Asia/Ashgabat、Asia/Baghdad、Asia/Baku、Asia/Bangkok、Asia/Beirut、Asia/Calcutta、Asia/Damascus、Asia/Dhaka、Asia/Hong\$1Kong、Asia/Irkutsk、Asia/Jakarta、Asia/Jerusalem、Asia/Kabul、Asia/Karachi、Asia/Kathmandu、Asia/Kolkata、Asia/Krasnoyarsk、Asia/Magadan、Asia/Manila、Asia/Muscat、Asia/Novosibirsk、Asia/Rangoon、Asia/Riyadh、Asia/Seoul、Asia/Shanghai、Asia/Singapore、Asia/Taipei、Asia/Tehran、Asia/Tokyo、Asia/Ulaanbaatar、Asia/Vladivostok、Asia/Yakutsk、Asia/Yerevan   | 
|  大西洋  |  Atlantic/Azores、Atlantic/Cape\$1Verde   | 
|  オーストラリア  |  Australia/Adelaide、Australia/Brisbane、Australia/Darwin、Australia/Eucla、Australia/Hobart、Australia/Lord\$1Howe、Australia/Perth、Australia/Sydney   | 
|  ブラジル  |  Brazil/DeNoronha、Brazil/East   | 
|  カナダ  |  Canada/Newfoundland、Canada/Saskatchewan   | 
|  ETC  |  Etc/GMT-3  | 
|  欧州  |  Europe/Amsterdam、Europe/Athens、Europe/Berlin、Europe/Dublin、Europe/Helsinki、Europe/Kaliningrad、Europe/London、Europe/Madrid、Europe/Moscow、Europe/Paris、Europe/Prague、Europe/Rome、Europe/Sarajevo   | 
|  太平洋  |  Pacific/Apia、Pacific/Auckland、Pacific/Chatham、Pacific/Fiji、Pacific/Guam、Pacific/Honolulu、Pacific/Kiritimati、Pacific/Marquesas、Pacific/Samoa、Pacific/Tongatapu、Pacific/Wake   | 
|  米国  |  US/Alaska、US/Central、US/East-Indiana、US/Eastern、US/Pacific   | 
|  UTC  |  UTC  | 

# Oracle のタイムゾーンファイルの自動アップグレード
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade"></a>

`TIMEZONE_FILE_AUTOUPGRADE` オプションを使用すると、現在のタイムゾーンファイルを RDS for Oracle DB インスタンスの最新バージョンにアップグレードできます。

**Topics**
+ [

# Oracle のタイムゾーンファイルの概要
](Appendix.Oracle.Options.Timezone-file-autoupgrade.tz-overview.md)
+ [

# タイムゾーンファイルを更新する戦略
](Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.md)
+ [

# タイムゾーンファイル更新時のダウンタイム
](Appendix.Oracle.Options.Timezone-file-autoupgrade.considerations.md)
+ [

# タイムゾーンファイル更新の準備
](Appendix.Oracle.Options.Timezone-file-autoupgrade.preparing.md)
+ [

# タイムゾーンファイル自動アップグレードオプションの追加
](Appendix.Oracle.Options.Timezone-file-autoupgrade.adding.md)
+ [

# タイムゾーンファイル更新後のデータのチェック
](Appendix.Oracle.Options.Timezone-file-autoupgrade.checking.md)

# Oracle のタイムゾーンファイルの概要
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.tz-overview"></a>

Oracle Database の*タイムゾーンファイル*には、次の情報が格納されます。
+ 協定世界時 (UTC) との時差
+ サマータイム (DST) の移行時期
+ 標準時と DST の略語

Oracle Database には、複数のバージョンのタイムゾーンファイルが用意されています。オンプレミス環境で Oracle Database を作成するときには、タイムゾーンファイルのバージョンを選択します。詳細については、*「Oracle Database グローバリゼーションサポートガイド*」の「[タイムゾーンファイルの選択](https://docs.oracle.com/en/database/oracle/oracle-database/19/nlspg/datetime-data-types-and-time-zone-support.html#GUID-805AB986-DE12-4FEA-AF56-5AABCD2132DF)」を参照してください。

DST のルールが変更された場合、Oracle は新しいタイムゾーンファイルを公開します。Oracle は、四半期ごとの Release Updates (RU) および Release Update Revisions (RUR) のスケジュールとは関係なく、これらの新しいタイムゾーンファイルをリリースします。タイムゾーンファイルは、データベースホストのディレクトリ `$ORACLE_HOME/oracore/zoneinfo/` にあります。タイムゾーンファイル名は、DSTv35 のような形式 DSTv *バージョン*を使用します。

## タイムゾーンファイルがデータ転送に与える影響
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.data-transfer"></a>

Oracle Database では、`TIMESTAMP WITH TIME ZONE` データ型は、タイムスタンプとタイムゾーンのデータを保存します。`TIMESTAMP WITH TIME ZONE` データ型のデータは、関連付けられたタイムゾーンファイルバージョンのルールを使用します。そのため、タイムゾーンファイルを更新すると、既存の `TIMESTAMP WITH TIME ZONE` データが影響を受けます。

異なるバージョンのタイムゾーンファイルを使用するデータベース間でデータを転送すると、問題が発生する可能性があります。例えば、ターゲットデータベースよりも高いバージョンのタイムゾーンファイルを持つソースデータベースからデータをインポートすると、データベースは `ORA-39405` エラーを発行します。以前は、次のいずれかのテクニックを使用して、このエラーを回避する必要がありました。
+ 必要なタイムゾーンファイルを使用して RDS for Oracle DB インスタンスを作成し、ソースデータベースからデータをエクスポートしてから、新しいデータベースにインポートします。
+ AWS DMS または論理的なレプリケーションを使用して、データを移行します。

## TIMEZONE\$1FILE\$1AUTOUPGRADE オプションを使用した自動アップデート
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.option-overview"></a>

RDS for Oracle DB インスタンスにアタッチされたオプショングループに `TIMEZONE_FILE_AUTOUPGRADE`オプションが含まれている場合、RDS はタイムゾーンファイルを自動的に更新します。Oracle データベースが同じバージョンのタイムゾーンファイルを使用するようにすることで、異なる環境間でデータを移動する際に時間のかかる手動操作を回避できます。`TIMEZONE_FILE_AUTOUPGRADE` オプションは、コンテナデータベース (CDB) と非 CDB の両方に対してサポートされています。

`TIMEZONE_FILE_AUTOUPGRADE` オプションをオプショングループに追加するときには、オプションをすぐに追加するか、メンテナンスウィンドウで追加するかを選択できます。DB インスタンスが新しいオプションを適用すると、RDS は新しい DSTv *バージョン*ファイルをインストールできるかどうか確認します。対象の DST *バージョン*は以下の内容によって異なります。
+ DB インスタンスが現在実行中のマイナーエンジンバージョン
+ DB インスタンスのアップグレード先のマイナーエンジンバージョン

例えば、現在のタイムゾーンファイルのバージョンは DSTv33 である可能性があります。RDS がオプショングループに更新を適用すると、DSTv34 が DB インスタンスファイルシステムで現在利用可能であると判断される場合があります。その後、RDS はタイムゾーンファイルを自動的に DSTv34 に更新します。

サポートされる RDS リリース更新で利用可能な DST バージョンを確認するには、「[Release notes for Amazon Relational Database Service (Amazon RDS) for Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/Welcome.html)」(Amazon Relational Database Service (Amazon RDS) for Oracle リリースノート) のパッチを参照してください。例えば、[version 19.0.0.0.ru-2022-10.rur-2022-10.r1](https://docs.aws.amazon.com/AmazonRDS/latest/OracleReleaseNotes/oracle-version-19-0.html#oracle-version-RU-RUR.19.0.0.0.ru-2022-10.rur-2022-10.r1) には、パッチ 34533061: RDBMS - DSTV39 UPDATE - TZDATA2022C がリストされています。

# タイムゾーンファイルを更新する戦略
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies"></a>

DB エンジンをアップグレードし、オプショングループに `TIMEZONE_FILE_AUTOUPGRADE` オプションを追加するオペレーションは個別に行います。`TIMEZONE_FILE_AUTOUPGRADE` オプションを追加すると、最新のタイムゾーンファイルがある場合は、タイムゾーンファイルの更新が開始されます。すぐに、または次のメンテナンスウィンドウで、次のコマンドを実行します (関連するオプションのみが表示されます)。
+ 次の RDS CLI コマンドを使用してのみ DB エンジンをアップグレードします。

  ```
  modify-db-instance --engine-version name ...
  ```
+ 次の CLI コマンドを使用してのみ `TIMEZONE_FILE_AUTOUPGRADE` オプションを追加します。

  ```
  add-option-to-option-group --option-group-name name --options OptionName=TIMEZONE_FILE_AUTOUPGRADE ...
  ```
+ 次の CLI コマンドを使用して、DB エンジンをアップグレードし、インスタンスに新しいオプショングループを追加します。

  ```
  modify-db-instance --engine-version name --option-group-name name ...
  ```

更新戦略は、データベースとタイムゾーンファイルを一緒にアップグレードするか、これらのオペレーションのいずれかのみを実行するかによって異なります。オプショングループを更新し、別の API オペレーションで DB エンジンをアップグレードすると、DB エンジンをアップグレードするときにタイムゾーンファイルの更新が現在進行中になる可能性があることに注意してください。

このセクションの例では、以下を前提とします。
+ DB インスタンスに現在関連付けられているオプショングループに、まだ `TIMEZONE_FILE_AUTOUPGRADE` が追加されていません。
+ ご使用の DB インスタンスはデータベースバージョン 19.0.0.0.ru-2019-07.rur-2019-07.r1 およびタイムゾーンファイル DSTv33 を使用しています。
+ DB インスタンスファイルシステムには、ファイル DSTv34 が含まれています。
+ リリース更新プログラム 19.0.0.0.ru-2022-10.rur-2022-10.r1 には DSTv35 が含まれています。

タイムゾーンファイルを更新するには、以下の戦略を使用できます。

**Topics**
+ [

## エンジンをアップグレードせずにタイムゾーンファイルを更新する
](#Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.no-upgrade)
+ [

## タイムゾーンファイルと DB エンジンバージョンをアップグレードする
](#Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.upgrade)
+ [

## タイムゾーンファイルを更新せずに、DB エンジンのバージョンをアップグレードする
](#Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.upgrade-only)

## エンジンをアップグレードせずにタイムゾーンファイルを更新する
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.no-upgrade"></a>

このシナリオでは、データベースに DSTv33 を使用していますが、ご使用の DB インスタンスファイルシステムでは DSTv34 が使用できます。DB インスタンスで使用されるタイムゾーンファイルを DSTv33 から DSTv34 に更新しても、エンジンは DSTv35 を含む新しいマイナーバージョンにアップグレードしたくありません。

`add-option-to-option-group` コマンドで、DB インスタンスで使用されるオプショングループに `TIMEZONE_FILE_AUTOUPGRADE` を追加します。オプションをすぐに追加するか、メンテナンスウィンドウまで遅延するかを指定します。`TIMEZONE_FILE_AUTOUPGRADE` オプションを適用すると、RDS は次の処理を行います。

1. 新しい DST バージョンをチェックする。

1. DSTv34 がファイルシステムで使用可能であることを決定する。

1. タイムゾーンファイルをすぐに更新する。

## タイムゾーンファイルと DB エンジンバージョンをアップグレードする
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.upgrade"></a>

このシナリオでは、データベースに DSTv33 を使用していますが、ご使用の DB インスタンスファイルシステムでは DSTv34 が使用できます。DB エンジンを DSTv35 を含むマイナーバージョン 19.0.0.0.ru-2022-10.rur-2022-10.r1 にアップグレードし、エンジンのアップグレード中にタイムゾーンファイルを DSTv35 に更新します。したがって、目標は DSTv34 をスキップして、タイムゾーンファイルを DSTv35 に直接更新することです。

エンジンとタイムゾーンファイルを一緒にアップグレードするには、`--option-group-name` および `--engine-version` オプションを使用して `modify-db-instance` を実行します。コマンドはすぐに実行することも、メンテナンスウィンドウ に延期することもできます。`In --option-group-name` は、`TIMEZONE_FILE_AUTOUPGRADE` オプションを含むオプショングループを指定します。例えば、次のようになります。

```
aws rds modify-db-instance 
    --db-instance-identifier my-instance \
    --engine-version new-version \
    ----option-group-name og-with-timezone-file-autoupgrade \    
    --apply-immediately
```

RDS は、エンジンの 19.0.0.0.ru-2022-10.rur-2022-10.r1 へのアップグレードを開始します。`TIMEZONE_FILE_AUTOUPGRADE` オプションが適用されると、RDS は新しい DST バージョンを確認して、DSTv35 が 19.0.0.0.ru-2022-10.rur-2022-10.r1 で使用可能であることがわかると、すぐに DSTv35 に更新を開始します。

エンジンをすぐにアップグレードし、タイムゾーンファイルをアップグレードするには、オペレーションを順番に実行します。

1. 次の CLI コマンドを使用してのみ DB エンジンをアップグレードします。

   ```
   aws rds modify-db-instance \
       --db-instance-identifier my-instance \
       --engine-version new-version \
       --apply-immediately
   ```

1. 次の CLI コマンドを使用して、インスタンスにアタッチされたオプショングループに `TIMEZONE_FILE_AUTOUPGRADE` オプションを追加します。

   ```
   aws rds add-option-to-option-group \
       --option-group-name og-in-use-by-your-instance \
       --options OptionName=TIMEZONE_FILE_AUTOUPGRADE \
       --apply-immediately
   ```

## タイムゾーンファイルを更新せずに、DB エンジンのバージョンをアップグレードする
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.strategies.upgrade-only"></a>

このシナリオでは、データベースに DSTv33 を使用していますが、ご使用の DB インスタンスファイルシステムでは DSTv34 が使用できます。DB エンジンを DSTv35 を含むバージョン 19.0.0.0.ru-2022-10.rur-2022-10.r1 にアップグレードしても、タイムゾーンファイル DSTv33 を保持します。次の理由から、この戦略が必要になる場合があります。
+ データが `TIMESTAMP WITH TIME ZONE` データ型を使用しない。
+ データは `TIMESTAMP WITH TIME ZONE` データ型を使用できますが、データがタイムゾーン変更の影響を受けません。
+ 追加のダウンタイムを許容できないため、タイムゾーンファイルの更新を延期する必要があります。

戦略は、次のいずれが該当するによって異なります。
+ DB インスタンスは `TIMEZONE_FILE_AUTOUPGRADE` を含むオプショングループに関連付けられていません。`modify-db-instance` コマンドでは、RDS がタイムゾーンファイルを更新しないように、新しいオプショングループを指定しないでください。
+ DB インスタンスは現在、`TIMEZONE_FILE_AUTOUPGRADE` を含むオプショングループに関連付けられています。単一の `modify-db-instance` コマンド内で、`TIMEZONE_FILE_AUTOUPGRADE` を含まないオプショングループに DB インスタンスを関連付けてから、DB エンジンを 19.0.0.0.ru-2022-10.rur-2022-10.r1 にアップグレードします。

# タイムゾーンファイル更新時のダウンタイム
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.considerations"></a>

RDS がタイムゾーンファイルを更新すると、`TIMESTAMP WITH TIME ZONE` を使用する既存のデータが変更される可能性があります。この場合、主な考慮事項は、ダウンタイムです。

**警告**  
`TIMEZONE_FILE_AUTOUPGRADE` オプションを追加すると、エンジンのアップグレードのためにダウンタイムが長くなる可能性があります。ラージデータベースのタイムゾーンデータの更新には、数時間または数日かかることがあります。

タイムゾーンファイルの更新の長さは、次のような要因によって異なります。
+ データベース内の `TIMESTAMP WITH TIME ZONE` データの量
+ DB インスタンスの設定
+ DB インスタンスクラス
+ ストレージ設定
+ データベース設定
+ データベースパラメータ設定

次の操作を行うと、追加のダウンタイムが発生する可能性があります。
+ DB インスタンスが古いタイムゾーンファイルを使用しているときには、オプションをオプショングループに追加します。
+ 新しいエンジンバージョンにタイムゾーンファイルの新しいバージョンが含まれている場合は、Oracle データベースエンジンをアップグレードします。

**注記**  
タイムゾーンファイルの更新中に、RDS for Oracle は `PURGE DBA_RECYCLEBIN` を呼び出します。

# タイムゾーンファイル更新の準備
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.preparing"></a>

タイムゾーンファイルのアップグレードには、準備とアップグレードの 2 つの段階があります。必須ではありませんが、準備ステップを実行することを強く推奨します。このステップでは、PL/SQL ステップ `DBMS_DST.FIND_AFFECTED_TABLES` を実行することによって影響を受けるデータを調べます。準備ウィンドウの詳細については、Oracle Database ドキュメントの [Upgrading the Time Zone File and Timestamp with Time Zone Data](https://docs.oracle.com/en/database/oracle/oracle-database/19/nlspg/datetime-data-types-and-time-zone-support.html#GUID-B0ACDB2E-4B49-4EB4-B4CC-9260DAE1567A) を参照してください。

**タイムゾーンファイル更新の準備を行うには**

1. SQL クライアントを使用して、Oracle Database に接続します。

1. 現在使用されているタイムゾーンファイルのバージョンを確認します。

   ```
   SELECT * FROM V$TIMEZONE_FILE;
   ```

1. DB インスタンスで使用可能な最新のタイムゾーンファイルのバージョンを決定します。

   ```
   SELECT DBMS_DST.GET_LATEST_TIMEZONE_VERSION FROM DUAL;
   ```

1. `TIMESTAMP WITH LOCAL TIME ZONE` または `TIMESTAMP WITH TIME ZONE` 型の列を持つテーブルの合計サイズを決定します。

   ```
   SELECT SUM(BYTES)/1024/1024/1024 "Total_size_w_TSTZ_columns_GB"
   FROM   DBA_SEGMENTS
   WHERE  SEGMENT_TYPE LIKE 'TABLE%'
   AND    (OWNER, SEGMENT_NAME) IN
            (SELECT OWNER, TABLE_NAME
             FROM   DBA_TAB_COLUMNS
             WHERE  DATA_TYPE LIKE 'TIMESTAMP%TIME ZONE');
   ```

1. `TIMESTAMP WITH LOCAL TIME ZONE` または `TIMESTAMP WITH TIME ZONE` 型の列を持つセグメントの名前とサイズを決定します。

   ```
   SELECT OWNER, SEGMENT_NAME, SUM(BYTES)/1024/1024/1024 "SEGMENT_SIZE_W_TSTZ_COLUMNS_GB"
   FROM   DBA_SEGMENTS
   WHERE  SEGMENT_TYPE LIKE 'TABLE%'
   AND    (OWNER, SEGMENT_NAME) IN
            (SELECT OWNER, TABLE_NAME
             FROM   DBA_TAB_COLUMNS
             WHERE  DATA_TYPE LIKE 'TIMESTAMP%TIME ZONE')
   GROUP BY OWNER, SEGMENT_NAME;
   ```

1. 準備ステップを実行します。
   + 手順 `DBMS_DST.CREATE_AFFECTED_TABLE` で、影響を受けるデータを保存するためのテーブルを作成します。このテーブル名を `DBMS_DST.FIND_AFFECTED_TABLES` 手順に渡します。詳細については、Oracle Database ドキュメントの [CREATE\$1AFFECTED\$1TABLE Procedure](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_DST.html#GUID-C53BAABA-914A-404C-9CD5-823257BE0B00) を参照してください。
   + このプロシージャ `CREATE_ERROR_TABLE` は、エラーを記録するテーブルを作成します。詳細については、Oracle Database ドキュメントの [CREATE\$1ERROR\$1TABLE Procedure](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_DST.html#GUID-6A7EA024-B02D-4486-B1D6-EF6ABF5DE507) を参照してください。

   次の例では、影響を受けるデータとエラーテーブルを作成し、影響を受けるすべてのテーブルを検索します。

   ```
   EXEC DBMS_DST.CREATE_ERROR_TABLE('my_error_table')
   EXEC DBMS_DST.CREATE_AFFECTED_TABLE('my_affected_table')
   
   EXEC DBMS_DST.BEGIN_PREPARE(new_version);
   EXEC DBMS_DST.FIND_AFFECTED_TABLES('my_affected_table', TRUE, 'my_error_table');
   EXEC DBMS_DST.END_PREPARE;
   
   SELECT * FROM my_affected_table;
   SELECT * FROM my_error_table;
   ```

1. 影響を受けるテーブルとエラーテーブルをクエリします。

   ```
   SELECT * FROM my_affected_table;
   SELECT * FROM my_error_table;
   ```

# タイムゾーンファイル自動アップグレードオプションの追加
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.adding"></a>

オプションをオプショングループに追加すると、オプショングループは次のいずれかの状態になります。
+ 既存のオプショングループは、現在、少なくとも 1 つの DB インスタンスにアタッチされています。オプションを追加すると、このオプショングループを使用するすべての DB インスタンスが自動的に再起動します。これにより、短時間の停止が発生します。
+ 既存のオプショングループは、DB インスタンスにアタッチされていません。オプションを追加してから、既存のオプショングループを既存の DB インスタンスまたは新しい DB インスタンスに関連付ける予定です。
+ 新しいオプショングループを作成し、オプションを追加します。新しいオプショングループを既存の DB インスタンスまたは新しい DB インスタンスに関連付ける予定です。

## コンソール
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.console"></a>

**タイムゾーンファイル自動アップグレードオプションを DB インスタンスに追加するには**

1. AWS マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. ナビゲーションペインで、[**オプショングループ**] を選択します。

1. 使用するオプショングループを決定します。新しいオプショングループを作成することも、既存のオプショングループを使用することもできます。既存のオプショングループを使用する場合は、次のステップは飛ばしてください。または、次の設定でカスタム DB オプショングループを作成します。

   1. **[Engine]** (エンジン) として、DB インスタンスの Oracle Database エディションを選択します。

   1. [**メジャーエンジンのバージョン**] で、DB インスタンスのバージョンを選択します。

   詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. 変更するオプショングループを選択し、[**オプションの追加**] を選択します。

1. [**Add option**(オプションの追加)] ウィンドウで、以下の操作を行います。

   1. **[TIMEZONE\$1FILE\$1AUTOUPGRADE]** を選択します。

   1. オプションを追加後すぐに、関連付けられているすべての DB インスタンスに対して有効にするには、[**Apply Immediately**] で [**Yes**] を選択します。[**No**] を選択した場合 (デフォルト)、オプションは次のメンテナンス時間中に、関連付けられている各 DB インスタンスに対して有効になります。

1. 設定が希望どおりになったら、[**オプションの追加**] を選択します。

## AWS CLI
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.CLI"></a>

次の例では、AWS CLI の [add-option-to-option-group](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html) コマンドを使用して、`TIMEZONE_FILE_AUTOUPGRADE` オプションを `myoptiongroup` オプショングループに追加しています。

Linux、macOS、Unix の場合:

```
aws rds add-option-to-option-group \
    --option-group-name "myoptiongroup" \
    --options "OptionName=TIMEZONE_FILE_AUTOUPGRADE" \
    --apply-immediately
```

Windows の場合:

```
aws rds add-option-to-option-group ^
    --option-group-name "myoptiongroup" ^
    --options "OptionName=TIMEZONE_FILE_AUTOUPGRADE" ^
    --apply-immediately
```

# タイムゾーンファイル更新後のデータのチェック
<a name="Appendix.Oracle.Options.Timezone-file-autoupgrade.checking"></a>

タイムゾーンファイルの更新後に、データをチェックすることをお勧めします。準備ステップでは、RDS for Oracle によって次のテーブルが自動的に作成されます。
+ `rdsadmin.rds_dst_affected_tables` - 更新の影響を受けるデータを含むテーブルを一覧表示します
+ `rdsadmin.rds_dst_error_table` - 更新中に生成されたエラーを一覧表示します

これらのテーブルは、準備ウィンドウで作成するテーブルから独立しています。更新の結果を表示するには、次のようにテーブルをクエリします。

```
SELECT * FROM rdsadmin.rds_dst_affected_tables;
SELECT * FROM rdsadmin.rds_dst_error_table;
```

影響を受けるデータおよびエラーテーブルのスキーマの詳細については、Oracle ドキュメントの [FIND\$1AFFECTED\$1TABLES Procedure](https://docs.oracle.com/en/database/oracle/oracle-database/19/arpls/DBMS_DST.html#GUID-1F977505-671C-4D5B-8570-86956F136199) を参照してください。

# Oracle Transparent Data Encryption
<a name="Appendix.Oracle.Options.AdvSecurity"></a>

Amazon RDS は、Oracle Enterprise Edition で使用可能な Oracle Advanced Security オプションの機能である Oracle Transparent Data Encryption (TDE) をサポートしています。この機能は、ストレージへの書き込み前に自動的にデータを暗号化し、ストレージからのデータの読み取り時に自動的にデータを復号します。このオプションは、Bring Your Own License (BYOL) モデルでのみサポートされています。

TDE は、データファイルやバックアップが第三者によって取得された場合に機密データを暗号化する必要があるシナリオで便利です。TDE は、セキュリティ関連の規制に準拠する必要がある場合にも役立ちます。

Oracle Database TDE に関する詳細な説明は、このガイドでは取り上げません。詳細については、次の Oracle Database リソースを参照してください。
+ Oracle Database ドキュメントの「[透過的データ暗号化の概要](https://docs.oracle.com/en/database/oracle/oracle-database/19/asoag/introduction-to-transparent-data-encryption.html#GUID-62AA9447-FDCD-4A4C-B563-32DE04D55952)」
+ Oracle Database ドキュメントの「[Oracle アドバンストセキュリティ](https://www.oracle.com/security/database-security/)」
+ Oracle ホワイトペーパーの「[Oracle アドバンストセキュリティの透過的データ暗号化のベストプラクティス](https://www.oracle.com/br/a/tech/docs/technical-resources/twp-transparent-data-encryption-bestpractices.pdf)」

RDS for Oracle で TDE を使用する方法の詳細については、次のブログを参照してください。
+ [Amazon RDS の Oracle Database 暗号化オプション](https://aws.amazon.com/blogs/apn/oracle-database-encryption-options-on-amazon-rds/)
+ [ を使用して、ダウンタイムを短縮してクロスアカウント TDE 対応 Amazon RDS for Oracle DB インスタンスを移行するAWS DMS](https://aws.amazon.com/blogs/database/migrate-a-cross-account-tde-enabled-amazon-rds-for-oracle-db-instance-with-reduced-downtime-using-aws-dms/)

## TDE 暗号化モード
<a name="Appendix.Oracle.Options.AdvSecurity.Modes"></a>

Oracle Transparent Data Encryption では、TDE テーブルスペース暗号化と TDE 列暗号化の 2 つの暗号化モードがサポートされます。TDE テーブルスペース暗号化は、アプリケーションテーブル全体の暗号化に使用されます。TDE 列暗号化は、機密データを含む個々のデータ要素を暗号化するために使用されます。TDE のテーブルスペース暗号化と列暗号化の両方を使用するハイブリッド暗号化ソリューションを適用することもできます。

**注記**  
DB インスタンス用の Oracle Wallet と TDE マスターキーは Amazon RDS によって管理されます。コマンド `ALTER SYSTEM set encryption key` を使用して暗号化キーを設定する必要はありません。

`TDE` オプションを有効にすると、次のコマンドを使用して Oracle Wallet のステータスを確認できます。

```
SELECT * FROM v$encryption_wallet;
```

暗号化されたテーブルスペースを作成するには、次のコマンドを使用します。

```
CREATE TABLESPACE encrypt_ts ENCRYPTION DEFAULT STORAGE (ENCRYPT);
```

暗号アルゴリズムを指定するには、以下のコマンドを実行します。

```
CREATE TABLESPACE encrypt_ts ENCRYPTION USING 'AES256' DEFAULT STORAGE (ENCRYPT);
```

テーブルスペースを暗号化するための前述のステートメントは、オンプレミスの Oracle データベースで使用するステートメントと同じです。

## TDE オプションの制限事項
<a name="Appendix.Oracle.Options.Timezone.Restrictions"></a>

 オプションは永続的かつ固定的です。DB インスタンスを TDE オプションが有効になっているオプショングループに関連付けると、次のアクションを実行することはできません。
+ 現在関連付けられているオプショングループの `TDE` オプションを無効にします。
+ `TDE` オプションを含まない異なるオプショングループに DB インスタンスを関連付けます。
+ `TDE` オプションを使用している DB スナップショットを共有します。DB スナップショットの共有の詳細については、「[Amazon RDS の DB スナップショットを共有する](USER_ShareSnapshot.md)」を参照してください。

永続的および固定的オプションの詳細については、「[永続オプションと固定オプション](USER_WorkingWithOptionGroups.md#Overview.OptionGroups.Permanent)」を参照してください。

## DB インスタンスが TDE を使用しているかどうかの確認
<a name="Appendix.Oracle.Options.AdvSecurity.Querying"></a>

`TDE` オプションを含むオプショングループに DB インスタンスが関連付けられているかどうかを調べるたい場合があります。DB インスタンスが関連付けられているオプショングループを表示するには、RDS コンソール、AWS CLI コマンド ([describe-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html))、または API オペレーション [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) を使用します。

## TDE オプションの追加
<a name="Appendix.Oracle.Options.AdvSecurity.Add"></a>

`TDE` オプションを DB インスタンスに追加するには、次のステップを完了します。

1. (推奨) DB インスタンスのスナップショットを取ります。

1. 次のいずれかのタスクを行います。
   + 新しいオプショングループを初めから作成します。詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。
   + AWS CLI または API を使用して既存のオプショングループをコピーします。詳細については、「[オプショングループをコピーする](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Copy)」を参照してください。
   + デフォルト以外の既存のオプショングループを再利用します。ベストプラクティスは、DB インスタンスまたはスナップショットに現在関連付けられていないオプショングループを使用することです。

1. 前のステップからオプショングループに新しいオプションを追加します。

1. 現在 DB インスタンスに関連付けられているオプショングループでオプションが有効になっている場合は、これらのオプションを新しいオプショングループに追加します。この戦略は、新しいオプションを有効にしている間に既存のオプションがアンインストールされるのを防ぐことができます。

1. DB インスタンスに新しいオプショングループを追加します。

### コンソール
<a name="Appendix.Oracle.Options.TDE.Console"></a>

**TDE オプションをオプショングループに追加して、DB インスタンスに関連付けるには**

1. RDS コンソールで、[**オプショングループ**] を選択します。

1. オプションを追加するオプショングループの名前を選択します。

1. **[オプションを追加]** を選択します。

1. [**オプション名**] として [**TDE**] を選択し、オプション設定を行います。

1. **[オプションを追加]** を選択します。
**重要**  
1 つ以上の DB インスタンスにアタッチされているオプショングループに **TDE** オプションを追加すると、すべての DB インスタンスが自動的に再起動する間に短い停止が発生します。

   オプションの追加方法の詳細については、「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。

1. オプショングループを新規または既存の DB インスタンスに関連付けます。
   + 新しい DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
   + 既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。DB インスタンスは、この操作の一部として再起動されません。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

### AWS CLI
<a name="Appendix.Oracle.Options.TDE.CLI"></a>

次の例では、AWS CLI [add-option-to-option-group](https://docs.aws.amazon.com/cli/latest/reference/rds/add-option-to-option-group.html) コマンドを使用して、`TDE` オプションを `myoptiongroup` という名前のオプショングループに追加します。詳細については、「[開始方法: Flink 1.13.2](https://docs.aws.amazon.com/managed-flink/latest/java/earlier.html#getting-started-1-13)」を参照してください。

Linux、macOS、Unix の場合:

```
aws rds add-option-to-option-group \
    --option-group-name "myoptiongroup" \
    --options "OptionName=TDE" \
    --apply-immediately
```

Windows の場合:

```
aws rds add-option-to-option-group ^
    --option-group-name "myoptiongroup" ^
    --options "OptionName=TDE" ^
    --apply-immediately
```

## TDE オプションを含まない DB インスタンスへのデータのコピー
<a name="Appendix.Oracle.Options.AdvSecurity.Remove"></a>

DB インスタンスから TDE オプションを削除したり、TDE オプションを含まないオプショングループに関連付けることはできません。TDE オプションを含まないインスタンスにデータを移行するには、次の手順を実行します。

1.  DB インスタンス上のデータを復号します。

1.  `TDE` が有効になっているオプショングループに関連付けられていない新しい DB インスタンスにデータをコピーします。

1.  元の DB インスタンスを削除します。

新しいインスタンスには、前の DB インスタンスと同じ名前を付けることができます。

## Oracle Data Pump で TDE を使用する場合の考慮事項
<a name="Appendix.Oracle.Options.AdvSecurity.Pump"></a>

暗号化されたダンプファイルをインポートまたはエクスポートするには、Oracle Data Pump を使用します。Amazon RDS は、Oracle Data Pump 用のパスワード暗号化モード `(ENCRYPTION_MODE=PASSWORD)` をサポートしています。Oracle Data Pump 用の透過的暗号化モード `(ENCRYPTION_MODE=TRANSPARENT)` は、Amazon RDS でサポートされていません。詳細については、「[Oracle Data Pump を使用したインポート](Oracle.Procedural.Importing.DataPump.md)」を参照してください。

# Oracle UTL\$1MAIL
<a name="Oracle.Options.UTLMAIL"></a>

Amazon RDS では、UTL\$1MAIL オプションおよび SMTP サーバーを使用して Oracle UTL\$1MAIL をサポートしています。UTL\$1MAIL パッケージを使用して、データベースから直接電子メールを送信できます。Amazon RDS では、Oracle の次のバージョンで UTL\$1MAIL をサポートしています。
+ Oracle Database 21c (21.0.0.0)、すべてのバージョン
+ Oracle Database 19c (19.0.0.0)、すべてのバージョン

UTL\$1MAIL を使用する場合の制約をいくつか次に示します。
+ UTL\$1MAIL は Transport Layer Security (TLS) をサポートしていないため、E メールは暗号化されません。

  カスタムの Oracle ウォレットを作成およびアップロードして、リモート SSL/TLS リソースに安全に接続するには、「[証明書と Oracle ウォレットを使用した、UTL\$1HTTP アクセスの設定](Oracle.Concepts.ONA.md)」の手順を行います。

  Wallet に必要な固有の証明書は、サービスによって異なります。AWS のサービスの場合は、通常、[Amazon Trust Services リポジトリ](https://www.amazontrust.com/repository/)にあります。
+ UTL\$1MAIL は、SMTP サーバーでの認証をサポートしていません。
+ E メールでは 1 つの添付ファイルのみ送信できます。
+ 32 K より大きい添付ファイルを送信することはできません。
+ ASCII および Extended Binary Coded Decimal Interchange Code (EBCDIC) 文字エンコードのみ使用できます。
+ SMTP ポート (25) は、Elastic Network Interface 所有者のポリシーに基づいてスロットリングされます。

UTL\$1MAIL を有効にすると、DB インスタンスのマスターユーザーのみに実行権限が付与されます。必要に応じて、UTL\$1MAIL を使用できるよう、マスターユーザーは他のユーザーに実行権限を付与することができます。

**重要**  
UTL\$1MAIL プロシージャの使用を追跡するため、Oracle の組み込み監査機能を有効にすることをお勧めします。

## Oracle UTL\$1MAIL の前提条件
<a name="Oracle.Options.UTLMAIL.PreReqs"></a>

Oracle UTL\$1MAIL を使用するための前提条件は次のとおりです。
+ 1 つ以上の SMTP サーバーと、対応する IP アドレスまたはパブリック/プライベートドメインネームサーバー (DNS) 名。カスタム DNS サーバーを通じて解決されるプライベート DNS 名については、「[カスタム DNS サーバーのセットアップ](Appendix.Oracle.CommonDBATasks.System.md#Appendix.Oracle.CommonDBATasks.CustomDNS)」を参照してください。

## Oracle UTL\$1MAIL オプションの追加
<a name="Oracle.Options.UTLMAIL.Add"></a>

DB インスタンスに Oracle UTL\$1MAIL オプションを追加する一般的な手順は以下のとおりです。

1. 新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更します。

1. オプショングループに [] オプションを追加します。

1. オプショングループを DB インスタンスに関連付けます。

UTL\$1MAIL オプションの追加後、オプショングループがアクティブになるとすぐに、UTL\$1MAIL がアクティブになります。

**UTL\$1MAIL オプションを DB インスタンスに追加するには**

1. 使用するオプショングループを決定します。新しいオプショングループを作成することも、既存のオプショングループを使用することもできます。既存のオプショングループを使用する場合は、次のステップは飛ばしてください。または、次の設定でカスタム DB オプショングループを作成します。

   1. [**Engine**] で、使用する Oracle のエディションを選択します。

   1. [**メジャーエンジンのバージョン**] で、DB インスタンスのバージョンを選択します。

   詳細については、「[オプショングループを作成する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)」を参照してください。

1. オプショングループに [**UTL\$1MAIL**] オプションを追加します。オプションの追加方法の詳細については、「[オプショングループにオプションを追加する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)」を参照してください。

1. 新規または既存の DB インスタンスに、DB オプショングループを適用します。
   + 新規 DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
   + 既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## Oracle UTL\$1MAIL の使用
<a name="Oracle.Options.UTLMAIL.Using"></a>

UTL\$1MAIL オプションを有効にした後、それを使用する前に、SMTP サーバーを設定する必要があります。

SMTP\$1OUT\$1SERVER パラメータを有効な IP アドレスまたはパブリック DNS 名に設定することで、SMTP サーバーを設定します。SMTP\$1OUT\$1SERVER パラメータでは、複数のサーバーのアドレスのカンマ区切りリストを指定できます。初期のサーバーが利用できない場合、UTL\$1MAIL は次のサーバーを順に試します。

[DB パラメータグループ](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html)を使用して、DB インスタンスのデフォルトの SMTP\$1OUT\$1SERVER を設定できます。DB インスタンスで、データベースで以下のコードを実行して、セッションの SMTP\$1OUT\$1SERVER パラメータを設定できます。

```
1. ALTER SESSION SET smtp_out_server = mailserver.domain.com:25;
```

UTL\$1MAIL オプションが有効になり、SMTP\$1OUT\$1SERVER が設定されたら、`SEND` プロシージャを使用して E メールを送信できます。詳細については、Oracle ドキュメントの [UTL\$1MAIL](http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/u_mail.htm#BABFJJBD) を参照してください。

## Oracle UTL\$1MAIL オプションの削除
<a name="Oracle.Options.UTLMAIL.Remove"></a>

DB インスタンスから Oracle UTL\$1MAIL を削除できます。

DB インスタンスから UTL\$1MAIL を削除するには、次のいずれかを実行します。
+ 複数の DB インスタンスから UTL\$1MAIL を削除するには、属しているオプショングループから UTL\$1MAIL オプションを削除します。この変更はそのオプショングループを使用するすべての DB インスタンスに影響します。詳細については、「[オプショングループからオプションを削除する](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.RemoveOption)」を参照してください。
+ 単一の DB インスタンスから UTL\$1MAIL を削除するには、DB インスタンスを変更し、UTL\$1MAIL オプションが含まれていない別のオプショングループを指定します。デフォルト (空) のオプショングループや別のカスタムオプショングループを指定できます。詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

## トラブルシューティング
<a name="Oracle.Options.UTLMAIL.Troubleshooting"></a>

Amazon RDS で UTL\$1MAIL を使用する際に生じる可能性がある問題は以下のとおりです。
+ Throttling。SMTP ポート (25) は、Elastic Network Interface 所有者のポリシーに基づいてスロットリングされます。UTL\$1MAIL を使用して正常に E メールを送信できたにもかかわらず、`ORA-29278: SMTP transient error: 421 Service not available` エラーが表示された場合は、スロットリングされている可能性があります。E メール配信がスロットリングされた場合は、バックオフアルゴリズムを実装することをお勧めします。バックオフアルゴリズムの詳細については、「[AWS でのエラーの再試行とエクスポネンシャルバックオフ](https://docs.aws.amazon.com/general/latest/gr/api-retries.html)」および「["throttling Maximum sending rate exceeded" エラーの対処法](https://aws.amazon.com/blogs/ses/how-to-handle-a-throttling-maximum-sending-rate-exceeded-error/)」を参照してください。

  この調整の削除をリクエストできます。詳細については、「[EC2 インスタンスからポート 25 のスロットルを削除する方法を教えてください。](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-port-25-throttle/)」を参照してください。

# Oracle XML DB
<a name="Appendix.Oracle.Options.XMLDB"></a>

Oracle XML DB は、DB インスタンスにネイティブ XML サポートを追加します。XML DB を使用すると、構造化 XML または非構造化 XML とリレーショナルデータを保存および取得できます。XML DB プロトコルサーバーは、RDS for Oracle ではサポートされていません。

XML DB は、Oracle Database 12c 以降にプレインストールされています。したがって、オプショングループを使用して XML DB を追加機能として明示的にインストールする必要はありません。

XML DB を設定して使用する方法については、Oracle Database ドキュメントの「[Oracle XML DB 開発者ガイド](https://docs.oracle.com/en/database/oracle/oracle-database/19/adxdb/)」を参照してください。