

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

# 在 RDS for Oracle 中使用儲存
<a name="User_Oracle_AdditionalStorage"></a>

每個 RDS for Oracle 執行個體都有一個主要儲存磁碟區。若要增加儲存容量，您最多可以將三個額外的儲存磁碟區連接至資料庫執行個體。根據您的工作負載需求，為每個磁碟區選擇 gp3 和 io2 儲存。例如，您可以將經常存取的資料放在 io2 磁碟區，並將歷史資料放在 gp3 磁碟區。

使用其他儲存磁碟區來啟用下列優點：
+ **增強容量** – 透過連接最多三個額外的儲存磁碟區，將每個資料庫執行個體的總儲存體擴展到 256 TiB。
+ **彈性儲存組態和效能最佳化** – 混合不同的儲存類型 (gp3 和 io2)，根據您的資料存取模式來最佳化成本和效能。將高效能 io2 儲存體上的經常存取資料與經濟實惠的 gp3 儲存體上的封存資料分開。
+ **視需要擴展和減少儲存容量** – 當您需要額外儲存時連接磁碟區，就像在資料遷移期間一樣，然後刪除磁碟區。透過這種方式，您可以擴展和減少總資料庫執行個體儲存體。
+ **線上資料移動** – 使用 Oracle 資料庫的內建功能，在不停機的情況下在磁碟區之間移動資料。

**注意**  
您可以移除其他儲存磁碟區，但無法移除主要磁碟區。

**Topics**
+ [

## 搭配 RDS for Oracle 使用其他儲存磁碟區的考量事項
](#User_Oracle_AdditionalStorage.considerations)
+ [

## 搭配 RDS for Oracle 使用其他儲存磁碟區的限制
](#User_Oracle_AdditionalStorage.limitations)
+ [

## RDS for Oracle 中具有其他儲存磁碟區的資料庫管理操作
](#User_Oracle_AdditionalStorage.DBManagement)
+ [

# 使用 RDS for Oracle 新增、移除或修改儲存磁碟區
](User_Oracle_AdditionalStorage.ModifyStorageVolumes.md)
+ [

# 使用 RDS for Oracle 中的其他儲存磁碟區來備份和還原資料
](User_Oracle_AdditionalStorage.BackupRestore.md)
+ [

# RDS for Oracle 中其他儲存磁碟區的使用案例
](User_Oracle_AdditionalStorage.UseCases.md)

## 搭配 RDS for Oracle 使用其他儲存磁碟區的考量事項
<a name="User_Oracle_AdditionalStorage.considerations"></a>

搭配 RDS for Oracle 使用其他儲存磁碟區時，請考慮下列事項：
+ 每個執行個體最多可以新增 3 個額外的儲存磁碟區。
+ 其他儲存磁碟區必須使用下列磁碟區名稱：
  + rdsdbdata2
  + rdsdbdata3
  + rdsdbdata4
+ 您只能新增一般用途 SSD (gp3) 和佈建 IOPS SSD (io2) 儲存類型。
+ 您可以使用 Oracle 的線上重新定位功能，在應用程式繼續執行時在磁碟區之間移動資料。
+ 當您透過修改資料庫執行個體來建立額外的儲存磁碟區時，RDS 會立即建立儲存磁碟區，無論排程修改設定為何。新增儲存磁碟區是線上操作，不會影響您的資料庫效能。請參閱 [使用排程修改設定](USER_ModifyInstance.ApplyImmediately.md)。

為了獲得最佳效能，當您使用其他儲存磁碟區時，請檢查下列項目：
+ 資料移動規劃
  + 在離峰時間排程大型移動
  + 將大型操作分成較小的區塊
  + 在移動期間監控系統資源
+ 資源管理
  + 在兩個磁碟區上保留足夠的可用空間
  + 使用 AWR 或 Statspack 監控 I/O 模式
  + 留意完整儲存案例
+ 最佳實務
  + 盡可能使用線上資料檔案重新定位操作
  + 維護適當的索引
  + 定期監控空間用量

搭配複本使用其他儲存磁碟區時：
+ 當您為具有其他儲存磁碟區的資料庫執行個體建立 RDS for Oracle 複本時，RDS 會自動在複本上設定其他儲存磁碟區。不過，在主要資料庫執行個體的儲存磁碟區中所做的任何後續修改都不會自動套用至複本。
+ 跨磁碟區管理資料檔案位置時，建議使用參數群組設定，而不是工作階段層級變更，以確保主要執行個體和複本執行個體之間的行為一致。

## 搭配 RDS for Oracle 使用其他儲存磁碟區的限制
<a name="User_Oracle_AdditionalStorage.limitations"></a>

下列限制適用於搭配 RDS for Oracle 使用其他儲存磁碟區：
+ 您無法將儲存磁碟區新增至記憶體小於 64GiB 的執行個體類型，因為它們沒有足夠的記憶體來支援大型儲存磁碟區。
+ 其他儲存磁碟區的最小儲存大小為 200GiB。資料庫執行個體的主要儲存磁碟區應等於或大於 200GiB，以連接額外的儲存磁碟區。在所有磁碟區中，資料庫執行個體的儲存大小上限為總計 256 TiB。
+ 具有其他儲存磁碟區的資料庫執行個體不支援下列功能：
  + 跨區域自動備份
  + 儲存體自動擴展 （適用於其他儲存磁碟區）
  + 跨帳戶快照複本
  + 公有快照
+ 您無法刪除主要儲存磁碟區 (`rdsdbdata`)，但您可以刪除其他額外的儲存磁碟區，只要它們是空的即可。
+ 您無法將線上重做日誌、封存的重做日誌和控制檔案存放在其他儲存磁碟區中。這些檔案只能存放在主要儲存磁碟區 () 中`rdsdbdata`。

## RDS for Oracle 中具有其他儲存磁碟區的資料庫管理操作
<a name="User_Oracle_AdditionalStorage.DBManagement"></a>

您可以執行資料庫管理操作，例如建立資料表空間或在儲存磁碟區之間移動資料，同時使用 RDS for Oracle 中的其他儲存磁碟區。如需使用其他儲存磁碟區進行資料庫管理操作的詳細資訊，請參閱下列各節：
+ [在 RDS for Oracle 中指定資料庫檔案位置](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.DatabaseFileLocations)
+ [在 RDS for Oracle 中建立和調整資料表空間的大小](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.CreatingTablespacesAndDatafiles)
+ [在 RDS for Oracle 中的磁碟區之間移動資料檔案](Appendix.Oracle.CommonDBATasks.MovingDataBetweenVolumes.md#Appendix.Oracle.CommonDBATasks.MovingDatafiles)

# 使用 RDS for Oracle 新增、移除或修改儲存磁碟區
<a name="User_Oracle_AdditionalStorage.ModifyStorageVolumes"></a>

您可以使用 AWS 管理主控台 或 新增、修改和移除其他儲存磁碟區 AWS CLI。所有操作都會搭配 `additional-storage-volumes` 參數使用 `modify-db-instance`命令。

**重要**  
新增或移除其他儲存磁碟區會建立備份待定動作和中斷時段。備份工作流程完成時，中斷時段會關閉。



## 新增儲存磁碟區
<a name="User_Oracle_AdditionalStorage.ModifyStorageVolumes.Add"></a>

除了主要儲存磁碟區之外，您最多可以新增三個儲存磁碟區。若要將新的儲存磁碟區新增至 RDS for Oracle 資料庫執行個體，請使用 `modify-db-instance`命令搭配 `additional-storage-volumes` 參數。

下列程式碼片段新增了 5，000 GiB 一般用途 SSD (gp3) 磁碟區，其中包含 4000 個佈建 IOPS 名稱 `rdsdbdata3`。

```
aws rds modify-db-instance \
  --db-instance-identifier my-oracle-instance \
  --region us-east-1 \
  --additional-storage-volumes '[
        {
            "VolumeName":"rdsdbdata3",
            "StorageType":"gp3",
            "AllocatedStorage":5000
            "IOPS":4000}
    ]' \
  --apply-immediately
```

## 修改儲存磁碟區
<a name="User_Oracle_AdditionalStorage.ModifyStorageVolumes.Modifying"></a>

您可以修改額外儲存磁碟區的儲存類型、配置的儲存大小、IOPS 和儲存輸送量設定。下列程式碼片段會修改`rdsdbdata2`磁碟區的 IOPS 設定。

```
aws rds modify-db-instance \
  --db-instance-identifier my-oracle-instance \
  --region us-east-1 \
  --additional-storage-volumes '[
        {
            "VolumeName":"rdsdbdata2",
            "IOPS":8000}
    ]' \
  --apply-immediately
```

**注意**  
將額外儲存磁碟區新增至執行個體後，就無法減少額外儲存磁碟區的儲存配置。

## 移除儲存磁碟區
<a name="User_Oracle_AdditionalStorage.ModifyStorageVolumes.Remove"></a>

不再需要儲存磁碟區時，您可以從 RDS for Oracle 資料庫執行個體中移除其他儲存磁碟區。在移除磁碟區之前，請確定您已從磁碟區移動所有資料庫檔案，而且沒有資料庫物件正在參考它。確認磁碟區狀態為 `Not-in-use`。您可以移除其他儲存磁碟區，但無法移除主要儲存磁碟區。

**警告**  
移除額外的儲存磁碟區之前，請確定磁碟區上沒有儲存資料庫檔案。移除具有作用中資料庫檔案的磁碟區會導致資料庫損毀。

下列範例會移除 `rdsdbdata4`磁碟區。

```
aws rds modify-db-instance \
  --db-instance-identifier my-oracle-instance \
  --region us-east-1 \
  --additional-storage-volumes '[
        {
            "VolumeName":"rdsdbdata2",
            "SetForDelete":true}
    ]' \
  --apply-immediately
```

# 使用 RDS for Oracle 中的其他儲存磁碟區來備份和還原資料
<a name="User_Oracle_AdditionalStorage.BackupRestore"></a>

您可以使用自動備份，並使用具有額外儲存磁碟區的資料庫執行個體建立資料庫快照。所有備份操作都包含主要磁碟區和其他儲存磁碟區。您也可以將資料庫執行個體的point-in-time復原與額外的儲存磁碟區搭配使用。還原資料庫時，您可以新增儲存磁碟區。您也可以修改現有磁碟區的儲存設定。當您從快照還原資料庫時，無法刪除其他儲存磁碟區。

**Topics**
+ [

## 建立手動快照
](#User_Oracle_AdditionalStorage.BackupRestore.ManualSnapshots)
+ [

## 還原手動快照
](#User_Oracle_AdditionalStorage.BackupRestore.RestoreSnapshots)
+ [

## 時間點復原
](#User_Oracle_AdditionalStorage.BackupRestore.PitR)

## 建立手動快照
<a name="User_Oracle_AdditionalStorage.BackupRestore.ManualSnapshots"></a>

下列範例會使用其他儲存磁碟區建立資料庫的手動快照：

```
aws rds create-db-snapshot \
--db-instance-identifier my-oracle-asv-instance \
--db-snapshot-identifier my-snapshot
```

## 還原手動快照
<a name="User_Oracle_AdditionalStorage.BackupRestore.RestoreSnapshots"></a>

從快照還原時，您可以新增新的其他儲存磁碟區，或修改現有磁碟區的 IOPS 或輸送量設定。下列範例會從快照還原資料庫執行個體，並修改`rdsdbdata2`磁碟區的 IOPS 設定：

```
aws rds restore-db-instance-from-db-snapshot \
  --db-instance-identifier my-restored-instance \
  --db-snapshot-identifier my-snapshot \
  --region us-east-1 \
  --additional-storage-volumes '[
        {
            "VolumeName":"rdsdbdata2",
            "IOPS":5000
        }
    ]'
```

## 時間點復原
<a name="User_Oracle_AdditionalStorage.BackupRestore.PitR"></a>

在point-in-time(PITR) 期間，您可以使用自訂組態新增額外的儲存磁碟區。下列範例會執行 PITR，並新增 5，000 GiB 一般用途 SSD (gp3)，其磁碟`rdsdbdata2`區的儲存輸送量為 5000 IOPS 和 200 MB/s：

```
aws rds restore-db-instance-to-point-in-time \
  --source-db-instance-identifier my-source-instancemy-source-instance \
  --target-db-instance my-pitr-instance\
  --use-latest-restorable-time \
  --region us-east-1 \
  --additional-storage-volumes '[
        {
            "VolumeName":"rdsdbdata2",
            "StorageType":"gp3",
            "AllocatedStorage":5000,
            "IOPS":5000,
            "StorageThroughput":200
        }
    ]'
```

# RDS for Oracle 中其他儲存磁碟區的使用案例
<a name="User_Oracle_AdditionalStorage.UseCases"></a>

其他儲存磁碟區支援各種資料庫管理案例。下列各節說明常見的使用案例和實作方法。

**Topics**
+ [

## 將儲存容量擴展到超過 64 TiB
](#User_Oracle_AdditionalStorage.UseCases.Extendingstoragecapacity)
+ [

## 不同磁碟區上經常和不常存取資料的儲存分層
](#User_Oracle_AdditionalStorage.UseCases.Storagetiering)
+ [

## 用於載入和卸載資料的暫時儲存
](#User_Oracle_AdditionalStorage.UseCases.Temporarystorage)
+ [

## 使用 Oracle 可傳輸資料表空間搭配額外的儲存磁碟區
](#User_Oracle_AdditionalStorage.UseCases.TransportableTablespaces)

## 將儲存容量擴展到超過 64 TiB
<a name="User_Oracle_AdditionalStorage.UseCases.Extendingstoragecapacity"></a>

當您的主要儲存磁碟區接近 64 TiB 限制，但資料庫中需要更多儲存空間時，您可以使用額外的儲存磁碟區。您可以使用 `modify-db-instance`命令，將額外的儲存磁碟區連接至資料庫執行個體，每個儲存磁碟區最多 64TiB。連接其他儲存磁碟區後，您可以在其他儲存磁碟區上建立資料表空間，並使用標準 Oracle SQL 將資料表、索引和分割區等物件移至這些資料表空間。如需詳細資訊，請參閱[RDS for Oracle 中具有其他儲存磁碟區的資料庫管理操作](User_Oracle_AdditionalStorage.md#User_Oracle_AdditionalStorage.DBManagement)。

## 不同磁碟區上經常和不常存取資料的儲存分層
<a name="User_Oracle_AdditionalStorage.UseCases.Storagetiering"></a>

您可以使用額外的儲存磁碟區，透過在磁碟區之間設定不同的儲存類型來最佳化成本和效能。例如，您可以將高效能佈建 IOPS SSD 儲存 (io2) 磁碟區用於經常存取的資料，同時在符合成本效益的一般用途 (gp3) 儲存磁碟區上儲存歷史資料。您可以使用標準 Oracle 命令，將特定資料庫物件 （資料表、索引和分割區） 移至這些資料表空間。如需詳細資訊，請參閱[RDS for Oracle 中具有其他儲存磁碟區的資料庫管理操作](User_Oracle_AdditionalStorage.md#User_Oracle_AdditionalStorage.DBManagement)。

## 用於載入和卸載資料的暫時儲存
<a name="User_Oracle_AdditionalStorage.UseCases.Temporarystorage"></a>

您可以透過下列步驟，使用額外的儲存磁碟區做為大型資料載入或匯出的暫時儲存：
+ 使用下列命令在其他儲存磁碟區上建立目錄：

  ```
  BEGIN
  rdsadmin.rdsadmin_util.create_directory(
              p_directory_name => 'DATA_PUMP_DIR2',
              p_database_volume_name => 'rdsdbdata2');
  END;
  /
  ```
+ 建立目錄之後，請依照中所述的步驟[使用 Oracle Data Pump 匯入](Oracle.Procedural.Importing.DataPump.md)，將您的資料匯出和匯入新目錄。
+ 操作完成後，移除檔案並選擇性地刪除磁碟區以節省儲存成本。您只能在磁碟區為空時移除額外的儲存磁碟區。

## 使用 Oracle 可傳輸資料表空間搭配額外的儲存磁碟區
<a name="User_Oracle_AdditionalStorage.UseCases.TransportableTablespaces"></a>

您可以使用額外的儲存磁碟區，透過下列步驟，使用 Oracle 可傳輸資料表空間將資料檔案移至額外的儲存磁碟區：
+ 在工作階段層級設定`db_create_file_dest`參數，然後再將可傳輸資料表空間匯入具有額外儲存磁碟區的目標資料庫。

  ```
  ALTER SESSION SET db_create_file_dest = '/rdsdbdata2/db';
  
  VAR x CLOB;
  
  BEGIN
  :x := rdsadmin.rdsadmin_transport_util.import_xtts_tablespaces(
  p_tablespace_list => 'TBTEST1',
  p_directory_name => 'XTTS_DIR_DATA2',
  p_platform_id => 13);
  END;
  /
  
  PRINT :x;
  ```
+ 檢查可傳輸資料表空間匯入狀態：

  ```
  ALTER SESSION SET nls_date_format = 'DD.MM.YYYY HH24:MI:SS';
  
  COL xtts_operation_start_utc FORMAT A30
  COL xtts_operation_end_utc FORMAT A30
  COL xtts_operation_state FORMAT A30
  COL xtts_operation_type FORMAT A30
  
  SELECT xtts_operation_start_utc, xtts_operation_type, xtts_operation_state
  FROM rdsadmin.rds_xtts_operation_info;
  ```
+ 當可傳輸資料表空間匯入完成時，匯入可傳輸資料表空間中繼資料。

  ```
  BEGIN
  rdsadmin.rdsadmin_transport_util.import_xtts_metadata(
  p_datapump_metadata_file => 'xttdump.dmp',
  p_directory_name => 'XTTS_DIR_DATA2');
  END;
  /
  ```