

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

# 設定進階 RDS for Oracle 功能
<a name="CHAP_Oracle.advanced-features"></a>

RDS for Oracle 支援各種進階功能，包括 HugePages、執行個體儲存體和延伸資料類型。

**Topics**
+ [將暫存資料存放在 RDS for Oracle 執行個體儲存體中](CHAP_Oracle.advanced-features.instance-store.md)
+ [對 RDS for Oracle 執行個體開啟巨型分頁](Oracle.Concepts.HugePages.md)
+ [在 RDS for Oracle 中開啟擴充資料類型](Oracle.Concepts.ExtendedDataTypes.md)

# 將暫存資料存放在 RDS for Oracle 執行個體儲存體中
<a name="CHAP_Oracle.advanced-features.instance-store"></a>

在支援的 RDS for Oracle DB 資料庫執行個體類別上，將執行個體儲存體用於暫存資料表空間和資料庫智慧型快閃記憶體快取 (快閃記憶體快取)。

**Topics**
+ [RDS for Oracle 執行個體儲存體的概觀](#CHAP_Oracle.advanced-features.instance-store.overview)
+ [開啟 RDS for Oracle 執行個體儲存體](#CHAP_Oracle.advanced-features.instance-store.Enable)
+ [設定 RDS for Oracle 執行個體儲存體](CHAP_Oracle.advanced-features.instance-store.configuring.md)
+ [使用 Oracle 僅供讀取複本上的執行個體儲存體](CHAP_Oracle.advanced-features.instance-store.replicas.md)
+ [在執行個體儲存體和 Amazon EBS 上設定暫存資料表空間群組](CHAP_Oracle.advanced-features.instance-store.temp-ebs.md)
+ [移除 RDS for Oracle 執行個體儲存體](#CHAP_Oracle.advanced-features.instance-store.Disable)

## RDS for Oracle 執行個體儲存體的概觀
<a name="CHAP_Oracle.advanced-features.instance-store.overview"></a>

「執行個體儲存體」**為 RDS for Oracle 資料庫執行個體提供暫時的區塊層級儲存體。您可以使用執行個體儲存體來暫時儲存經常變更的資訊。

執行個體儲存體是以實際連接至主機電腦的非揮發性記憶體儲存裝置 (NVMe) 為基礎。此儲存體已針對低延遲、隨機 I/O 效能，以及循序讀取輸送量進行最佳化。

執行個體儲存體的大小會因資料庫執行個體類型而有所不同。如需執行個體儲存體的詳細資訊，請參閱《適用於 Linux 執行個體的 Amazon Elastic Compute Cloud 使用者指南》**中的 [Amazon EC2 執行個體儲存體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html)。

**Topics**
+ [RDS for Oracle 執行個體儲存體中的資料類型](#CHAP_Oracle.advanced-features.instance-store.overview.uses)
+ [RDS for Oracle 執行個體儲存體的好處](#CHAP_Oracle.advanced-features.instance-store.overview.benefits)
+ [RDS for Oracle 執行個體儲存體支援的執行個體類別](#CHAP_Oracle.advanced-features.instance-store.overview.instance-classes)
+ [RDS for Oracle 執行個體儲存體支援的引擎版本](#CHAP_Oracle.advanced-features.instance-store.overview.db-versions)
+ [AWS 區域 支援 RDS for Oracle 執行個體存放區](#CHAP_Oracle.advanced-features.instance-store.overview.regions)
+ [RDS for Oracle 執行個體儲存體的成本](#CHAP_Oracle.advanced-features.instance-store.overview.cost)

### RDS for Oracle 執行個體儲存體中的資料類型
<a name="CHAP_Oracle.advanced-features.instance-store.overview.uses"></a>

您可以將下列類型的 RDS for Oracle 暫存資料放置在執行個體儲存體中：

暫存資料表空間  
Oracle 資料庫會使用暫存資料表空間，存放不適合記憶體的中繼查詢結果。較大的查詢可能會產生大量中繼資料，這些資料需要暫時快取，但不需要持續存在。尤其，暂存資料表空間對於排序、雜湊彙總和聯結很有用。如果 RDS for Oracle 資料庫執行個體使用企業版或標準版 2，您可以在執行個體儲存體中放置暫存資料表空間。

快閃記憶體快取  
快閃記憶體快取可改善傳統路徑中單一區塊隨機讀取的效能。最佳實務是調整快取的大小，以容納大部分的作用中資料集。如果 RDS for Oracle 資料庫執行個體使用企業版，您可以在執行個體儲存體中放置快閃記憶體快取。

根據預設，執行個體儲存體會針對暫存資料表空間設定，但不會針對快閃記憶體快取設定。您無法在執行個體儲存體中放置 Oracle 資料檔和資料庫日誌檔。

### RDS for Oracle 執行個體儲存體的好處
<a name="CHAP_Oracle.advanced-features.instance-store.overview.benefits"></a>

您可能會考慮使用執行個體儲存體，存放可能遺失的暫存檔案和快取。如果您想要改善資料庫效能，或是如果不斷增加的工作負載導致 Amazon EBS 儲存體發生效能問題，請考慮擴展到支援執行個體儲存體的執行個體類別。

將暫存資料表空間和快閃記憶體快取放置在執行個體儲存體上，您可以獲得下列好處：
+ 較低的讀取延遲
+ 較高的輸送量
+ 減少 Amazon EBS 磁碟區的負載
+ 降低 Amazon EBS 負載，因為減少了 Amazon EBS 負載
+ 更不需要佈建高 IOPS，可能會降低整體成本

 將暫存資料表空間放置在執行個體儲存體上，您可以立即提升使用暫存空間的查詢效能。將快閃記憶體快取放置在執行個體儲存體時，快取區塊讀取的延遲通常比 Amazon EBS 讀取的延遲低得多。快閃記憶體快取必須先「熱身」，然後才能提供效能優勢。快取會自行熱身，因為資料庫會在區塊老化而離開資料庫緩衝區快取時，將這些區塊寫入至快閃記憶體快取。

**注意**  
在某些情況下，快閃記憶體快取會由於快取管理而造成效能負荷。在生產環境中開啟快閃記憶體快取之前，建議您先分析工作負載並在測試環境中測試快取。

### RDS for Oracle 執行個體儲存體支援的執行個體類別
<a name="CHAP_Oracle.advanced-features.instance-store.overview.instance-classes"></a>

Amazon RDS 支援下列資料庫執行個體類別的執行個體儲存體：
+ db.m5d
+ db.m6id
+ db.r5d
+ db.r6id
+ db.x2idn
+ db.x2iedn

RDS for Oracle 僅支援 BYOL 授權模式的上述資料庫執行個體類別。如需詳細資訊，請參閱[支援的 RDS for Oracle 資料庫執行個體類別](Oracle.Concepts.InstanceClasses.md#Oracle.Concepts.InstanceClasses.Supported)及[EE 和 SE2 的自帶授權 (BYOL)](Oracle.Concepts.Licensing.md#Oracle.Concepts.Licensing.BYOL)。

若要查看支援的資料庫執行個體類型的總執行個體儲存體，請在 CLI AWS 中執行下列命令。

**Example**  

```
aws ec2 describe-instance-types \
  --filters "Name=instance-type,Values=*5d.*large*,*6id.*large*" \
  --query "InstanceTypes[?contains(InstanceType,'m5d')||contains(InstanceType,'r5d')||contains(InstanceType,'m6id')||contains(InstanceType,'r6id')][InstanceType, InstanceStorageInfo.TotalSizeInGB]" \
  --output table
```

上述命令會傳回執行個體儲存體的原始裝置大小。RDS for Oracle 會將這個空間的一小部分用於組態。執行個體儲存體中可供暫存資料表空間或快閃記憶體快取使用的空間略小。

### RDS for Oracle 執行個體儲存體支援的引擎版本
<a name="CHAP_Oracle.advanced-features.instance-store.overview.db-versions"></a>

下列 RDS for Oracle 引擎版本支援執行個體儲存體。
+ 21.0.0.0.ru-2022-01.rur-2022-01.r1 或更高的 Oracle Database 21c 版本
+ 19.0.0.0.ru-2021-10.rur-2021-10.r1 或更高的 Oracle Database 19c 版本

### AWS 區域 支援 RDS for Oracle 執行個體存放區
<a name="CHAP_Oracle.advanced-features.instance-store.overview.regions"></a>

執行個體存放區可在支援一或多個這些執行個體類型的所有 AWS 區域 中使用。如需 db.m5d 和 db.r5d 執行個體類別的詳細資訊，請參閱 [ 資料庫執行個體類別](Concepts.DBInstanceClass.md)。如需 Amazon RDS for Oracle 支援之執行個體類別的詳細資訊，請參閱 [RDS for Oracle 資料庫執行個體類別](Oracle.Concepts.InstanceClasses.md)。

### RDS for Oracle 執行個體儲存體的成本
<a name="CHAP_Oracle.advanced-features.instance-store.overview.cost"></a>

執行個體儲存體的成本內建於執行個體儲存體開啟的執行個體成本中。在 RDS for Oracle 資料庫執行個體上啟用執行個體儲存體，不會產生額外成本。如需執行個體儲存體開啟的執行個體的詳細資訊，請參閱 [RDS for Oracle 執行個體儲存體支援的執行個體類別](#CHAP_Oracle.advanced-features.instance-store.overview.instance-classes)。

## 開啟 RDS for Oracle 執行個體儲存體
<a name="CHAP_Oracle.advanced-features.instance-store.Enable"></a>

若要開啟 RDS for Oracle 暫存資料的執行個體儲存體，請執行下列其中一個動作：
+ 使用支援的執行個體類別建立 RDS for Oracle 資料庫執行個體。如需詳細資訊，請參閱[建立 Amazon RDS 資料庫執行個體](USER_CreateDBInstance.md)。
+ 修改現有的 RDS for Oracle 資料庫執行個體來使用支援的執行個體類別。如需詳細資訊，請參閱[修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

# 設定 RDS for Oracle 執行個體儲存體
<a name="CHAP_Oracle.advanced-features.instance-store.configuring"></a>

根據預設，100% 的執行個體儲存體空間會配置給暫存資料表空間。若要設定執行個體儲存體，將空間配置給快閃記憶體快取和暫存資料表空間，請在執行個體的參數群組中設定下列參數：

**db\$1flash\$1cache\$1size=\$1DBInstanceStore\$1\$10,2,4,6,8,10\$1/10\$1**  
此參數指定配置給快閃記憶體快取的儲存空間量。此參數僅適用於 Oracle 資料庫企業版。預設值為 `{DBInstanceStore*0/10}`。如果您為 `db_flash_cache_size` 設定非零值，則您的 RDS for Oracle 執行個體會在重新啟動執行個體之後啟用快閃記憶體快取。

**rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$1\$10,2,4,6,8,10\$1/10\$1**  
此參數指定配置給暫存資料表空間的儲存空間量。預設值為 `{DBInstanceStore*10/10}`。此參數對 Oracle 資料庫企業版而言是可修改的，對於標準版 2 而言則是唯讀的。如果您為 `rds.instance_store_temp_size` 設定非零值，Amazon RDS 會在執行個體儲存體中為暫存資料表空間配置空間。  
您可以針對不使用執行個體儲存體的資料庫執行個體設定 `db_flash_cache_size` 和 `rds.instance_store_temp_size` 參數。在此情況下，這兩個設定都會評估為 `0`，這會關閉功能。在此情況下，您可以針對不同的執行個體大小和未使用執行個體儲存體的執行個體使用相同的參數群組。如果您修改這些參數，請務必重新啟動相關聯的執行個體，以便變更可以生效。  
如果您為暫存資料表空間配置空間，則 Amazon RDS 不會自動建立暫存資料表空間。若要了解如何在執行個體儲存體上建立暫存資料表空間，請參閱 [在執行個體儲存體上建立暫存資料表空間](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.creating-tts-instance-store)。

上述參數的合併值不得超過 10/10 或 100%。下表說明有效和無效的參數設定。


| db\$1flash\$1cache\$1size setting | rds.instance\$1store\$1temp\$1size setting | 說明 | 
| --- | --- | --- | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$10/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$110/10\$1  |  這是所有 Oracle 資料庫版本的有效組態。Amazon RDS 會將 100% 的執行個體儲存體空間配置給暫存資料表空間。此為預設值。  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$110/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$10/10\$1  |  這是僅適用於 Oracle 資料庫企業版的組態。Amazon RDS 會將 100% 的執行個體儲存體空間配置給快閃記憶體快取。  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$12/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$18/10\$1  |  這是僅適用於 Oracle 資料庫企業版的組態。Amazon RDS 會將 20% 的執行個體儲存體空間配置給快閃記憶體快取，而將 80% 的執行個體儲存體空間配置給暫存資料表空間。  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$16/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$14/10\$1  |  這是僅適用於 Oracle 資料庫企業版的組態。Amazon RDS 會將 60% 的執行個體儲存體空間配置給快閃記憶體快取，而將 40% 的執行個體儲存體空間配置給暫存資料表空間。  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$12/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$14/10\$1  | 這是僅適用於 Oracle 資料庫企業版的組態。Amazon RDS 會將 20% 的執行個體儲存體空間配置給快閃記憶體快取，而將 40% 的執行個體儲存體空間配置給暫存資料表空間。 | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$18/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$18/10\$1  |  這是無效的組態，因為執行個體儲存體空間的合併百分比超過 100%。在此情況下，Amazon RDS 無法嘗試。  | 

## 變更資料庫執行個體類型時的考量
<a name="CHAP_Oracle.advanced-features.instance-store.configuring.modifying"></a>

如果您變更資料庫執行個體類型，其可能會影響快閃記憶體快取的組態或執行個體儲存體上的暫存資料表空間。請考慮下列修改及其影響：

**您可以針對支援執行個體儲存體的資料庫執行個體進行縱向擴展或縮減規模。**  
下列值會隨著執行個體儲存體的新大小，按比例增加或減少：  
+ 快閃記憶體快取的新大小。
+ 配置給位於執行個體儲存體之暫存資料表空間的空間。
例如，db.m5d.4xlarge 執行個體上的設定 `db_flash_cache_size={DBInstanceStore*6/10}` 會提供約 340 GB 的快閃記憶體快取空間。如果您將執行個體類型縱向擴展至 db.m5d.8xlarge，快閃記憶體快取空間會增加到 約 680 GB。

**您可以將不使用執行個體儲存體的資料庫執行個體修改為確實使用執行個體儲存體的執行個體。**  
如果 `db_flash_cache_size` 設定為大於 `0` 的值，則會設定快閃記憶體快取。如果 `rds.instance_store_temp_size` 設定為大於 `0` 的值，則會配置執行個體儲存體空間，供暫存資料表空間使用。RDS for Oracle 不會自動將暫存檔移至執行個體儲存體。如需使用所配置空間的相關資訊，請參閱 [在執行個體儲存體上建立暫存資料表空間](Appendix.Oracle.CommonDBATasks.TablespacesAndDatafiles.md#Appendix.Oracle.CommonDBATasks.creating-tts-instance-store) 或 [將暫存檔新增至僅供讀取複本上的執行個體儲存體](Appendix.Oracle.CommonDBATasks.using-tempfiles.md#Appendix.Oracle.CommonDBATasks.adding-tempfile-replica)。

**您可以將使用執行個體儲存體的資料庫執行個體修改為不使用執行個體儲存體的執行個體。**  
在此情況下，RDS for Oracle 會移除快閃記憶體快取。RDS 會重新建立目前位於 Amazon EBS 磁碟區上執行個體儲存體的暫存檔。新暫存檔的大小上限是 `rds.instance_store_temp_size` 參數的先前大小。

# 使用 Oracle 僅供讀取複本上的執行個體儲存體
<a name="CHAP_Oracle.advanced-features.instance-store.replicas"></a>

僅供讀取複本支援執行個體儲存體上的快閃記憶體快取和暫存資料表空間。雖然快閃記憶體快取的運作方式與主要資料庫執行個體相同，但請注意下列暫存資料表空間的差異：
+ 您無法在僅供讀取複本上建立暫存資料表空間。如果您在主要執行個體上建立新的暫存資料表空間，RDS for Oracle 會複寫不含暫存檔的資料表空間資訊。若要新增暫存檔，請使用下列任一技巧：
  + 使用 Amazon RDS 程序 `rdsadmin.rdsadmin_util.add_inst_store_tempfile` RDS for Oracle 會在僅供讀取複本的執行個體儲存體中建立暫存檔，並將其新增至指定的暫存資料表空間。
  + 執行 `ALTER TABLESPACE … ADD TEMPFILE` 命令。RDS for Oracle 將暫存檔放置在 Amazon EBS 儲存體上。
**注意**  
主要資料庫執行個體和僅供讀取複本上的暫存檔大小和儲存類型可能不同。
+ 您只能在主要資料庫執行個體上管理預設暫存資料表空間設定。RDS for Oracle 會將設定複寫到所有僅供讀取複本。
+ 您只能在主要資料庫執行個體上設定暫存資料表空間群組。RDS for Oracle 會將設定複寫到所有僅供讀取複本。

# 在執行個體儲存體和 Amazon EBS 上設定暫存資料表空間群組
<a name="CHAP_Oracle.advanced-features.instance-store.temp-ebs"></a>

您可以設定暫存資料表空間群組，在執行個體儲存體和 Amazon EBS 上同時包含暫存資料表空間。當您想要的暫存儲存體超過 `rds.instance_store_temp_size` 最大設定允許的空間時，此技巧很有用。

當您同時在執行個體儲存體和 Amazon EBS 上設定暫存資料表空間群組時，這兩個表格空間的效能特性明顯不同。Oracle 資料庫會根據內部演算法選擇要為查詢提供服務的資料表空間。因此，類似的查詢可能會在效能方面有所不同。

一般而言，您可以在執行個體儲存體中建立暫存資料表空間，如下所示：

1. 在執行個體儲存體中建立暫存資料表空間。

1. 將新的表格空間設定為資料庫預設暫存資料表空間。

如果執行個體儲存體中的資料表空間大小不足，您可以建立額外的暫存儲存體，如下所示：

1. 將執行個體儲存體中的暫存表格空間指派給暫存資料表空間群組。

1. 請在 Amazon EBS 中建立新的暫存資料表空間 (如果不存在)。

1. 將 Amazon EBS 中的暫存資料表空間指派給包含執行個體儲存體資料表空間的相同資料表空間群組。

1. 將表格空間群組設定為預設暫存資料表空間。

下列範例假設執行個體儲存體中的暫存資料表空間大小不符合您的應用程式要求。此範例會在執行個體儲存體中建立暫存資料表空間 `temp_in_inst_store`、將其指派給資料表空間群組 `temp_group`、將名為 `temp_in_ebs` 的現有 Amazon EBS 資料表空間新增至這個群組，然後將此群組設定為預設暫存資料表空間。

```
SQL> EXEC rdsadmin.rdsadmin_util.create_inst_store_tmp_tblspace('temp_in_inst_store');

PL/SQL procedure successfully completed.

SQL> ALTER TABLESPACE temp_in_inst_store TABLESPACE GROUP temp_group;

Tablespace altered.

SQL> ALTER TABLESPACE temp_in_ebs TABLESPACE GROUP temp_group;

Tablespace altered.

SQL> EXEC rdsadmin.rdsadmin_util.alter_default_temp_tablespace('temp_group');

PL/SQL procedure successfully completed.

SQL> SELECT * FROM DBA_TABLESPACE_GROUPS;

GROUP_NAME                     TABLESPACE_NAME
------------------------------ ------------------------------
TEMP_GROUP                     TEMP_IN_EBS
TEMP_GROUP                     TEMP_IN_INST_STORE

SQL> SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';

PROPERTY_VALUE
--------------
TEMP_GROUP
```

## 移除 RDS for Oracle 執行個體儲存體
<a name="CHAP_Oracle.advanced-features.instance-store.Disable"></a>

若要移除執行個體存放區，請修改您的 RDS for Oracle 資料庫執行個體，以使用不支援執行個體儲存體的執行個體類型，例如 db.m5 或 db.r5。

# 對 RDS for Oracle 執行個體開啟巨型分頁
<a name="Oracle.Concepts.HugePages"></a>

Amazon RDS for Oracle 支援 Linux 核心巨型分頁，以提高資料庫可擴展性。巨型分頁會造成較小型的分頁資料表，以及耗費在記憶體管理方面較少的 CPU，增加大型資料庫執行個體的效能。如需詳細資訊，請參閱 Oracle 文件中的[巨型分頁的概觀](https://docs.oracle.com/database/121/UNXAR/appi_vlm.htm#UNXAR400)。

您可以使用 HugePages 搭配 RDS for Oracle 的所有支援版本：

 `use_large_pages` 參數可控制是否已對資料庫執行個體開啟巨型分頁。此參數可能的設定為 `ONLY`、`FALSE` 和 `{DBInstanceClassHugePagesDefault}`。在 Oracle 的預設資料庫參數群組中，`use_large_pages` 參數是設為 `{DBInstanceClassHugePagesDefault}`。

若要控制是否對資料庫執行個體自動開啟巨型分頁，您可以在參數群組中使用 `DBInstanceClassHugePagesDefault` 公式變數。該值的判斷方式如下所示：
+ 針對下表提及的資料庫執行個體類別，依預設 `DBInstanceClassHugePagesDefault` 一律會評估為 `FALSE`，而 `use_large_pages` 則評估為 `FALSE`。如果資料庫執行個體類別擁有至少 14 GiB 的記憶體，則您可對這些資料庫執行個體手動開啟巨型分頁。
+ 針對下表未提及的資料庫執行個體類別，如果執行個體類別有少於 14 GiB 的記憶體，`DBInstanceClassHugePagesDefault` 一律會評估為 `FALSE`。此外， `use_large_pages` 評估為 `FALSE`。
+ 針對下表未提及的資料庫執行個體類別，如果執行個體類別有至少 14 GiB，且少於 100 GiB 的記憶體，依預設 `DBInstanceClassHugePagesDefault` 會評估為 `TRUE`。此外， `use_large_pages` 評估為 `ONLY`。您可將 `use_large_pages` 設定為 `FALSE`，手動關閉巨型分頁。
+ 針對下表未提及的資料庫執行個體類別，如果執行個體類別有至少 100 GiB 的記憶體，`DBInstanceClassHugePagesDefault` 一律會評估為 `TRUE`。此外，`use_large_pages` 評估為 `ONLY` 且無法停用巨型分頁。

針對下列資料庫執行個體類別，依預設不會開啟巨型分頁。


****  

| 資料庫執行個體類別系列 | 依預設不會開啟具有巨型分頁的資料庫執行個體類別 | 
| --- | --- | 
|  db.m5  |  db.m5.large  | 
|  db.m4  |  db.m4.large、db.m4.xlarge、db.m4.2xlarge、db.m4.4xlarge、db.m4.10xlarge  | 
|  db.t3  |  db.t3.micro、db.t3.small、db.t3.medium、db.t3.large  | 

如需資料庫執行個體類別的詳細資訊，請參閱[ 資料庫執行個體類別的硬體規格](Concepts.DBInstanceClass.Summary.md)。

若要對新的或現有的資料庫執行個體手動開啟巨型分頁，請將 `use_large_pages` 參數設定為 `ONLY`。您無法將巨型分頁用於 Oracle 自動記憶體管理 (AMM)。如果您將參數 `use_large_pages` 設定為 `ONLY`，則必須也將 `memory_target` 和 `memory_max_target` 設定為 `0`。如需設定資料庫執行個體之資料庫參數的詳細資訊，請參閱[Amazon RDS 的參數群組](USER_WorkingWithParamGroups.md)。

您也可以設定 `sga_target`、`sga_max_size` 和 `pga_aggregate_target` 參數。設定系統全域區域 (SGA) 和程式全域區域 (PGA) 記憶體參數時，請將值一起新增。從您的可用執行個體記憶體 (`DBInstanceClassMemory`) 減去這個總計，以判斷巨型分頁配置以外的可用記憶體。您必須保留至少 2 GiB 的可用記憶體，或可用執行個體記憶體總數的 10%，以較小者為準。

設定參數之後，必須將您的資料庫執行個體重新開機，變更才能生效。如需更多詳細資訊，請參閱 [在資料庫執行個體](USER_RebootInstance.md)。

**注意**  
Oracle 資料庫執行個體會延遲對 SGA 相關初始化參數的變更，直到您重新啟動執行個體而不進行容錯移轉為止。在 Amazon RDS 主控台中，選擇 **Reboot (重新開機)**，但*不要*選擇 **Reboot with failover (使用容錯移轉重新開機)**。在 AWS CLI中，使用 `reboot-db-instance` 參數呼叫 `--no-force-failover` 命令。在容錯移轉期間或導致執行個體重新啟動的其他維護作業期間，資料庫執行個體不會處理 SGA 相關的參數。

下列是可手動啟用巨型分頁之巨型分頁的參數組態範例。您應該設定這些值以符合您的需求。

```
1. memory_target            = 0
2. memory_max_target        = 0
3. pga_aggregate_target     = {DBInstanceClassMemory*1/8}
4. sga_target               = {DBInstanceClassMemory*3/4}
5. sga_max_size             = {DBInstanceClassMemory*3/4}
6. use_large_pages          = ONLY
```

假設參數群組中設定了下列參數值。

```
1. memory_target            = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
2. memory_max_target        = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
3. pga_aggregate_target     = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*1/8}, 0)
4. sga_target               = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
5. sga_max_size             = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
6. use_large_pages          = {DBInstanceClassHugePagesDefault}
```

參數群組由具有少於 100 GiB 記憶體的 db.r4 資料庫執行個體類別所使用。使用這些參數設定並將 `use_large_pages` 設定為 `{DBInstanceClassHugePagesDefault}`，巨型分頁會在 db.r4 執行個體上開啟。

考慮在參數群組中設定了下列參數值的另一個範例。

```
1. memory_target           = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
2. memory_max_target       = IF({DBInstanceClassHugePagesDefault}, 0, {DBInstanceClassMemory*3/4})
3. pga_aggregate_target    = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*1/8}, 0)
4. sga_target              = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
5. sga_max_size            = IF({DBInstanceClassHugePagesDefault}, {DBInstanceClassMemory*3/4}, 0)
6. use_large_pages         = FALSE
```

參數群組是由 db.r4 DB 資料庫執行個體類別和 db.r5 資料庫執行個體類別所使用，兩個的記憶體都小於 100 GiB。使用這些參數設定，巨型分頁會在 db.r4 和 db.r5 執行個體上關閉。

**注意**  
如果此參數群組是由具有至少 100 GiB 記憶體的 db.r4 資料庫執行個體類別或 db.r5 資料庫執行個體類別所使用，即會覆寫 `FALSE` 的 `use_large_pages` 設定，並將其設定為 `ONLY`。在此情況下，即會傳送關於覆寫的通知給客戶。

巨型分頁在您的資料庫執行個體上作用後，您可以透過啟用增強型監控來檢視巨型分頁資訊。如需更多詳細資訊，請參閱 [使用增強型監控來監控作業系統指標](USER_Monitoring.OS.md)。

# 在 RDS for Oracle 中開啟擴充資料類型
<a name="Oracle.Concepts.ExtendedDataTypes"></a>

Amazon RDS for Oracle 支援擴充資料類型。使用擴充資料類型，`VARCHAR2`、`NVARCHAR2` 和 `RAW` 資料類型的大小上限是 32,767 個位元組。若要使用擴充資料類型，請將 `MAX_STRING_SIZE` 參數設為 `EXTENDED`。如需詳細資訊，請參閱 Oracle 文件中的[擴充資料類型](https://docs.oracle.com/database/121/SQLRF/sql_elements001.htm#SQLRF55623)。

如果不要使用擴充資料類型，請將 `MAX_STRING_SIZE` 參數保持設為 `STANDARD` (預設值)。在此情況下，`VARCHAR2` 和 `NVARCHAR2` 資料類型的大小限制為 4,000 個位元組，而 RAW 資料類型的大小限制為 2,000 個位元組。

您可以在新的或現有的資料庫執行個體上執行擴充資料類型。對於新的資料庫執行個體，開啟擴充資料類型時，資料庫執行個體建立時間一般較長。對於現有的資料庫執行個體，在轉換期間無法使用資料庫執行個體。

## 擴充資料類型的考量
<a name="Oracle.Concepts.ExtendedDataTypes.considerations"></a>

針對資料庫執行個體啟用擴充資料類型時，請考慮下列事項：
+ 當您為新的或現有的資料庫執行個體開啟擴充資料類型時，必須將執行個體重新開機，變更才會生效。
+ 開啟擴充資料類型後，即無法將資料庫執行個體變回使用資料類型的標準大小。如果您將 `MAX_STRING_SIZE` 參數設回 `STANDARD`，將會導致 `incompatible-parameters` 狀態。
+ 您還原使用擴充資料類型的資料庫執行個體時，必須將具有 `MAX_STRING_SIZE` 參數的參數群組設為 `EXTENDED`。在還原期間，如果您指定預設參數群組，或指定 `MAX_STRING_SIZE` 設為 `STANDARD` 的其他任何參數群組，則會產生 `incompatible-parameters` 狀態。
+ 資料庫執行個體狀態由於 `incompatible-parameters` 設定而成為 `MAX_STRING_SIZE` 時，在您將 `MAX_STRING_SIZE` 參數設為 `EXTENDED` 並重新啟動資料庫執行個體之前，都無法使用資料庫執行個體。

## 針對新的資料庫執行個體開啟擴充資料類型
<a name="Oracle.Concepts.ExtendedDataTypes.CreateDBInstance"></a>

若您建立資料庫執行個體時將 `MAX_STRING_SIZE` 設定為 `EXTENDED`，執行個體會顯示 `MAX_STRING_SIZE` 設定為預設值 `STANDARD`。將執行個體重新開機以啟用變更。

**針對新的資料庫執行個體開啟擴充資料類型**

1. 在參數群組中，將 `MAX_STRING_SIZE` 參數設為 `EXTENDED`。

   若要設定參數，可以建立新的參數群組，也可以修改現有的參數群組。

   如需詳細資訊，請參閱[Amazon RDS 的參數群組](USER_WorkingWithParamGroups.md)。

1. 建立新的 RDS for Oracle 資料庫執行個體。

   如需詳細資訊，請參閱[建立 Amazon RDS 資料庫執行個體](USER_CreateDBInstance.md)。

1. 將 `MAX_STRING_SIZE` 設為 `EXTENDED` 的參數群組與資料庫執行個體建立關聯。

   如需詳細資訊，請參閱[建立 Amazon RDS 資料庫執行個體](USER_CreateDBInstance.md)。

1. 為了使參數變更生效，請重新啟動資料庫執行個體。

   如需詳細資訊，請參閱[在資料庫執行個體](USER_RebootInstance.md)。

## 針對現有的資料庫執行個體開啟擴充資料類型
<a name="Oracle.Concepts.ExtendedDataTypes.ModifyDBInstance"></a>

修改資料庫執行個體以開啟擴充資料類型時，RDS 會將資料庫中的資料轉換為使用擴充大小。當您下次在參數變更之後重新啟動資料庫時，就會發生轉換和停機。在轉換期間無法使用資料庫執行個體。

轉換資料所需的時間量取決於資料庫執行個體類別、資料庫大小，以及最後一個資料庫快照的時間。若要減少停機時間，請考慮在重新開機之前立即建立快照。這樣可以縮短轉換工作流程期間備份的時間。

**注意**  
開啟擴充資料類型後，無法在轉換期間執行時間的時間點還原。您可還原到緊接在轉換前或轉換後的時間。

**針對現有的資料庫執行個體開啟擴充資料類型**

1. 擷取資料庫的快照。

   如果資料庫有無效的物件，Amazon RDS 會嘗試重新編譯這些物件。如果 Amazon RDS 無法重新轉譯無效的物件，擴充資料類型的轉換可能會失敗。如果轉換發生問題，快照可讓您還原資料庫。務必在轉換前檢查無效的物件，並修正或捨棄無效的物件。對於生產資料庫，建議先對於其中一個資料庫執行個體複本測試轉換程序。

   如需更多詳細資訊，請參閱 [為 Amazon RDS 的單一可用區域資料庫執行個體建立資料庫快照](USER_CreateSnapshot.md)。

1. 在參數群組中，將 `MAX_STRING_SIZE` 參數設為 `EXTENDED`。

   若要設定參數，可以建立新的參數群組，也可以修改現有的參數群組。

   如需更多詳細資訊，請參閱 [Amazon RDS 的參數群組](USER_WorkingWithParamGroups.md)。

1. 修改資料庫執行個體，以便與 `MAX_STRING_SIZE` 設為 `EXTENDED` 的參數群組產生關聯。

   如需更多詳細資訊，請參閱 [修改 Amazon RDS 資料庫執行個體](Overview.DBInstance.Modifying.md)。

1. 為了使參數變更生效，請重新啟動資料庫執行個體。

   如需更多詳細資訊，請參閱 [在資料庫執行個體](USER_RebootInstance.md)。