
RDS for Oracleで追加ストレージボリュームの作成を試してみた
しばたです。
re:Invent 2025開催中にAmazon RDS for OracleとAmazon RDS for SQL Serverのストレージにおいて最大256TiBまでの追加ボリュームがサポートされました。
上記記事ではRDS for SQL Serverで動作確認していますが、本記事ではRDS for Oracleの動作確認をしようと思います。
RDS for Oracle独自の制限
追加ストレージボリュームの基本的な仕様はRDS for SQL ServerとRDS for Oracleともに同じであるものの、RDS for Oracleだけ若干厳しめの制限があります。
両者で共通の仕様は以下の通りです。
rdsdbdata2~rdsdbdata4の最大3本まで追加ボリュームを指定可能- 対応しているストレージタイプは gp3 (最大16TiB) と io2 (最大64TiB) のみ
ここからRDS for Oracle独自の制限について触れてきます。
制限1. 最低64GiBのメモリサイズをもつインスタンスタイプであること
RDS for SQL ServerではStandard Edition、Enterprise Editionでのみ追加ストレージを使えましたが、RDS for OracleではStandard Edition 2、Enterprise Edition両方とも利用可能でかつライセンス形態(BYOL or License Included)を問いません。
ただしインスタンスタイプに制約があり、RDS for Oracleの場合は「メモリサイズが最低64GiB」必要となります。
例えば下図の様にメモリ量が不足しているインスタンスタイプで追加ボリュームを作ろうとしても非サポートのエラーとなります。

メモリ量が不足しているインスタンスタイプ

データベースを作成しようとしても非サポートエラー
RDS does not support additional storage volumes for a DB instance with the following configuration: DBInstanceClass=db.m5.large, Engine=oracle-se2, EngineVersion=19.0.0.0.ru-2025-10.rur-2025-10.r1, LicenseModel=license-included, StorageType=gp3.
制限2. 初期ストレージボリュームのサイズが200GiB以上あること
加えて初期ストレージのサイズにも制約があり、最低200GiB無いと追加のボリュームを増やせません。
マネジメントコンソールの画面でも初期ストレージサイズが200GiB未満の場合は追加ボリュームの設定が非表示になります。

初期ストレージサイズが200GiB未満の場合
ストレージサイズを200GiBにすると設定が現れるのでご注意ください。

初期ストレージサイズを200GiBにすると設定画面が表示される
私は初見でこの制限に気づかずマネジメントコンソールのUIに何も表示されないまましばらく悩みました...
制限3. その他
その他にも細かい制限があるので以下にリストアップしておきます。
- 追加ストレージボリュームは最低200GiBから
- 追加ストレージボリュームを持つインスタンスでは以下の機能が非サポート
- クロスリージョン自動バックアップ
- クロスリージョンリードレプリカ
- 追加ストレージに対するオートスケーリング
- クロスアカウントスナップショットコピー
- 公開スナップショット
- 追加ストレージボリュームにはREDOログ、アーカイブログ、制御ファイルは保存不可
RDS for SQL Serverと異なり「追加ボリュームも最低200GiB必要」な点は要注意です。

追加ボリュームも最低200GiB必要
試してみた
ここからは実際に試していきます。
私の検証用AWSアカウントの東京リージョンにdb.m5.4xlarge (メモリ64GB)、License IncludedなSE2環境を作成します。
CDBシングルテナント構成、バージョンは本日時点で最新のOracle 21.0.0.0.rur-2025-10.r1にしています。
VPC等のネットワークリソースは予め作成済みの状態からスタートします。


この状態で初期ストレージサイズを200GiB以上にすると「追加のストレージボリューム - オプション」欄が表示されます。

この状態で「追加のストレージボリュームを追加」ボタンをクリックしてやると新しい追加ボリューム設定が可能となります。

RDS for SQL Serverと異なり「最小 200GiB」になっていることが見て取れます。
その他の設定はよしなに決めてRDSインスタンスを構築します。
出来上がった結果はこんな感じです。

「設定」タブの詳細から追加ボリュームの状態が確認できます。

表領域を作成してみる
追加ストレージボリュームは/rdsdbdata2/ ~ /rdsdbdata4/にマウントされ、非コンテナデータベース環境では/rdsdbdata2/db ~ /rdsdbdata4/db配下、コンテナデータベース環境では/rdsdbdata2/db/pdb ~ /rdsdbdata4/db/pdb配下にデータベースファイルを作成可能です。
RDS for OracleはOracle Managed Files (OMF)のみサポートしているため通常のOracleの様にデータベースファイルのパスを明示的に指定して表領域を作成しようとするとエラーになります。
/* RDS for Oracleでは DATAFILE を明示的に指定して表領域作成不可 */
CREATE TABLESPACE TEST_TBS
DATAFILE '/rdsdbdata2/db/pdb/test_tbs.dbf' SIZE 1GB
;

ORA-02180: invalid option for CREATE TABLESPACE
このためセッション単位でDB_CREATE_FILE_DESTパラメーターの値を変えたうえで表領域を作成してやる必要があります。
/* 表領域作成前に DB_CREATE_FILE_DEST パラメーターを変更 */
ALTER SESSION SET DB_CREATE_FILE_DEST = '/rdsdbdata2/db/pdb';
/* SHOW PARAMETERコマンドで更新内容を確認 */
SHOW PARAMETER DB_CREATE_FILE_DEST;
/* DATAFILE のパス指定無しで表領域を作成 */
CREATE TABLESPACE TEST_TBS DATAFILE SIZE 1G;

エラーなく表領域が作成されればOKです。
DBA_DATA_FILESビューの内容を確認するとちゃんと新たに作成した表領域TEST_TBSのデータベースファイルが/rdsdbdata2/db/pdb/配下にあることが見て取れます。
/* 表領域のデータベースファイルを確認 */
SELECT TABLESPACE_NAME, FILE_NAME, STATUS, BYTES
FROM DBA_DATA_FILES
;

表示の整形がめんどうだったのでここだけA5:SQL Mk-2で確認
あとは通常の表領域として扱えます。
最後に
以上となります。
RDS for Oracleでは追加ボリューム利用の制約がRDS for SQL Serverと比べて厳し目になっており明確に大規模・大容量環境向けになっています。
条件に合う方は利用を検討してみてください。






