

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

# 將 RDS for Oracle 非 CDB 轉換為 CDB
<a name="oracle-cdb-converting"></a>

您可以使用 `modify-db-instance` 命令，將 Oracle 資料庫的架構從非 CDB 架構變更為 Oracle 多租用戶架構 (也稱為 *CDB 架構*)。多數情況下，此技術的效果優於建立新的 CDB 並匯入資料。轉換操作會產生停機時間。

升級資料庫引擎版本時，您無法在相同的操作中變更資料庫架構。因此，若要將 Oracle 資料庫 19c 非 CDB 升級為 Oracle 資料庫 21c CDB，您首先需要以一個步驟將非 CDB 轉換為 CDB，然後以個別步驟將 19c CDB 升級至 21c CDB。

非 CDB 轉換操作需求如下：
+ 您必須為資料庫引擎類型指定 `oracle-ee-cdb` 或 `oracle-se2-cdb`。只有這些值才受支援。
+ 您的資料庫引擎必須使用具有 2021 年 4 月或更晚版本更新 (RU) 的 Oracle Database 19c。

此操作具有下列限制：
+ 您無法將 CDB 轉換為非 CDB。您無法將非 CDB 轉換為 CDB。
+ 您無法在單一 `modify-db-instance` 呼叫中將非 CDB 轉換為多租戶組態。在您將非 CDB 轉換為 CDB 之後，您的 CDB 會處於單一租戶組態中。若要將單一租戶組態轉換為多租戶組態，請再次執行 `modify-db-instance`。如需詳細資訊，請參閱 [將單一租戶組態轉換為多租戶](oracle-single-tenant-converting.md)。
+ 您無法轉換已啟用 Oracle Data Guard 的主要或複本資料庫。若要轉換具有僅供讀取複本的非 CDB，請先刪除所有僅供讀取複本。
+ 您不能升級資料庫引擎版本，並在相同操作中將非 CDB 轉換為 CDB。

轉換非 CDB 之前，請考量下列事項：
+ 對於選項和參數群組的考量與升級資料庫引擎的考量相同。如需詳細資訊，請參閱 [Oracle Database 升級考量](USER_UpgradeDBInstance.Oracle.OGPG.md)。
+ 您可以在單一操作中，將使用受管主要密碼的現有非 CDB 執行個體轉換為單一租用戶執行個體。單一租用戶執行個體會繼承受管密碼。
+ 如果您的資料庫執行個體已安裝 `OEMAGENT` 選項，最佳實務是先移除此選項再轉換非 CDB。將非 CDB 轉換為 CDB 之後，再重新安裝該選項。如需詳細資訊，請參閱 [適用於 Enterprise Manager Cloud Control 的 Oracle Management Agent](Oracle.Options.OEMAgent.md)。
+ 在轉換過程中，RDS 會將線上重做日誌大小重設為預設的 128M。

## 主控台
<a name="oracle-cdb-converting.console"></a>

**將非 CDB 轉換為 CDB 的方法如下**

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

1. 在 Amazon RDS 主控台的右上角，選擇資料庫執行個體所在的 AWS 區域。

1. 在導覽窗格中選擇**資料庫**，然後選擇要將其轉換為 CDB 執行個體的非 CDB 執行個體。

1. 選擇 **Modify** (修改)。

1. 對於**架構設定**，選取 **Oracle 多租戶架構**。轉換後，您的 CDB 將處於單一租戶組態中。

1. (選用)對於**資料庫參數群組**，請為 CDB 執行個體選擇新的參數群組。在轉換資料庫執行個體時，也需要考慮與升級資料庫執行個體時相同的參數群組。如需詳細資訊，請參閱 [參數群組考量](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.PG)。

1. (選用) 在 **目標選項群組** 中，為 CDB 執行個體選擇新的選項群組。在轉換資料庫執行個體時，也需要考慮與升級資料庫執行個體時相同的選項群組。如需詳細資訊，請參閱 [選項群組考量](USER_UpgradeDBInstance.Oracle.OGPG.md#USER_UpgradeDBInstance.Oracle.OGPG.OG)。

1. (選用) 針對**憑證管理**，選擇**管理者為 AWS Secrets Manager** 或**自我管理**。如需詳細資訊，請參閱 [使用 Secrets Manager 管理資料庫執行個體的主要使用者密碼](rds-secrets-manager.md#rds-secrets-manager-db-instance)。

1. 當所有變更都如您所願時，請選擇 **Continue (繼續)** 並查看修改摘要。

1. (選用) 選擇 **Apply immediately (立即套用)** 以立即套用變更。在某些情況下，選擇此選項會導致停機。如需詳細資訊，請參閱 [使用排程修改設定](USER_ModifyInstance.ApplyImmediately.md)。

1. 在確認頁面上，檢閱您的變更。如果都正確，請選擇**修改資料庫執行個體**。

   或者，選擇 **Back (上一步)** 以編輯變更，或是選擇 **Cancel (取消)** 以取消變更。

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

若要在單一租戶組態中將資料庫執行個體上的非 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`。如需詳細資訊，請參閱 [資料庫執行個體的設定](USER_ModifyInstance.Settings.md)。

下列範例轉換了名為 *my-non-cdb* 的資料庫執行個體，並指定自訂選項群組和參數群組。命令也會使用 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`。