

# RDS for Oracle で CDB を使用する
<a name="oracle-multitenant"></a>

Oracle のマルチテナントアーキテクチャでは、コンテナデータベース (CDB) にカスタマーが作成したプラグイン可能なデータベース (PDB) を含めることができます。CDB の詳細については、Oracle Database ドキュメントの「[マルチテナントアーキテクチャの概要](https://docs.oracle.com/en/database/oracle/oracle-database/19/multi/introduction-to-the-multitenant-architecture.html#GUID-267F7D12-D33F-4AC9-AA45-E9CD671B6F22)」を参照してください。

**Topics**
+ [RDS for Oracle CDB の概要](Oracle.Concepts.CDBs.md)
+ [RDS for Oracle CDB の設定](oracle-cdb.configuring.md)
+ [CDB のバックアップと復元](Oracle.Concepts.single-tenant.snapshots.md)
+ [RDS for Oracle の 非 CDB から CDB への変換](oracle-cdb-converting.md)
+ [シングルテナント設定からマルチテナント設定への変換](oracle-single-tenant-converting.md)
+ [RDS for Oracle テナントデータベースを CDB インスタンスに追加する](oracle-cdb-configuring.adding.pdb.md)
+ [RDS for Oracle テナントデータベースの変更](oracle-cdb-configuring.modifying.pdb.md)
+ [RDS for Oracle テナントデータベースを CDB から削除する](oracle-cdb-configuring.deleting.pdb.md)
+ [テナントデータベースの詳細を表示する](oracle-cdb-configuring.describing.pdb.md)
+ [CDB のアップグレード](Oracle.Concepts.single-tenant.upgrades.md)

# RDS for Oracle CDB の概要
<a name="Oracle.Concepts.CDBs"></a>

Oracle Database 19c 以降を実行している場合、RDS for Oracle DB インスタンスをコンテナデータベース (CDB) として作成できます。Oracle Database 21c 以降では、すべてのデータベースは CDB です。CDB は、RDS for Oracle でテナントデータベースと呼ばれるプラガブルデータベース (PDB) を格納できるという点で、非 CDB とは異なります。PDB は、スキーマとオブジェクトのポータブルコレクションであり、アプリケーションには別のデータベースとして表示されます。

CDB インスタンスを作成するときには、初期テナントデータベース (PDB) を作成します。RDS for Oracle では、クライアントアプリケーションは CDB ではなく PDB とやり取りします。PDB でのエクスペリエンスは、非 CDB でのエクスペリエンスとほぼ同じです。

**Topics**
+ [CDB アーキテクチャのマルチテナント設定](#multi-tenant-configuration)
+ [CDB アーキテクチャのシングルテナント設定](#Oracle.Concepts.single-tenant)
+ [CDB の作成と変換のオプション](#oracle-cdb-creation-conversion)
+ [CDB のユーザーアカウントと権限](#Oracle.Concepts.single-tenant.users)
+ [CDB のパラメータグループファミリー](#Oracle.Concepts.single-tenant.parameters)
+ [RDS for Oracle CDB の制限事項](#Oracle.Concepts.single-tenant-limitations)

## CDB アーキテクチャのマルチテナント設定
<a name="multi-tenant-configuration"></a>

RDS for Oracle は、Oracle マルチテナントアーキテクチャのマルチテナント設定 (*CDB アーキテクチャ*とも呼ばれる) をサポートしています。この設定では、RDS for Oracle CDB インスタンスに、データベースのエディションと必要なオプションライセンスに応じて、1～30 個のテナントデータベースを含めることができます。Oracle データベースでは、テナントデータベースは PDB です。DB インスタンスが 19.0.0.0.0.ru-2022-01.r1 以降の Oracle Database を使用する必要があります。

**注記**  
Amazon RDS 設定は、単なる Oracle DB エンジンではなく、Amazon RDS の機能であるため、「multitenant」ではなく「multi-tenant」と呼ばれています。同様に、RDS の用語「テナント」は、Oracle PDB だけでなく、RDS 設定のすべてのテナントを指します。RDS のドキュメントの「Oracle マルチテナント」という用語は、オンプレミスデプロイと RDS デプロイの両方に対応する Oracle データベース CDB アーキテクチャのみを指します。

以下の設定を設定できます。
+ テナントデータベース名
+ テナントデータベースのマスターユーザー名
+ テナントデータベースのマスターパスワード (オプションで Secrets Manager と統合)
+ テナントデータベース文字セット
+ テナントデータベース各国語文字セット

テナントデータベース文字セットは CDB の文字セットと異なる場合があります。同じことが各国語文字セットにも当てはまります。最初のテナントデータベースを作成したら、RDS API を使用してテナントデータベースを作成、変更、または削除できます。CDB 名はデフォルトで `RDSCDB` に設定されており、変更できません。詳細については、「[DB インスタンスの設定](USER_CreateDBInstance.Settings.md)」および「[RDS for Oracle テナントデータベースの変更](oracle-cdb-configuring.modifying.pdb.md)」を参照してください。

## CDB アーキテクチャのシングルテナント設定
<a name="Oracle.Concepts.single-tenant"></a>

RDS for Oracle は、シングルテナント設定と呼ばれる Oracle マルチテナントアーキテクチャのレガシー設定をサポートしています。この設定では、RDS for Oracle CDB インスタンスには 1 つのテナント (PDB) しか格納できません。後にさらに PDB を作成することはできません。

## CDB の作成と変換のオプション
<a name="oracle-cdb-creation-conversion"></a>

Oracle Database 21c は CDB のみをサポートしていますが、Oracle Database 19c は CDB と非 CDB の両方をサポートしています。RDS for Oracle CDB インスタンスはすべて、マルチテナント設定とシングルテナント設定の両方をサポートしています。

### Oracle データベースアーキテクチャの作成、変換、アップグレードのオプション
<a name="oracle-cdb-creation-conversion.architecture"></a>

次の表に、RDS for Oracle Database の作成とアップグレードのさまざまなアーキテクチャオプションを示します。


| リリース | データベース作成オプション | アーキテクチャ変換オプション | メジャーバージョンアップグレードターゲット | 
| --- | --- | --- | --- | 
| Oracle Database 21c | CDB アーキテクチャのみ | 該当なし | 該当なし | 
| Oracle Database 19c | CDB または非 CDB アーキテクチャ | 非 CDB から CDB アーキテクチャへ (April 2021 RU 以降) | Oracle Database 21c CDB | 

前の表に示すように、非 CDB を新しいメジャーデータベースバージョンの CDB に直接アップグレードすることはできません。ただし、Oracle Database 19c の非 CDB を Oracle Database 19c CDB に変換してから、Oracle Database 19c CDB を Oracle Database 21c CDB にアップグレードすることはできます。詳細については、「[RDS for Oracle の 非 CDB から CDB への変換](oracle-cdb-converting.md)」を参照してください。

### CDB アーキテクチャ設定の変換オプション
<a name="oracle-cdb-creation-conversion.configuration"></a>

次の表は、RDS for Oracle DB インスタンスのアーキテクチャ設定を変換するためのさまざまなオプションを示しています。


| 現在のアーキテクチャと設定 | CDB アーキテクチャのシングルテナント設定への変換 | CDB アーキテクチャのマルチテナント設定への変換 | 非 CDB アーキテクチャへの変換 | 
| --- | --- | --- | --- | 
| 非 CDB | サポート対象 | サポート対象\$1 | 該当なし | 
| シングルテナント設定を使用した CDB | 該当なし | サポート対象 | サポートされていません | 
| マルチテナント設定を使用した CDB | サポートされていません | 該当なし | サポートされていません | 

\$1 非 CDB を 1 回の操作でマルチテナント設定に変換することはできません。非 CDB を CDB に変換すると、CDB はシングルテナント設定になります。その後、別の操作でシングルテナントをマルチテナント設定に変換できます。

## CDB のユーザーアカウントと権限
<a name="Oracle.Concepts.single-tenant.users"></a>

Oracle マルチテナントアーキテクチャでは、すべてのユーザーアカウントが共通ユーザーまたはローカルユーザーのいずれかになります。CDB 共通ユーザーとは、単一のアイデンティティとパスワードが CDB ルート、ならびに既存および将来のすべての PDB で認識されているデータベースユーザーです。対照的に、ローカルユーザーは 1 つの PDB にのみ存在します。

RDS マスターユーザーは PDB 内のローカルユーザーアカウントで、DB インスタンスを作成するときに名前を付けます。新しいユーザーアカウントを作成すると、これらのユーザーも PDB に常駐するローカルユーザーとなります。ユーザーアカウントを使用して新しい PDB を作成したり、既存の PDB の状態を変更したりすることはできません。

`rdsadmin` ユーザーは共通のユーザーアカウントです。このアカウントに存在する RDS for Oracle パッケージを実行できますが、`rdsadmin` としてログインすることはできません。詳細については、Oracle のドキュメントの [About Common Users and Local Users](https://docs.oracle.com/en/database/oracle/oracle-database/19/dbseg/managing-security-for-oracle-database-users.html#GUID-BBBD9904-F2F3-442B-9AFC-8ACDD9A588D8) を参照してください。

マルチテナント設定とシングルテナント設定の両方のマスターユーザーの場合、セルフマネージドまたは AWS Secrets Manager によって管理される認証情報を使用できます。シングルテナント設定では、マネージドマスターパスワードに `create-db-instance` などのインスタンスレベルの CLI コマンドを使用します。マルチテナント設定では、マネージドマスターパスワードに `create-tenant-database` などのテナントデータベースコマンドを使用します。Secrets Manager との統合の詳細については、「[Secrets Manager を使用した RDS for Oracle テナントデータベースのマスターユーザーパスワードの管理](rds-secrets-manager.md#rds-secrets-manager-tenant)」を参照してください。

## CDB のパラメータグループファミリー
<a name="Oracle.Concepts.single-tenant.parameters"></a>

CDB には、独自のパラメータグループファミリーおよびデフォルトパラメータ値があります。CDB パラメータグループファミリーは次のとおりです。
+ oracle-ee-cdb-21
+ oracle-se2-cdb-21
+ oracle-ee-cdb-19
+ oracle-se2-cdb-19

## RDS for Oracle CDB の制限事項
<a name="Oracle.Concepts.single-tenant-limitations"></a>

RDS for Oracle は、オンプレミス CDB で使用できる機能のサブセットをサポートしています。

### CDB の制限事項
<a name="oracle-cdb-limitations.cdb"></a>

以下の制限は、RDS for Oracle に CDB レベルで適用されます。
+ CDB に接続することはできません。常に CDB ではなくテナントデータベース (PDB) に接続します。非 CDB の場合と同様に、PDB のエンドポイントを指定します。唯一の違いは、データベース名に *pdb\$1name* を指定することです。ここで、*pdb\$1name* は PDB のために選択した名前です。
+ マルチテナント設定の CDB をシングルテナント変換の CDB に変換することはできません。マルチテナント設定への変換は一方向で、元に戻すことはできません。
+ DB インスタンスが 19.0.0.0.ru-2022-01.r1 より前の Oracle データベースのリリースを使用している場合は、マルチテナント設定を有効にしたり、マルチテナント設定に変換したりすることはできません。
+ CDB でデータベースアクティビティストリームを使用することはできません。
+ `CDB$ROOT` 内から監査を有効にすることはできません。各 PDB 内で個別に監査を有効にする必要があります。

### テナントデータベース (PDB) の制限事項
<a name="oracle-cdb-limitations.pdb"></a>

RDS for Oracle マルチテナント設定のテナントデータベースには、次の制限が適用されます。
+ テナントデータベースの操作をメンテナンス期間まで延期することはできません。すべての変更はすぐに反映されます。
+ シングルテナント設定を使用する CDB には、テナントデータベースを追加できません。
+ 1 回の操作で、複数のテナントデータベースを追加または変更することはできません。一度に追加または変更できる項目は 1 つのみです。
+ テナントデータベースを `CDB$ROOT` または `PDB$SEED` という名前に変更することはできません。
+ CDB 内のテナントが 1 つのみの場合、そのテナントデータベースは削除できません。
+ すべての DB インスタンスクラスタイプが、RDS for Oracle CDB インスタンスで複数の PDB をサポートするのに十分なリソースを備えているわけではありません。PDB 数が増えると、小規模なインスタンスクラスのパフォーマンスと安定性に影響し、データベースのアップグレードなど、ほとんどのインスタンスレベルの操作にかかる時間が長くなります。
+ `rdsadmin.rdsadmin_util.rename_global_name` を使用して PDB の名前を変更することはできません。代わりに `modify-tenant-database` API を使用する必要があります。
+ 同じ CDB に複数の AWS アカウント を使用して PDB を作成することはできません。PDB は、PDB がホストされている DB インスタンスと同じアカウントが所有しているものである必要があります。
+ CDB 内のすべての PDB は、同じエンドポイントとデータベースリスナーを使用します。
+ 以下の操作は PDB レベルではサポートされていませんが、CDB レベルではサポートされています。
  + バックアップとリカバリ
  + データベースアップグレード
  + メンテナンスアクション
+ 以下の機能は PDB レベルではサポートされていませんが、CDB レベルではサポートされています。
  + オプショングループ (オプションは CDB インスタンスのすべての PDB にインストールされます)
  + パラメータグループ (すべてのパラメータは CDB インスタンスに関連付けられたパラメータグループから導出されます)
+ オンプレミスの CDB アーキテクチャではサポートされているが、RDS for Oracle CDB ではサポートされていない PDB レベルの操作には、次のようなものがあります。
**注記**  
以下のリストは完全なものではありません。
  + Application ELB
  + Proxy PDBs
  + PDB の起動または停止
  + PDB のアンプラグとプラギング

    CDB へ、または CDB からデータを移動するには、非 CDB と同じ手法を使用します。データ移行に関する詳細については、「[Amazon RDS の Oracle にデータをインポートする](Oracle.Procedural.Importing.md)」を参照してください。
  + PDB レベルでのオプション設定

    PDB は CDB オプショングループからオプション設定を継承します。設定オプションの詳細については、「[Amazon RDS のパラメータグループ](USER_WorkingWithParamGroups.md)」を参照してください。ベストプラクティスについては、[DB パラメータグループを使用する](CHAP_BestPractices.md#CHAP_BestPractices.DBParameterGroup)を参照してください。
  + PDB のパラメータの設定

    PDB は CDB からパラメータ設定を継承します。設定オプションの詳細については、「[Oracle DB インスタンスへのオプションの追加](Appendix.Oracle.Options.md)」を参照してください。
  + 同じ CDB 内の PDB に異なるリスナーを設定する
  + Oracle Flashback 機能

# RDS for Oracle CDB の設定
<a name="oracle-cdb.configuring"></a>

CDB の設定は、非 CDB の設定と似ています。

**Topics**
+ [RDS for Oracle CDB インスタンスの作成](#Oracle.Concepts.single-tenant.creation)
+ [RDS for Oracle CDB での PDB への接続](#Oracle.Concepts.connecting.pdb)

## RDS for Oracle CDB インスタンスの作成
<a name="Oracle.Concepts.single-tenant.creation"></a>

RDS for Oracle では、CDB インスタンスの作成は非 CDB の作成とほとんど同じです。その違いは、DB インスタンスを作成するときに Oracle マルチテナントアーキテクチャを選択し、アーキテクチャ設定 (マルチテナントまたはシングルテナント) を選択することです。マルチテナント設定で CDB を作成するときにタグを作成すると、RDS はそのタグを初期テナントデータベースに伝達します。CDB を作成するには、AWS マネジメントコンソール、AWS CLI、または RDS API を使用します。

### コンソール
<a name="Oracle.Concepts.single-tenant.creation.console"></a>

**CDB インスタンスを作成するには**

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

1. Amazon RDS コンソールの右上で、CDB インスタンスを作成する AWS リージョン を選択します。

1. ナビゲーションペインで、[**データベース**] を選択します。

1. [**データベースの作成**] を選択します。

1. [**Choose a database creation method (データベース作成方法を選択)**] で [**Standard Create (スタンダード作成)**] を選択します。

1. [**エンジンのオプション**] で [**Oracle**] を選択します。

1. **[データベース管理のタイプ]** で、**[Amazon RDS]** を選択します。

1. **[アーキテクチャ設定]** では、**[Oracle マルチテナントアーキテクチャ]** を選択します。

1. **[アーキテクチャ設定]** で、次のいずれかを実行します。
   + **[マルチテナント設定]** を選択し、次のステップに進みます。
   + **[シングルテナント設定]** を選択し、ステップ 11 に進みます。

1. (マルチテナント設定) **[テナントデータベース設定]** で、次の変更を行います。
   + **[テナントデータベース名]** には、データベースの名前を入力します。PDB 名は CDB 名 (デフォルトは `RDSCDB`) と異なるものである必要があります。
   + **[テナントデータベースのマスターユーザー名]** には、PDB のマスターユーザー名を入力します。テナントデータベースマスターユーザー名を使用して CDB 自体にログインすることはできません。
   + **[認証情報管理]** では、次のいずれかの認証情報管理オプションを選択します。
     + ** で管理AWS Secrets Manager**

       マネージドパスワードは、インスタンス用ではなく、初期テナントデータベース用です。**[暗号化キーを選択]** で、Secrets Manager によって作成される KMS キーと自分で作成したキーのいずれかを選択します。
**注記**  
認証情報を管理するための最も安全な手法として、AWS Secrets Manager をお勧めします。別途 料金がかかります。詳細については、「[Amazon RDS および AWS Secrets Manager によるパスワード管理](rds-secrets-manager.md)」を参照してください。
     + **セルフマネージド**

       パスワードを指定するには、**[パスワードの自動生成]** チェックボックスが選択されている場合はクリアします。**[マスターパスワード]** と **[マスターパスワードを確認]** に同じパスワードを入力します。
   + **[テナントデータベースの文字セット]** では、PDB の文字セットを選択します。テナントデータベース文字セットとは異なる PDB 文字セットを選択できます。

     デフォルトの PDB 文字セットは **AL32UTF8** です。デフォルト以外の PDB 文字セットを選択すると、CDB の作成が遅くなる可能性があります。
**注記**  
作成オペレーションで複数のテナントデータベースを指定することはできません。CDB の作成時に PDB が 1 つあります。PDB は、別のオペレーションで既存の CDB に追加できます。

1. (シングルテナント設定) [DB インスタンスの設定](USER_CreateDBInstance.Settings.md) に記載されているオプションに基づいて、必要な設定を選択します。

   1. [**設定**] セクションで、[**認証情報の設定**] を開きます。次に、以下の操作を実行します。

     1. **[マスターユーザー名]** には、PDB のローカルユーザーの名前を入力します。マスターユーザー名を使用して CDB ルートにログインすることはできません。

     1. **[認証情報管理]** では、次のいずれかの認証情報管理オプションを選択します。
        + ** で管理AWS Secrets Manager**

          **[暗号化キーを選択]** で、Secrets Manager によって作成される KMS キーと自分で作成したキーのいずれかを選択します。
**注記**  
認証情報を管理するための最も安全な手法として、AWS Secrets Manager をお勧めします。別途 料金がかかります。詳細については、「[Amazon RDS および AWS Secrets Manager によるパスワード管理](rds-secrets-manager.md)」を参照してください。
        + **セルフマネージド**

          パスワードを指定するには、**[パスワードの自動生成]** チェックボックスが選択されている場合はクリアします。**[マスターパスワード]** と **[マスターパスワードを確認]** に同じパスワードを入力します。

1. 残りのセクションで、DB インスタンス設定を指定します。各設定の詳細については、「[DB インスタンスの設定](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.Settings.html)」を参照してください。

1. **[データベースの作成]** を選択します。

### AWS CLI
<a name="Oracle.Concepts.single-tenant.creation.cli"></a>

マルチテナント設定で CDB を作成するには、以下のパラメータを指定して [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) コマンドを使用します。
+ `--db-instance-identifier`
+ `--db-instance-class`
+ `--engine { oracle-ee-cdb | oracle-se2-cdb }`
+ `--master-username`
+ `--master-user-password`-または-`--manage-master-user-password`
+ `--multi-tenant`(シングルテナント設定の場合は、`multi-tenant` も `--no-multi-tenant` も指定しないでください)
+ `--allocated-storage`
+ `--backup-retention-period`

各設定の詳細については、「[DB インスタンスの設定](USER_CreateDBInstance.Settings.md)」を参照してください。

次の例では、マルチテナント設定で *my-cdb-inst* という名前の RDS for Oracle DB インスタンスを作成します。`--no-multi-tenant` を指定するか `--multi-tenant` を指定しなかった場合、デフォルトの CDB 設定はシングルテナントです。エンジンは、`oracle-ee-cdb`: `oracle-ee` および `--multi-tenant` を指定するとエラーで失敗するコマンドです。初期テナントデータベースの名前は *mypdb* です。

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

```
 1. aws rds create-db-instance \
 2.     --engine oracle-ee-cdb \
 3.     --db-instance-identifier my-cdb-inst \
 4.     --multi-tenant \
 5.     --db-name mypdb \
 6.     --allocated-storage 250 \
 7.     --db-instance-class db.t3.large \
 8.     --master-username pdb_admin \
 9.     --manage-master-user-password \
10.     --backup-retention-period 3
```
Windows の場合:  

```
 1. aws rds create-db-instance ^
 2.     --engine oracle-ee-cdb ^
 3.     --db-instance-identifier my-cdb-inst ^
 4.     --multi-tenant ^
 5.     --db-name mypdb ^
 6.     --allocated-storage 250 ^
 7.     --db-instance-class db.t3.large ^
 8.     --master-username pdb_admin ^
 9.     --manage-master-user-password \ ^
10.     --backup-retention-period 3
```
セキュリティ上のベストプラクティスとして、ここに示されているプロンプト以外のパスワードを指定してください。
このコマンドでは、次のような出力が生成されます。データベース名、文字セット、各国語文字セット、マスターユーザー、マスターユーザーシークレットは出力に含まれません。この情報は CLI コマンド `describe-tenant-databases` を使用して表示できます。  

```
 1. {
 2.     "DBInstance": {
 3.         "DBInstanceIdentifier": "my-cdb-inst",
 4.         "DBInstanceClass": "db.t3.large",
 5.         "MultiTenant": true,
 6.         "Engine": "oracle-ee-cdb",
 7.         "DBResourceId": "db-ABCDEFGJIJKLMNOPQRSTUVWXYZ",
 8.         "DBInstanceStatus": "creating",
 9.         "AllocatedStorage": 250,
10.         "PreferredBackupWindow": "04:59-05:29",
11.         "BackupRetentionPeriod": 3,
12.         "DBSecurityGroups": [],
13.         "VpcSecurityGroups": [
14.             {
15.                 "VpcSecurityGroupId": "sg-0a1bcd2e",
16.                 "Status": "active"
17.             }
18.         ],
19.         "DBParameterGroups": [
20.             {
21.                 "DBParameterGroupName": "default.oracle-ee-cdb-19",
22.                 "ParameterApplyStatus": "in-sync"
23.             }
24.         ],
25.         "DBSubnetGroup": {
26.             "DBSubnetGroupName": "default",
27.             "DBSubnetGroupDescription": "default",
28.             "VpcId": "vpc-1234567a",
29.             "SubnetGroupStatus": "Complete",
30.             ...
```

### RDS API
<a name="Oracle.Concepts.single-tenant.creation.api"></a>

Amazon RDS API を使用して DB インスタンスを作成するには、[CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) オペレーションを呼び出します。

各設定の詳細については、「[DB インスタンスの設定](USER_CreateDBInstance.Settings.md)」を参照してください。

## RDS for Oracle CDB での PDB への接続
<a name="Oracle.Concepts.connecting.pdb"></a>

SQL\$1Plus などのユーティリティを使用して PDB に接続できます。SQL\$1Plus のスタンドアロンバージョンを含む Oracle Instant Client をダウンロードするには、[Oracle Instant Client Downloads](https://www.oracle.com/database/technologies/instant-client/downloads.html) を参照してください。

SQL\$1Plus を PDB に接続するには以下の情報が必要です。
+ PDB 名
+ データベースユーザー名とパスワード
+ DB インスタンスのエンドポイント
+ ポート番号

前述の情報を見つける方法については、「[RDS for Oracle DB インスタンスのエンドポイントを見つける](USER_Endpoint.md)」を参照してください。

**Example SQL\$1Plus を使用して PDB に接続するには**  
次の例では、*master\$1user\$1name* をマスターユーザーに置き換えてください。また、エンドポイントを DB インスタンスに置き換えて、ポート番号および Oracle SID を含めます。SID 値は DB インスタンスの作成時に指定した PDB の名前であり、DB インスタンス識別子ではありません。  
Linux、macOS、Unix の場合:  

```
1. sqlplus 'master_user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=endpoint)(PORT=port))(CONNECT_DATA=(SID=pdb_name)))'
```
Windows の場合:  

```
1. sqlplus master_user_name@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=endpoint)(PORT=port))(CONNECT_DATA=(SID=pdb_name)))
```
次のような出力が表示されます。  

```
SQL*Plus: Release 19.0.0.0.0 Production on Mon Aug 21 09:42:20 2021
```
ユーザーのパスワードを入力すると、SQL プロンプトが表示されます。  

```
SQL>
```

**注記**  
`sqlplus username/password@LONGER-THAN-63-CHARS-RDS-ENDPOINT-HERE:1521/database-identifier` のような短い形式の接続文字列 (Easy connect または EZCONNECT) は、最大文字数制限に達する可能性があるため、接続には使用しないでください。

# CDB のバックアップと復元
<a name="Oracle.Concepts.single-tenant.snapshots"></a>

RDS DB スナップショットまたは Recovery Manager (RMAN) を使用して CDB をバックアップおよび復元できます。

## DB スナップショットを使用した CDB のバックアップと復元
<a name="br-cdb.db-snapshots"></a>

DB スナップショットは CDB アーキテクチャでも非 CDB アーキテクチャでも同様に機能します。主な違いは次のとおりです。
+ CDB の DB スナップショットを復元する場合、CDB の名前を変更することはできません。CDB 名は `RDSCDB` であり、変更できません。
+ CDB の DB スナップショットを復元する場合、PDB の名前を変更することはできません。PDB 名は [modify-tenant-database](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyTenantDatabase.html) コマンドを使用して変更できます。
+ スナップショット内のテナントデータベースを検索するには、CLI コマンド [describe-db-snapshot-tenant-databases](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshotTenantDatabases.html) を使用します。
+ マルチテナントアーキテクチャ設定を使用する CDB スナップショットでは、テナントデータベースを直接操作することはできません。DB スナップショットを復元すると、そのテナントデータベースもすべて復元されます。
+ RDS for Oracle は、テナントデータベースのタグを DB スナップショット内のテナントデータベースに暗黙的にコピーします。テナントデータベースを復元すると、復元されたデータベースにタグが表示されます。
+ DB スナップショットを復元し、`--tags` パラメータを使用して新しいタグを指定すると、新しいタグが既存のすべてのタグを上書きします。
+ タグが付いている CDB インスタンスの DB スナップショットを作成し、`--copy-tags-to-snapshot` を指定すると、RDS for Oracle はテナントデータベースからスナップショット内のテナントデータベースにタグをコピーします。

詳細については、「[Oracle データベースに関する考慮事項](USER_RestoreFromSnapshot.md#USER_RestoreFromSnapshot.Oracle)」を参照してください。

## RMAN を使った CDB のバックアップと復元
<a name="br-cdb.rman"></a>

RMAN を使用して CDB または個々のテナントデータベースをバックアップおよび復元する方法については、「[Oracle DB インスタンスの一般的な RMAN タスクの実行](Appendix.Oracle.CommonDBATasks.RMAN.md)」を参照してください。

# RDS for Oracle の 非 CDB から CDB への変換
<a name="oracle-cdb-converting"></a>

Oracle データベースのアーキテクチャは、非 CDB アーキテクチャから Oracle マルチテナントアーキテクチャ (*CDB アーキテクチャ*とも呼ばれます) に `modify-db-instance` コマンドで変更できます。ほとんどの場合、新しい CDB を作成してデータをインポートするよりも、この手法を使用することをお勧めします。変換操作にはダウンタイムが発生します。

データベースエンジンのバージョンをアップグレードする場合、同じオペレーションでデータベースアーキテクチャを変更することはできません。したがって、Oracle Database 19c 非 CDB を Oracle Database 21c CDB にアップグレードするには、まず 1 つのステップで非 CDB を CDB に変換してから、別のステップで 19c CDB を 21c CDB にアップグレードする必要があります。

非 CDB 変換オペレーションには次の要件があります。
+ DB エンジンタイプに対して `oracle-ee-cdb` または `oracle-se2-cdb` を指定する必要があります。これらの値のみがサポートされています。
+ お使いの DB エンジンが、April 2021 以降のリリースアップデート (RU) で Oracle Database 19c を使用している必要があります。

 このオペレーションには次の制約事項があります。
+ CDB を非 CDB に変換することはできません。非 CDB を CDB に変換することしかできません。
+ 非 CDB を 1 回の `modify-db-instance` 呼び出しでマルチテナント設定に変換することはできません。非 CDB を CDB に変換した後、CDB はシングルテナント設定になります。シングルテナント設定をマルチテナント設定に変換するには、`modify-db-instance` をもう一度実行してください。詳細については、「[シングルテナント設定からマルチテナント設定への変換](oracle-single-tenant-converting.md)」を参照してください。
+ Oracle Data Guardが有効になっているプライマリデータベースまたはレプリカデータベースは変換できません。リードレプリカのある非 CDB を変換するには、まずリードレプリカをすべて削除します。
+ 同じオペレーションで DB エンジンのバージョンをアップグレードし、非 CDB を CDB に変換することはできません。

非 CDB を変換する前に、次の点を考慮してください。
+ オプションとパラメータグループの考慮事項は、DB エンジンをアップグレードする場合と同じです。詳細については、「[Oracle のデータベースアップグレードに関する考慮事項](USER_UpgradeDBInstance.Oracle.OGPG.md)」を参照してください。
+ マネージドマスターパスワードを使用する既存の非 CDB インスタンスは、1 回のオペレーションでシングルテナントインスタンスに変換できます。シングルテナントインスタンスはマネージドパスワードを継承します。
+ DB インスタンスに `OEMAGENT` オプションがインストールされている場合は、非 CDB を変換する前にこのオプションを削除することをお勧めします。非 CDB が CDB に変換されたら、オプションを再インストールします。詳細については、「[Enterprise Manager Cloud Control 向け Oracle Management Agent](Oracle.Options.OEMAgent.md)」を参照してください。
+ 変換プロセス中、RDS はオンライン REDO ログサイズをデフォルトの 128M にリセットします。

## コンソール
<a name="oracle-cdb-converting.console"></a>

**非 CDB を CDB に変換するには**

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

1. Amazon RDS コンソールの右上で、DB インスタンスのある AWS リージョン を選択します。

1. ナビゲーションペインで、**[データベース]** を選択し、CDB インスタンスに変更する 非 CDB インスタンスを選択します。

1. **[Modify]** (変更) を選択します。

1. **[アーキテクチャ設定]** では、**[Oracle マルチテナントアーキテクチャ]** を選択します。変換後、CDB はシングルテナント設定になります。

1. (オプション) **[DB パラメータグループ]** には、CDB インスタンスの新しいパラメータグループを選択します。DB インスタンスを変換するときも、DB インスタンスをアップグレードするときと同じパラメータグループの考慮事項が適用されます。詳細については、「[パラメータグループに関する考慮事項](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.PG)」を参照してください。

1. (オプション) **[オプショングループ]** では、CDB インスタンスの新しいオプショングループを選択します。DB インスタンスを変換するときも、DB インスタンスをアップグレードするときと同じオプショングループの考慮事項が適用されます。詳細については、「[オプショングループに関する考慮事項](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.OG)」を参照してください。

1. (オプション) **[認証情報管理]** では、**[AWS Secrets Manager で管理]** または **[セルフマネージド]** を選択します。詳細については、「[Secrets Manager による DB インスタンスのマスターユーザーパスワードの管理](rds-secrets-manager.md#rds-secrets-manager-db-instance)」を参照してください。

1. すべての変更が正しいことを確認したら、[**Continue**] を選択して変更の概要を確認します。

1. (省略可能) 変更をすぐに適用するには、[**すぐに適用**] を選択します。このオプションを選択すると、ダウンタイムを発生させる場合があります。詳細については、「[スケジュール変更設定の使用](USER_ModifyInstance.ApplyImmediately.md)」を参照してください。

1. 確認ページで、変更内容を確認します。正しい場合は、**[DB インスタンスを変更]** を選択します。

   または、[**戻る**] を選択して変更を編集するか、**キャンセル**を選択して変更をキャンセルします。

## AWS CLI
<a name="oracle-cdb-converting.cli"></a>

シングルテナント設定で DB インスタンス上の非 CDB を CDB に変換するには、AWS CLI コマンド [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) で `--engine` を `oracle-ee-cdb` または `oracle-se2-cdb` に設定します。詳細については、「[DB インスタンスの設定](USER_ModifyInstance.Settings.md)」を参照してください。

次の例では、*my-non-cdb* という名前の DB インスタンスを変換し、カスタムオプショングループとパラメータグループを指定します。コマンドは、Secrets Manager を使用したパスワード管理も有効にします。

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

```
aws rds modify-db-instance \
    --db-instance-identifier my-non-cdb \
    --engine oracle-ee-cdb \
    --option-group-name custom-option-group \
    --db-parameter-group-name custom-parameter-group \
    --manage-master-user-password
```
Windows の場合:  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-non-cdb ^
    --engine oracle-ee-cdb ^
    --option-group-name custom-option-group ^
    --db-parameter-group-name custom-parameter-group ^
    --manage-master-user-password
```

## RDS API
<a name="oracle-cdb-converting.api"></a>

非 CDB を CDB に変換するには、RDS API オペレーション [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) で `Engine` を指定します。

# シングルテナント設定からマルチテナント設定への変換
<a name="oracle-single-tenant-converting"></a>

RDS for Oracle CDB のアーキテクチャは、シングルテナント設定からマルチテナント設定に変更できます。変換前と変換後、CDB には 1 つのテナントデータベース (PDB) が含まれます。DB インスタンスのタグは、変換中に作成された最初のテナントデータベースに伝達されます。

開始する前に、IAM ポリシーにテナントデータベースを作成するアクセス許可があることを確認します。変換中、RDS for Oracle は次のメタデータを新しいテナントデータベースに移行します。
+ マスターユーザー名
+ マネージドマスターパスワード (ソース CDB が Secrets Manager と統合されている場合)
+  データベース名
+ 文字セット
+ 各国語文字セット

変換前に、`describe-db-instances` コマンドを使用して上記の情報を表示します。変換前は、`describe-tenant-database` コマンドを使用して上記の情報を表示できます。

シングルテナントからマルチテナントへの変換には、次の制限事項があります。
+ マルチテナント設定に変換した後、シングルテナント設定に戻すことはできません。この変換は元に戻せません。
+ Oracle Data Guardが有効になっているプライマリデータベースまたはレプリカデータベースは変換できません。
+ 同じオペレーションで DB エンジンのバージョンをアップグレードし、非 CDB を CDB に変換することはできません。
+ 変換中にマネージドマスターユーザーのパスワードを有効化または無効化することはできません。

## コンソール
<a name="oracle-cdb.configuring.converting.console"></a>

**シングルテナント設定を使用して CDB をマルチテナント設定に変換するには**

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

1. Amazon RDS コンソールの右上で、DB インスタンスのある AWS リージョン を選択します。

1. ナビゲーションペインで、**[データベース]** を選択し、CDB インスタンスに変更する 非 CDB インスタンスを選択します。

1. **[Modify]** (変更) を選択します。

1. **[アーキテクチャ設定]** では、**[Oracle マルチテナントアーキテクチャ]** を選択します。

1. **[アーキテクチャ設定]** で、**[マルチテナント設定]** を選択します。

1. (オプション) **[DB パラメータグループ]** には、CDB インスタンスの新しいパラメータグループを選択します。DB インスタンスを変換するときも、DB インスタンスをアップグレードするときと同じパラメータグループの考慮事項が適用されます。

1. (オプション) **[オプショングループ]** では、CDB インスタンスの新しいオプショングループを選択します。DB インスタンスを変換するときも、DB インスタンスをアップグレードするときと同じオプショングループの考慮事項が適用されます。

1. すべての変更が正しいことを確認したら、[**Continue**] を選択して変更の概要を確認します。

1. **[すぐに適用]** を選択します。このオプションは、マルチテナント設定に切り替えるときに必要です。このオプションを選択すると、ダウンタイムを発生させる場合があることに注意してください。

1. 確認ページで、変更内容を確認します。正しい場合は、**[DB インスタンスを変更]** を選択します。

   または、[**戻る**] を選択して変更を編集するか、**キャンセル**を選択して変更をキャンセルします。

## AWS CLI
<a name="oracle-cdb.configuring.converting.cli"></a>

シングルテナント設定を使用して CDB をマルチテナント設定に変換するには、AWS CLI コマンド [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) で `--multi-tenant` を指定します。

次の例では、`my-st-cdb` という名前の DB インスタンスをシングルテナント設定からマルチテナント設定に変換します。`--apply-immediately` オプションは必須です。

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

```
aws rds modify-db-instance --region us-east-1\
    --db-instance-identifier my-st-cdb \
    --multi-tenant \
    --apply-immediately
```
Windows の場合:  

```
aws rds modify-db-instance --region us-east-1 ^
    --db-instance-identifier my-st-cdb ^
    --multi-tenant ^
    --apply-immediately
```
出力は次のようになります。  

```
{
    "DBInstance": {
        "DBInstanceIdentifier": "my-st-cdb",
        "DBInstanceClass": "db.r5.large",
        "MultiTenant": false,
        "Engine": "oracle-ee-cdb",
        "DBResourceId": "db-AB1CDE2FGHIJK34LMNOPRLXTXU",
        "DBInstanceStatus": "modifying",
        "MasterUsername": "admin",
        "DBName": "ORCL",
        ...
        "EngineVersion": "19.0.0.0.ru-2022-01.rur-2022-01.r1",
        "AutoMinorVersionUpgrade": true,
        "ReadReplicaDBInstanceIdentifiers": [],
        "LicenseModel": "bring-your-own-license",
        "OptionGroupMemberships": [
            {
                "OptionGroupName": "default:oracle-ee-cdb-19",
                "Status": "in-sync"
            }
        ],
        ...
        "PendingModifiedValues": {
            "MultiTenant": "true"
        }
    }
}
```

# RDS for Oracle テナントデータベースを CDB インスタンスに追加する
<a name="oracle-cdb-configuring.adding.pdb"></a>

RDS for Oracle のマルチテナント設定で、テナントデータベースは PDB です。テナントデータベースを追加するには、次の前提条件を満たしていることを確認します。
+ CDB ではマルチテナント設定が有効になっています。詳細については、「[CDB アーキテクチャのマルチテナント設定](Oracle.Concepts.CDBs.md#multi-tenant-configuration)」を参照してください。
+ テナントデータベースを作成するのに必要な IAM アクセス権限があります。

AWS マネジメントコンソール、AWS CLI、または RDS API を使用してテナントデータベースを追加できます。1 回の操作で複数のテナントデータベースを追加することはできません。一度に 1 つずつ追加する必要があります。CDB でバックアップ保持が有効になっている場合、Amazon RDS は新しいテナントデータベースを追加する前後に DB インスタンスをバックアップします。CDB にリードレプリカがある場合は、プライマリ DB インスタンスにのみテナントデータベースを追加できます。Amazon RDS は、レプリカにテナントデータベースを自動的に作成します。レプリケーションの正常性も検証され、テナントが作成される前に、すべてのレプリカが利用可能であり、レプリケーションの遅延が 5 分未満であることが確認されます。

## コンソール
<a name="oracle-cdb-configuring.adding.pdb.console"></a>

**DB インスタンスにテナントデータベースを追加するには**

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

1. Amazon RDS コンソールの右上で、テナントデータベースを作成する AWS リージョン を選択します。

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

1. テナントデータベースを追加する CDB インスタンスを選択します。DB インスタンスは CDB アーキテクチャのマルチテナント設定を使用する必要があります。

1. **[アクション]** を選択し、**[テナントデータベースを追加]** を選択します。

1. **[テナントデータベース設定]** では、以下の操作を行います。
   + **[テナントデータベース名]** には、新しいデータベースの名前を入力します。
   + **[テナントデータベースのマスターユーザー名]** には、PDB のマスターユーザー名を入力します。
   + 次のいずれかの認証情報管理オプションを選択します。
     + ** で管理AWS Secrets Manager**

       **[暗号化キーを選択]** で、Secrets Manager によって作成される KMS キーと自分で作成したキーのいずれかを選択します。
**注記**  
認証情報を管理するための最も安全な手法として、AWS Secrets Manager をお勧めします。追加料金が適用されます。AWS Secrets Manager は、リードレプリカを使用するインスタンスではサポートされていません。詳細については、「[Amazon RDS および AWS Secrets Manager によるパスワード管理](rds-secrets-manager.md)」を参照してください。
     + **セルフマネージド**

       パスワードを指定するには、**[パスワードの自動生成]** チェックボックスが選択されている場合はクリアします。**[マスターパスワード]** と **[マスターパスワードを確認]** に同じパスワードを入力します。
     + **[追加設定]** で、**[初期データベース名]** に PDB の名前を入力します。デフォルト名の `RDSCDB` がある CDB  には名前を付けることはできません。
   + **[テナントデータベースの文字セット]** では、PDB の文字セットを選択します。デフォルトは **AL32UTF8** です。CDB 文字セットとは異なる PDB 文字セットを選択できます。インスタンスにリードレプリカがある場合、カスタム文字セットを使用してテナントを作成することはできません。必要に応じて、リードレプリカを作成する前に、カスタム文字セットを使用してテナントを作成できます。
   + **[テナント全国データベースの文字セット]** では、PDB の全国文字セットを選択します。デフォルトは **AL32UTF8** です。各国文字セットは、`NCHAR` データ型 (`NCHAR`、`NVARCHAR2` および `NCLOB`) を使用する列にのみエンコーディングを指定し、データベースのメタデータには影響しません。

   前の設定の詳細については、「[DB インスタンスの設定](USER_CreateDBInstance.Settings.md)」をご参照ください。

1. **[テナントの追加]** を選択します。

## AWS CLI
<a name="oracle-cdb-configuring.adding.pdb.cli"></a>

AWS CLI を使用して CDB にテナントデータベースを追加するには、[create-tenant-database](https://docs.aws.amazon.com/cli/latest/reference/rds/create-tenant-database.html) コマンドを使用し、次の必須パラメータを指定します。
+ `--db-instance-identifier`
+ `--tenant-db-name`
+ `--master-username`
+ `--master-user-password`

次の例では、RDS for Oracle CDB インスタンス *my-cdb-inst* に *mypdb2* という名前のテナントデータベースを作成します。PDB 文字セットは `UTF-16` です。

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

```
1. aws rds create-tenant-database --region us-east-1 \
2.     --db-instance-identifier my-cdb-inst \
3.     --tenant-db-name mypdb2 \
4.     --master-username mypdb2-admin \
5.     --master-user-password mypdb2-pwd \
6.     --character-set-name UTF-16
```
Windows の場合:  

```
1. aws rds create-tenant-database --region us-east-1 \
2.     --db-instance-identifier my-cdb-inst ^
3.     --tenant-db-name mypdb2 ^
4.     --master-username mypdb2-admin ^
5.     --master-user-password mypdb2-pwd ^
6.     --character-set-name UTF-16
```
出力は次の例のようになります。  

```
...}
    "TenantDatabase" :
         {
            "DbiResourceId" : "db-abc123",
            "TenantDatabaseResourceId" : "tdb-bac567",
            "TenantDatabaseArn" : "arn:aws:rds:us-east-1:123456789012:db:my-cdb-inst:mypdb2",
            "DBInstanceIdentifier" : "my-cdb-inst",
            "TenantDBName" : "mypdb2",
            "Status" : "creating",
            "MasterUsername" : "mypdb2",
            "CharacterSetName" : "UTF-16",
            ...
        }
}...
```

# RDS for Oracle テナントデータベースの変更
<a name="oracle-cdb-configuring.modifying.pdb"></a>

CDB 内のテナントデータベースは、PDB 名とマスターユーザーパスワードのみを変更できます。次の要件と制限事項に注意してください。
+ DB インスタンス内のテナントデータベースの設定を変更するには、テナントデータベースが存在していなければなりません。
+ 1 回の操作で、複数のテナントデータベースを変更することはできません。一度に変更できるテナントデータベースは 1 つのみです。
+ テナントデータベースの名前を `CDB$ROOT` または `PDB$SEED` に変更することはできません。
+ DB インスタンスにリードレプリカがある場合は、プライマリ DB インスタンスのテナントのみ変更できます。レプリケーションの正常性も検証され、テナントが変更される前にレプリカが利用可能で、レプリケーションの遅延が 5 分未満であることが確認されます。

PDBは、AWS マネジメントコンソール、AWS CLI、または RDS API を使用して変更できます。

## コンソール
<a name="oracle-cdb-configuring.modifying.pdb.console"></a>

**テナントデータベースの PDB 名またはマスターパスワードを変更するには**

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

1. Amazon RDS コンソールの右上で、テナントデータベースを作成する AWS リージョン を選択します。

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

1. データベース名またはマスターユーザーパスワードを変更したいテナントデータベースを選択します。

1. **[Modify]** (変更) を選択します。

1. **[テナントデータベース設定]** では、以下のいずれかの操作を行います。
   + **[テナントデータベース名]** には、新しいデータベースの新しい名前を入力します。
   + **[テナントデータベースのマスターパスワード]** に、新しいパスワードを入力します。

1. **[テナントの変更]** を選択します。

## AWS CLI
<a name="oracle-cdb-configuring.modifying.pdb.cli"></a>

AWS CLI を使用してテナントデータベースを変更するには、次のパラメータを指定して [modify-tenant-database](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-tenant-database.html) コマンドを呼び出します。
+ `--db-instance-identifier` *値*
+ `--tenant-db-name value`
+ `[--new-tenant-db-name value]`
+ `[--master-user-password value]`

次の例では、テナントデータベースの名前を DB インスタンス `my-cdb-inst` で `pdb1` から `pdb-hr` に変更します。

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

```
1. aws rds modify-tenant-database --region us-east-1 \
2.     --db-instance-identifier my-cdb-inst \
3.     --tenant-db-name pdb1 \
4.     --new-tenant-db-name pdb-hr
```
Windows の場合:  

```
1. aws rds modify-tenant-database --region us-east-1 ^
2.     --db-instance-identifier my-cdb-inst ^
3.     --tenant-db-name pdb1 ^
4.     --new-tenant-db-name pdb-hr
```
このコマンドでは、次のような出力が生成されます。  

```
{
    "TenantDatabase" : {
        "DbiResourceId" : "db-abc123",
        "TenantDatabaseResourceId" : "tdb-bac567",
        "TenantDatabaseArn" : "arn:aws:rds:us-east-1:123456789012:db:my-cdb-inst:pdb1",
        "DBInstanceIdentifier" : "my-cdb-inst",
        "TenantDBName" : "pdb1",
        "Status" : "modifying",
        "MasterUsername" : "tenant-admin-user"
        "Port" : "6555",
        "CharacterSetName" : "UTF-16",
        "MaxAllocatedStorage" : "1000",
        "ParameterGroups": [
            {
                "ParameterGroupName": "pdb1-params",
                "ParameterApplyStatus": "in-sync"
            }
        ],
        "OptionGroupMemberships": [
            {
                "OptionGroupName": "pdb1-options",
                "Status": "in-sync"
            }
        ],
        "PendingModifiedValues": {
            "TenantDBName": "pdb-hr"
        }
    }
}
```

# RDS for Oracle テナントデータベースを CDB から削除する
<a name="oracle-cdb-configuring.deleting.pdb"></a>

AWS マネジメントコンソール、AWS CLI、または RDS API を使用してテナントデータベース (PDB) を削除できます。次の前提条件と制限事項を検討してください。
+ テナントデータベースと DB インスタンスが存在している必要があります。
+ 削除を成功させるには、以下のいずれかの状況が存在している必要があります。
  + テナントデータベースと DB インスタンスが使用可能である。
**注記**  
最終スナップショットを作成できますが、`delete-tenant-database` コマンドを発行する前にテナントデータベースと DB インスタンスが使用可能な状態であった場合に限ります。このスナップショットは、DB インスタンスにリードレプリカがある場合にのみ、プライマリインスタンスで作成されます。
  + テナントデータベースを作成しています。
  + DB インスタンスはテナントデータベースを変更しています。
  + DB インスタンスにリードレプリカがある場合、これらの制約はすべてのレプリカに適用されます。
+ 1 回の操作で、複数のテナントデータベースを削除することはできません。
+ CDB 内のテナントが 1 つのみの場合、そのテナントデータベースは削除できません。
+ リードレプリカのテナントデータベースを削除することはできません。プライマリ DB インスタンスのテナントのみを削除できます。レプリケーションの正常性も検証され、テナントが削除される前にレプリケーションの遅延が 5 分未満であることが確認されます。

## コンソール
<a name="oracle-cdb-configuring.deleting.pdb.console"></a>

**テナントデータベースを削除するには**

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

1. ナビゲーションペインで、**[データベース]** を選択して、削除するテナントデータベースを選択します。

1. [**アクション**] で、[**削除**] を選択します。

1. DB インスタンスの最終 DB スナップショットを作成するには、[**最終スナップショットを作成しますか?**] を選択します。

1. 最終スナップショットの作成を選択した場合は、[**Final snapshot name (最終スナップショット名)**] を入力します。

1. ボックスに「**delete me**」と入力します。

1. **[削除]** を選択します。

## AWS CLI
<a name="oracle-cdb-configuring.deleting.pdb.cli"></a>

AWS CLI を使用してテナントデータベースを削除するには、次のパラメータを指定して [delete-tenant-database](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-tenant-database.html) コマンドを呼び出します。
+ `--db-instance-identifier value`
+ `--tenant-db-name value`
+ `[--skip-final-snapshot | --no-skip-final-snapshot]`
+ `[--final-snapshot-identifier value]`

*次の例では、my-cdb-inst という名前の CDB から *pdb-test* という名前のテナントデータベースを削除します。*デフォルトでは、この操作により最終スナップショットが作成されます。

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

```
1. aws rds delete-tenant-database --region us-east-1 \
2.     --db-instance-identifier my-cdb-inst \
3.     --tenant-db-name pdb-test \
4.     --final-snapshot-identifier final-snap-pdb-test
```
Windows の場合:  

```
1. aws rds delete-tenant-database --region us-east-1 ^
2.     --db-instance-identifier my-cdb-inst ^
3.     --tenant-db-name pdb-test ^
4.     --final-snapshot-identifier final-snap-pdb-test
```
このコマンドでは、次のような出力が生成されます。  

```
{
    "TenantDatabase" : {
        "DbiResourceId" : "db-abc123",
        "TenantDatabaseResourceId" : "tdb-bac456",
        "TenantDatabaseArn" : "arn:aws:rds:us-east-1:123456789012:db:my-cdb-inst:pdb-test",
        "DBInstanceIdentifier" : "my-cdb-inst",
        "TenantDBName" : "pdb-test",
        "Status" : "deleting",
        "MasterUsername" : "pdb-test-admin"
        "Port" : "6555",
        "CharacterSetName" : "UTF-16",
        "MaxAllocatedStorage" : "1000",
        "ParameterGroups": [
            {
                "ParameterGroupName": "tenant-1-params",
                "ParameterApplyStatus": "in-sync"
            }
        ],
        "OptionGroupMemberships": [
            {
                "OptionGroupName": "tenant-1-options",
                "Status": "in-sync"
            }
        ]
    }
}
```

# テナントデータベースの詳細を表示する
<a name="oracle-cdb-configuring.describing.pdb"></a>

テナントデータベースの詳細は、非 CDB や CDB の場合と同じ方法で表示できます。

## コンソール
<a name="oracle-cdb-configuring.describing.pdb.console"></a>

**テナントデータベースの詳細情報を表示するには**

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

1. Amazon RDS コンソールの右上で、DB インスタンスのある AWS リージョン を選択します。

1. ナビゲーションペインで、**[Databases]** (データベース) を選択します。  
![\[CDB の詳細を表示します。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/cdb-list.png)

   上の画像では、唯一のテナントデータベース (PDB) は DB インスタンスの子として表示されています。

1. テナントデータベースの名前を選択します。  
![\[PDB の詳細を表示します。\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/pdb-details.png)

## AWS CLI
<a name="oracle-cdb-configuring.describing.pdb.cli"></a>

[PDB に関する詳細情報を表示するには、AWS CLI コマンド describe-tenant-databases](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-tenant-databases.html) を使用してください。

次の例では、指定したリージョンのすべてのテナントデータベースについて説明しています。

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

```
1. aws rds describe-tenant-databases --region us-east-1
```
Windows の場合:  

```
1. aws rds describe-tenant-databases --region us-east-1
```
このコマンドでは、次のような出力が生成されます。  

```
    "TenantDatabases" : [
         {
            "DBInstanceIdentifier" : "my-cdb-inst",
            "TenantDBName" : "pdb-test",
            "Status" : "available",
            "MasterUsername" : "pdb-test-admin",
            "DbiResourceId" : "db-abc123",
            "TenantDatabaseResourceId" : "tdb-bac456",
            "TenantDatabaseArn" : "arn:aws:rds:us-east-1:123456789012:db:my-cdb-inst:pdb-test",
            "CharacterSetName": "AL32UTF8",
            "NcharCharacterSetName": "AL16UTF16",
            "DeletionProtection": false,
            "PendingModifiedValues": {
                 "MasterUserPassword": "****"
            },
            "TagList": []
         },
         {

            "DBInstanceIdentifier" : "my-cdb-inst2",
            "TenantDBName" : "pdb-dev",
            "Status" : "modifying",
            "MasterUsername" : "masterrdsuser"
            "DbiResourceId" : "db-xyz789",
            "TenantDatabaseResourceId" : "tdb-ghp890",
            "TenantDatabaseArn" : "arn:aws:rds:us-east-1:123456789012:db:my-cdb-inst2:pdb-dev",
            "CharacterSetName": "AL32UTF8",
            "NcharCharacterSetName": "AL16UTF16",
            "DeletionProtection": false,
            "PendingModifiedValues": {
                 "MasterUserPassword": "****"
            },
            "TagList": []
         },
         ... other truncated data
```

次の例では、2 番目のリージョンの DB インスタンス `my-cdb-inst` のテナントデータベースについて説明しています。

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

```
1. aws rds describe-tenant-databases --region us-east-1 \
2.     --db-instance-identifier my-cdb-inst
```
Windows の場合:  

```
1. aws rds describe-tenant-databases --region us-east-1 ^
2.     --db-instance-identifier my-cdb-inst
```
このコマンドでは、次のような出力が生成されます。  

```
{
    "TenantDatabase": {
        "TenantDatabaseCreateTime": "2023-10-19T23:55:30.046Z",
        "DBInstanceIdentifier": "my-cdb-inst",
        "TenantDBName": "pdb-hr",
        "Status": "creating",
        "MasterUsername": "tenant-admin-user",
        "DbiResourceId": "db-abc123",
        "TenantDatabaseResourceId": "tdb-bac567",
        "TenantDatabaseARN": "arn:aws:rds:us-west-2:579508833180:pdb-hr:tdb-abcdefghi1jklmno2p3qrst4uvw5xy6zabc7defghi8jklmn90op",
        "CharacterSetName": "AL32UTF8",
        "NcharCharacterSetName": "AL16UTF16",
        "DeletionProtection": false,
        "PendingModifiedValues": {
            "MasterUserPassword": "****"
        },
        "TagList": [
            {
                "Key": "TEST",
                "Value": "testValue"
            }
        ]
    }
}
```

次の例では、米国東部 (バージニア北部)リージョンの DB インスタンス `pdb1` のテナントデータベースについて説明しています。

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

```
1. aws rds describe-tenant-databases --region us-east-1 \
2. --db-instance-identifier my-cdb-inst \
3. --tenant-db-name pdb1
```
Windows の場合:  

```
1. aws rds describe-tenant-databases --region us-east-1 ^
2. --db-instance-identifier my-cdb-inst ^
3. --tenant-db-name pdb1
```
このコマンドでは、次のような出力が生成されます。  

```
{
    "TenantDatabases" : [
        {
            "DbiResourceId" : "db-abc123",
            "TenantDatabaseResourceId" : "tdb-bac567",
            "TenantDatabaseArn" : "arn:aws:rds:us-east-1:123456789012:db:my-cdb-inst:pdb1"
            "DBInstanceIdentifier" : "my-cdb-inst",
            "TenantDBName" : "pdb1",
            "Status" : "ACTIVE",
            "MasterUsername" : "masterawsuser"
            "Port" : "1234",
            "CharacterSetName": "UTF-8",
            "ParameterGroups": [
                {
                    "ParameterGroupName": "tenant-custom-pg",
                    "ParameterApplyStatus": "in-sync"
                }
            ],
            {
            "OptionGroupMemberships": [
                {
                    "OptionGroupName": "tenant-custom-og",
                    "Status": "in-sync"
                }
            ]
         }
    ]
}
```

# CDB のアップグレード
<a name="Oracle.Concepts.single-tenant.upgrades"></a>

CDB を別の Oracle Database リリースにアップグレードできます。例えば、Oracle Database 19c CDB から Oracle Database 21c CDB にアップグレードできます。アップグレード中にデータベースアーキテクチャを変更することはできません。そのため、非 CDB を CDB にアップグレードしたり、CDB を非 CDB にアップグレードすることはできません。

CDB を CDB にアップグレードする手順は、非 CDB を非 CDB にアップグレードする手順と同じです。詳細については、「[RDS for Oracle DB エンジンのアップグレード](USER_UpgradeDBInstance.Oracle.md)」を参照してください。