

# 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 インスタンスで HugePages をオンにする](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 DB インスタンスに一時ブロックレベルのストレージを提供します。インスタンスストアは、頻繁に変更される情報を一時的に保存するために使用できます。

インスタンスストアは、ホストコンピュータに物理的にアタッチされた不揮発性メモリエクスプレス (NVMe) デバイスをベースにしています。このストレージは、低レイテンシー、ランダム I/O パフォーマンス、シーケンシャル読み取りスループットを実現するために最適化されています。

インスタンスストアのサイズは DB インスタンスタイプによって異なります。インスタンスストアの詳細については、*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)
+ [RDS for Oracle インスタンスストアでサポートされている AWS リージョン](#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 Database は、一時テーブルスペースを使用して、メモリに収まらない中間クエリ結果を保存します。クエリのサイズが大きいと、一時的にキャッシュする必要はあるが、永続化する必要はない大量の中間データが生成されることがあります。特に、一時テーブルスペースは、ソート、ハッシュ集計、および結合に役立ちます。RDS for Oracle DB インスタンスがエンタープライズエディションまたはスタンダードエディション 2 を使用している場合は、インスタンスストアに一時テーブルスペースを配置できます。

フラッシュキャッシュ  
フラッシュキャッシュは、従来のパスでの単一ブロックのランダム読み取りのパフォーマンスを向上させます。ベストプラクティスは、アクティブなデータセットのほとんどを収容できるようにキャッシュのサイズを設定することです。RDS for Oracle DB インスタンスがエンタープライズエディションを使用している場合は、フラッシュキャッシュをインスタンスストアに配置できます。

デフォルトでは、インスタンスストアは一時テーブルスペース用に設定されていますが、フラッシュキャッシュ用には設定されていません。Oracle データファイルとデータベースログファイルは、インスタンスストアに配置できません。

### RDS for Oracle インスタンスストアの利点
<a name="CHAP_Oracle.advanced-features.instance-store.overview.benefits"></a>

失ってもかまわない一時ファイルとキャッシュを保存するためにインスタンスストアを使用することを検討してください。DB のパフォーマンスを改善したい場合、またはワークロードの増加が 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 インスタンスクラスのインスタンスストアをサポートしています。
+ db.m5d
+ db.m6id
+ db.r5d
+ db.r6id
+ db.x2idn
+ db.x2iedn

RDS for Oracle は、BYOL ライセンスモデルでのみ前述の DB インスタンスクラスをサポートします。詳細については、「[サポートされている RDS for Oracle DB インスタンスクラス](Oracle.Concepts.InstanceClasses.md#Oracle.Concepts.InstanceClasses.Supported)」および「[EE および SE2 の Bring Your Own License (BYOL)](Oracle.Concepts.Licensing.md#Oracle.Concepts.Licensing.BYOL)」を参照してください。

サポート対象の DB インスタンスタイプのインスタンスストレージの合計を確認するには、AWS CLI で次のコマンドを実行します。

**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 バージョン

### RDS for Oracle インスタンスストアでサポートされている AWS リージョン
<a name="CHAP_Oracle.advanced-features.instance-store.overview.regions"></a>

インスタンスストアは、これらのインスタンスタイプの 1 つ以上がサポートされているすべての AWS リージョン で使用できます。db.m5d と db.r5d インスタンスクラスの詳細については、「[ DB インスタンスクラス](Concepts.DBInstanceClass.md)」を参照してください。Amazon RDS for Oracle でサポートされるインスタンスクラスの詳細については、「[RDS for Oracle DB インスタンスクラス](Oracle.Concepts.InstanceClasses.md)」を参照してください。

### RDS for Oracle インスタンスストアのコスト
<a name="CHAP_Oracle.advanced-features.instance-store.overview.cost"></a>

インスタンスストアのコストは、有効になっているインスタンスストアのコストに組み込まれます。RDS for Oracle DB インスタンスでインスタンスストアを有効にしても、追加料金は発生しません。instance-store turned on インスタンスの詳細については、「[サポートされている 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 DB インスタンスを作成します。詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。
+ サポートされているインスタンスクラスを使用するように既存の RDS for Oracle DB インスタンスを変更します。詳細については、「[Amazon RDS DB インスタンスを変更する](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 Database Enterprise Edition でのみ有効です。デフォルト値は `{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 Database Enterprise Edition では変更可能で、Standard Edition 2 では読み取り専用です `rds.instance_store_temp_size` にゼロ以外の値を設定すると、Amazon RDS はインスタンスストアのスペースを一時テーブルスペースに割り当てます。  
インスタンスストアを使用しない DB インスタンスには、`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 設定 | rds.instance\$1store\$1temp\$1size 設定 | 説明 | 
| --- | --- | --- | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$10/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$110/10\$1  |  これは、Oracle Database のすべてのエディションで有効な設定です。Amazon RDS は、インスタンスストアスペースの 100% を一時テーブルスペースに割り当てます。これがデフォルトです。  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$110/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$10/10\$1  |  これは、Oracle Database Enterprise Edition でのみ有効な設定です。Amazon RDS はインスタンスストア容量の 100% をフラッシュキャッシュに割り当てます。  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$12/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$18/10\$1  |  これは、Oracle Database Enterprise Edition でのみ有効な設定です。Amazon RDS はインスタンスストア容量の 20% をフラッシュキャッシュに、インスタンスストア容量の 80% を一時テーブルスペースに割り当てます。  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$16/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$14/10\$1  |  これは、Oracle Database Enterprise Edition でのみ有効な設定です。Amazon RDS は、インスタンスストア容量の 60% をフラッシュキャッシュに、40% のインスタンスストア容量を一時テーブルスペースに割り当てます。  | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$12/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$14/10\$1  | これは、Oracle Database Enterprise Edition でのみ有効な設定です。Amazon RDS は、インスタンスストア容量の 20% をフラッシュキャッシュに、40% のインスタンスストア容量を一時テーブルスペースに割り当てます。 | 
|  db\$1flash\$1cache\$1size=\$1DBInstanceStore\$18/10\$1  |  rds.instance\$1store\$1temp\$1size=\$1DBInstanceStore\$18/10\$1  |  インスタンスストア容量の合計パーセンテージが 100% を超えているため、これは無効な設定です。このような場合、Amazon RDS は試行に失敗します。  | 

## DB インスタンスタイプを変更する際の考慮事項
<a name="CHAP_Oracle.advanced-features.instance-store.configuring.modifying"></a>

DB インスタンスタイプを変更すると、インスタンスストアのフラッシュキャッシュまたは一時テーブルスペースの設定に影響する可能性があります。以下の変更とその影響を考慮してください。

**インスタンスストアをサポートする DB インスタンスをスケールアップまたはスケールダウンします。**  
次の値は、インスタンスストアの新しいサイズに比例して増減します。  
+ フラッシュキャッシュの新しいサイズ。
+ インスタンスストアにある一時テーブルスペースに割り当てられた容量。
例えば、db.m5d.4xlarge インスタンスで `db_flash_cache_size={DBInstanceStore*6/10}` を設定すると約 340 GB のフラッシュキャッシュ容量が提供されます。インスタンスタイプを db.m5d.8xlarge にスケールアップすると、フラッシュキャッシュ容量は約 680 GB に増加します。

**インスタンスストアを使用しない DB インスタンスを、インスタンスストアを使用するインスタンスに変更します。**  
`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)」を参照してください。

**インスタンスストアを使用する DB インスタンスを、インスタンスストアを使用しないインスタンスに変更します。**  
この場合、RDS for Oracle はフラッシュキャッシュを削除します。RDS は、Amazon EBS ボリュームのインスタンスストアに現在置かれている一時ファイルを再作成します。新しい一時ファイルの最大サイズは、`rds.instance_store_temp_size` パラメータの以前のサイズです。

# Oracle リードレプリカ上のインスタンスストアでの作業
<a name="CHAP_Oracle.advanced-features.instance-store.replicas"></a>

リードレプリカは、インスタンスストアのフラッシュキャッシュと一時テーブルスペースをサポートします。フラッシュキャッシュはプライマリ DB インスタンスと同じように機能しますが、一時テーブルスペースについては以下の違いに注意してください。
+ リードレプリカでは一時テーブルスペースを作成できません。プライマリインスタンスに新しい一時テーブルスペースを作成すると、RDS for Oracle は一時ファイルなしでテーブルスペース情報をレプリケートします。新しい一時ファイルを追加するには、次のいずれかの操作を行います。
  + Amazon RDS プロシージャ `rdsadmin.rdsadmin_util.add_inst_store_tempfile` を使用します。RDS for Oracle は、リードレプリカのインスタンスストアに一時ファイルを作成し、指定された一時テーブルスペースに追加します。
  + `ALTER TABLESPACE … ADD TEMPFILE` コマンドを実行します。RDS for Oracle は一時ファイルを Amazon EBS ストレージに配置します。
**注記**  
一時ファイルのサイズとストレージタイプは、プライマリ DB インスタンスとリードレプリカで異なる場合があります。
+ デフォルトの一時テーブルスペース設定は、プライマリ DB インスタンスでのみ管理できます。RDS for Oracle は、すべてのリードレプリカに設定を複製します。
+ 一時テーブルスペースグループはプライマリ DB インスタンスでのみ設定できます。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 の両方で一時テーブルスペースグループを設定すると、2 つのテーブルスペースのパフォーマンス特性が大きく異なります。Oracle Database は、内部アルゴリズムに基づいてクエリを処理するテーブルスペースを選択します。そのため、同様のクエリではパフォーマンスが異なる場合があります。

通常、次のようにインスタンスストアに一時テーブルスペースを作成します。

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>

インスタンスストアを削除するには、インスタンスストアをサポートしないインスタンスタイプ (db.m5 または db.r5 ) を使用するように RDS for Oracle DB インスタンスを変更します。

# サポートされている RDS for Oracle インスタンスで HugePages をオンにする
<a name="Oracle.Concepts.HugePages"></a>

Amazon RDS for Oracle は、データベースのスケーラビリティを増大する Linux Kernel の HugePages をサポートしています。HugePages により、ページのテーブルを小さくし、メモリ管理の CPU 経過時間を減少することで、大規模なデータベースインスタンスのパフォーマンスを向上できます。詳細については、Oracle ドキュメントの「[HugePages の概要](https://docs.oracle.com/database/121/UNXAR/appi_vlm.htm#UNXAR400)」を参照してください。

HugePages は、RDS for Oracle の次のバージョンとエディションで使用できます。

 `use_large_pages` パラメータは、DB インスタンスで HugePages を有効にするかどうかを制御します。このパラメータに設定できる値は、`ONLY`、`FALSE`、および `{DBInstanceClassHugePagesDefault}` です。Oracle のデフォルト DB パラメータグループでは、`use_large_pages` パラメータが `{DBInstanceClassHugePagesDefault}` に設定されます。

DB インスタンスで HugePages を自動的に有効にするかどうかを制御するには、`DBInstanceClassHugePagesDefault` 式の可変をパラメータグループで使用します。値は次のように決定されます。
+ 以下の表に示す DB インスタンスクラスの場合、`DBInstanceClassHugePagesDefault` はデフォルトで常に `FALSE` と評価されます。`use_large_pages` は `FALSE` と評価されます。DB インスタンスクラスのメモリが 14 GiB 以上であれば、これらの DB インスタンスクラス用に HugePages を手動で有効化できます。
+ 以下の表に示していない DB インスタンスクラスで、DB インスタンスクラスのメモリが 14 GiB 未満の場合は、`DBInstanceClassHugePagesDefault` は常に `FALSE` と評価されます。また、`use_large_pages` は `FALSE` と評価されます。
+ 以下の表に示していない DB インスタンスクラスで、インスタンスクラスのメモリが 14 GiB 以上、100 GiB 未満の場合は、`DBInstanceClassHugePagesDefault` はデフォルトで `TRUE` と評価されます。また、`use_large_pages` は `ONLY` と評価されます。HugePages を手動で無効にするには、`use_large_pages` を `FALSE` に設定します。
+ 次の表に示していない DB インスタンスクラスで、インスタンスクラスのメモリが 100 GiB 以上の場合は、`DBInstanceClassHugePagesDefault` は常に `TRUE` と評価されます。また、`use_large_pages` は `ONLY` と評価され、HugePages を無効にすることはできません。

HugePages は、以下の DB インスタンスクラスに対してはデフォルトで有効になりません。


****  

| DB インスタンスクラスファミリー | HugePages がデフォルトで有効になっていない DB インスタンスクラス | 
| --- | --- | 
|  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  | 

DB インスタンスクラスの詳細については、「[ DB インスタンスクラスのハードウェア仕様](Concepts.DBInstanceClass.Summary.md)」を参照してください。

新規または既存の DB インスタンスで HugePages を手動で有効にするには、`use_large_pages` パラメータを `ONLY` に設定します。Oracle 自動メモリ管理 (AMM) では HugePages を使用できません。`use_large_pages` パラメータを `ONLY` に設定するには、`memory_target` と `memory_max_target` の両方を `0` に設定する必要もあります。DB インスタンスの DB パラメータを設定する詳細については、「[Amazon RDS のパラメータグループ](USER_WorkingWithParamGroups.md)」を参照してください。

`sga_target`、`sga_max_size` と `pga_aggregate_target` パラメータも設定できます。システムグローバルエリア (SGA) とプログラムグローバルエリア (PGA) のメモリパラメータを設定する場合には、値をまとめて追加します。この合計を使用可能なインスタンスメモリ (`DBInstanceClassMemory`) から減算して、HugePages の割当量を超える空きメモリを判断します。使用可能なインスタンスメモリ全体の少なくとも 10% または 2 GiB のどちらか少ない方を空きメモリとして残す必要があります。

パラメータを設定したら、DB インスタンスを再起動して変更を有効にする必要があります。詳細については、「[ DB インスタンスの再起動](USER_RebootInstance.md)」を参照してください。

**注記**  
Oracle DB インスタンスは、フェイルオーバーなしでインスタンスが再起動されるまで、SGA 関連の初期化パラメータへの変更が延期されます。Amazon RDS コンソールで [**Reboot (再起動)**] を選択しますが、[*Reboot with failover (フェイルオーバーありで再起動)*] を選択**しない**でください。AWS CLI で、`reboot-db-instance` パラメータを指定して `--no-force-failover` コマンドを呼び出します。DB インスタンスは、フェイルオーバー中、またはインスタンスを再起動させる他のメンテナンスオペレーション中に、SGA 関連のパラメータを処理しません。

HugePages を手動で有効化する場合の HugePages のパラメータ設定の例を次に示します。必要に応じて値を設定してください。

```
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 DB インスタンスクラスによって使用されます。これらのパラメータ設定と `use_large_pages` を `{DBInstanceClassHugePagesDefault}` に設定した場合、HugePages は 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
```

パラメータグループは、メモリが 100 GiB 未満の DB インスタンスクラス db.r4 と db.r5 インスタンスの両方で使用されます。これらのパラメータ設定では、db.r4 および db.r5 インスタンスで HugePages が無効になります。

**注記**  
このパラメータグループをメモリが 100 GiB 以上の db.r4 DB インスタンスクラス、または db.r5 DB インスタンスクラスで使用すると、`FALSE` の `use_large_pages` 設定はオーバーライドされ、`ONLY` に設定されます。この場合、オーバーライドに関する通知がユーザーに送信されます。

DB インスタンスで HugePages が有効になると、拡張モニタリングを有効にして HugePages の情報を表示できます。詳細については、「[拡張モニタリングを使用した OS メトリクスのモニタリング](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 バイトです。

新しい DB インスタンス、または既存の DB インスタンスで拡張データ型を有効にできます。新しい DB インスタンスの場合、拡張データ型を有効にすると、通常、DB インスタンスの作成時間が長くなります。既存の DB インスタンスでは、変換プロセス中は DB インスタンスは無効です。

## 拡張データ型に関する考慮事項
<a name="Oracle.Concepts.ExtendedDataTypes.considerations"></a>

DB インスタンスの拡張データ型を有効にするときには、次の点を考慮してください。
+ 新規または既存の DB インスタンスの拡張データ型を有効にする場合は、変更を有効にするためにインスタンスを再起動する必要があります。
+ 拡張データ型を有効にすると、DB インスタンスでデータ型の標準サイズを使用するように戻すことはできません。`MAX_STRING_SIZE` パラメータを `STANDARD` に戻すと、`incompatible-parameters` ステータスになります。
+ 拡張データ型を使用する DB インスタンスを復元する場合、`MAX_STRING_SIZE` パラメータを `EXTENDED` に設定して、パラメータグループを設定する必要があります。復元中は、デフォルトのパラメータグループ、または、他のパラメータグループの `MAX_STRING_SIZE` を `STANDARD` に設定すると、`incompatible-parameters` ステータスになります。
+ DB インスタンスステータスが `incompatible-parameters` の設定のために `MAX_STRING_SIZE` の場合、`MAX_STRING_SIZE` パラメータを `EXTENDED` に設定して DB インスタンスを再起動するまで、DB インスタンスは使用できません。

## 新しい DB インスタンスで拡張データ型を有効にする
<a name="Oracle.Concepts.ExtendedDataTypes.CreateDBInstance"></a>

`MAX_STRING_SIZE` を `EXTENDED` に設定して DB インスタンスを作成すると、インスタンスの `MAX_STRING_SIZE` はデフォルトの `STANDARD` に設定されます。インスタンスを再起動して、変更を有効にします。

**新しい DB インスタンスで拡張データ型を有効にするには**

1. パラメータグループ内の `MAX_STRING_SIZE` パラメータを `EXTENDED` に設定する。

   新しいパラメータグループを作成するか、既存のパラメータグループを変更して、パラメータを設定できます。

   詳細については、「[Amazon RDS のパラメータグループ](USER_WorkingWithParamGroups.md)」を参照してください。

1. 新しい RDS for Oracle DB インスタンスを作成します。

   詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。

1. パラメータグループを、DB インスタンスで `EXTENDED` に設定された `MAX_STRING_SIZE` に関連付けます。

   詳細については、「[Amazon RDS DB インスタンスの作成](USER_CreateDBInstance.md)」を参照してください。

1. DB インスタンスを再起動してパラメータの変更を有効にします。

   詳細については、「[ DB インスタンスの再起動](USER_RebootInstance.md)」を参照してください。

## 既存の DB インスタンスで拡張データ型を有効にするには
<a name="Oracle.Concepts.ExtendedDataTypes.ModifyDBInstance"></a>

DB インスタンスを変更して拡張データ型を有効にすると、RDS は、拡張サイズを使用するようにデータベース内のデータを変換します。変換とダウンタイムは、パラメータの変更後にデータベースを次に再起動したときに発生します。DB インスタンスは変換中は利用できません。

データの変換に要する時間は、DB インスタンスクラス、データベースのサイズ、および前回の DB スナップショットの時刻によって異なります。ダウンタイムを減らすには、再起動の直前にスナップショットを取ることを検討してください。これにより、変換ワークフロー中に行われるバックアップの時間が短縮されます。

**注記**  
拡張データ型を有効にすると、変換中はポイントインタイムの復元を実行できません。変換の直前または変換後の時間に復元することができます。

**既存の DB インスタンスで拡張データ型を有効にするには**

1. データベースのスナップショットを作成します。

   データベースに無効なオブジェクトがある場合、Amazon RDS はそれらの再コンパイルを試みます。Amazon RDS が無効なオブジェクトを再コンパイルできない場合、拡張データ型への変換は失敗する可能性があります。スナップショットを使用すると、変換に問題がある場合にデータベースを復元できます。変換前に無効なオブジェクトがないかを常に確認して、無効なオブジェクトを修正または削除してください。本番データベースの場合は、初期に DB インスタンスのコピーで変換プロセスをテストすることをお勧めします。

   詳細については、「[Amazon RDS のシングル AZ DB インスタンスの DB スナップショットの作成](USER_CreateSnapshot.md)」を参照してください。

1. パラメータグループ内の `MAX_STRING_SIZE` パラメータを `EXTENDED` に設定する。

   新しいパラメータグループを作成するか、既存のパラメータグループを変更して、パラメータを設定できます。

   詳細については、「[Amazon RDS のパラメータグループ](USER_WorkingWithParamGroups.md)」を参照してください。

1. DB インスタンスを修正して `MAX_STRING_SIZE` を `EXTENDED` に設定したパラメータグループと関連付けます。

   詳細については、「[Amazon RDS DB インスタンスを変更する](Overview.DBInstance.Modifying.md)」を参照してください。

1. DB インスタンスを再起動してパラメータの変更を有効にします。

   詳細については、「[ DB インスタンスの再起動](USER_RebootInstance.md)」を参照してください。