

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

設定 CDB 的方法類似於設定非 CDB。

**Topics**
+ [建立 RDS for Oracle 資料庫執行個體](#Oracle.Concepts.single-tenant.creation)
+ [在 RDS for Oracle CDB 中連線至 PDB](#Oracle.Concepts.connecting.pdb)

## 建立 RDS for Oracle 資料庫執行個體
<a name="Oracle.Concepts.single-tenant.creation"></a>

在 RDS for Oracle 中，建立 CDB 執行個體的方式與建立非 CDB 執行個體幾近相同。不同之處在於，建立資料庫執行個體時您選擇 Oracle 多租戶架構，而且也選擇架構組態：多租戶或單一租戶。如果您在多租戶組態中建立 CDB 時建立標籤，RDS 會將標籤傳播到初始租戶資料庫。若要建立 CDB，請使用 AWS 管理主控台 AWS CLI、 或 RDS API。

### 主控台
<a name="Oracle.Concepts.single-tenant.creation.console"></a>

**建立 CDB 執行個體**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)：// 開啟 Amazon RDS 主控台。

1. 在 Amazon RDS 主控台的右上角，選擇您要在 AWS 區域 其中建立 CDB 執行個體的 。

1. 在導覽窗格中，選擇 **Databases** (資料庫)。

1. 選擇 **Create database** (建立資料庫)。

1. 在 **Choose a database creation method (選擇資料庫建立方法)** 中，選取 **Standard Create (標準建立)**。

1. 在 **Engine options (引擎選項)** 中，選擇 **Oracle (Oracle)**。

1. 請為**資料庫管理類型**選擇 **Amazon RDS**。

1. 對於**架構設定**，選擇**Oracle 多租戶架構**。

1. 對於**架構組態**，請執行下列任一動作：
   + 選擇**多租戶組態**，然後繼續進行下一個步驟。
   + 選擇**單一租戶組態**，然後跳至步驟 11。

1. (多租戶組態) 對於**租戶資料庫設定**，請進行下列變更：
   + 對於**租戶資料庫名稱**，輸入初始 PDB 的名稱。PDB 名稱必須與 CDB 名稱 (預設為 `RDSCDB`) 不同。
   + 對於**租戶資料庫主要使用者名稱**，輸入 PDB 的主要使用者名稱。您不能使用租戶資料庫主要使用者名稱登入 CDB 本身。
   + 針對**憑證管理**，選擇下列其中一個憑證管理選項：
     + **在 中受管 AWS Secrets Manager**

       受管密碼用於初始租用戶資料庫，而非執行個體。在**選取加密金鑰中**，選擇 Secrets Manager 建立的 KMS 金鑰或您建立的金鑰。
**注意**  
我們建議將 AWS Secrets Manager 作為管理憑證的最安全技術。需支付額外費用。如需詳細資訊，請參閱[使用 Amazon RDS 和 進行密碼管理 AWS Secrets Manager](rds-secrets-manager.md)。
     + **自我管理**

       若要指定密碼，請清除**自動產生密碼**核取方塊 (如果已選取)。在**主要密碼**和**確認密碼**中輸入相同的密碼。
   + 對於**租用戶資料庫字元集**，選擇 PDB 的字元集。您可以選擇不同於 CDB 字元集的租戶資料庫字元集。

     預設的 PDB 字元集為 **AL32UTF8**。如果您選擇非預設的 PDB 字元集，CDB 的建立速度可能會變慢。
**注意**  
您無法在建立操作中指定多個租用戶資料庫。CDB 在建立後會有一個 PDB。您可以在個別操作中將 PDB 新增至現有的 CDB。

1. (單一租用戶組態) 根據 [資料庫執行個體的設定](USER_CreateDBInstance.Settings.md) 中列出的選項選擇您所需的設定。

   1. 在 **Settings (設定)** 區段，開啟 **Credential Settings (登入資料設定)**。然後執行下列動作：

     1. 在**主要使用者名稱**中，輸入 PDB 中本機使用者的名稱。您不能使用主要使用者名稱登入 CDB 根目錄。

     1. 針對**憑證管理**，選擇下列其中一個憑證管理選項：
        + **在 中受管 AWS Secrets Manager**

          在**選取加密金鑰中**，選擇 Secrets Manager 建立的 KMS 金鑰或您建立的金鑰。
**注意**  
我們建議將 AWS Secrets Manager 作為管理憑證的最安全技術。需支付額外費用。如需詳細資訊，請參閱[使用 Amazon RDS 和 進行密碼管理 AWS Secrets Manager](rds-secrets-manager.md)。
        + **自我管理**

          若要指定密碼，請清除**自動產生密碼**核取方塊 (如果已選取)。在**主要密碼**和**確認密碼**中輸入相同的密碼。

1. 在其餘區段，指定資料庫執行個體的設定。如需每個設定的相關資訊，請參閱[資料庫執行個體的設定](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`

如需每項設定的相關資訊，請參閱 [資料庫執行個體的設定](USER_CreateDBInstance.Settings.md)。

下列範例會在多租戶組態中建立一個名為 *my-cdb-inst* 的 RDS for Oracle 資料庫執行個體。如果您指定 `--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 來建立資料庫執行個體，請呼叫 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) 操作。

如需每項設定的相關資訊，請參閱 [資料庫執行個體的設定](USER_CreateDBInstance.Settings.md)。

## 在 RDS for Oracle CDB 中連線至 PDB
<a name="Oracle.Concepts.connecting.pdb"></a>

您可以使用像 SQL\$1Plus 之類的公用程式連線至 PDB。若要下載包含獨立版 SQL\$1Plus 的 Oracle 即時用戶端，請參閱 [Oracle 即時用戶端下載](https://www.oracle.com/database/technologies/instant-client/downloads.html)。

您需要下列資訊才能將 SQL\$1Plus 連線至 PDB：
+ PDB 名稱
+ 資料庫使用者名稱和密碼
+ 資料庫執行個體的端點
+ 連接埠號碼

如需了解如何尋找上述資訊，請參閱 [尋找您的 RDS for Oracle 資料庫執行個體的端點](USER_Endpoint.md)。

**Example 使用 SQL\$1Plus 連線至 PDB 的方法如下**  
在下列範例中，將 *master\$1user\$1name* 替換為您的主要使用者。同時，將 endpoint (端點) 替換為您的資料庫執行個體，然後包含連接埠號碼和 Oracle SID。SID 值是您在建立資料庫執行個體時指定的 PDB 名稱，而非資料庫執行個體識別碼。  
針對 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>
```

**注意**  
簡短的格式連接字串 (Easy connect 或 EZCONNECT)，例如 `sqlplus username/password@LONGER-THAN-63-CHARS-RDS-ENDPOINT-HERE:1521/database-identifier`，可能遇到最大字元限制，因此不應用來連接。