Oracle 26ai 表領域がデフォルトで Bigfile に?確認と注意点

26ai

2026年の最新リリースである Oracle Database 26ai(バージョン 23.26.1 以降)では、データベース作成時の標準設定として Oracle 26ai 表領域(KW1)が Bigfile 形式で構成されるようになっています。従来の Oracle ビッグファイル表領域(KW2)は大規模データ向けのみに推奨されていましたが、26ai ではデフォルトの挙動が変更されており、従来の Smallfile 運用を前提としているとトラブルの元になります。本記事で最新仕様(23.26)の確認方法を解説します。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

結論・最短手順

Oracle 26ai において、意図せず Bigfile 表領域が作成されるのを防ぐ、または現在の設定を確認する手順は以下の通りです。

  1. 現在の属性確認: CDB_TABLESPACESBIGFILE 列を確認(YES なら Bigfile)。
  2. 容量拡張の作法: ADD DATAFILE ではなく ALTER TABLESPACE ... RESIZE を使用する。
  3. Smallfile 指定での作成: CREATE SMALLFILE TABLESPACE ... と明示的に指定して作成する。
  4. デフォルトの恒久変更: ALTER DATABASE SET DEFAULT TABLESPACE TYPE SMALLFILE; を実行。

背景と基礎:26ai(23.26)における変更

Oracle Database には、データファイルの管理方式として 2 つのタイプが存在します。

  • Smallfile 表領域(従来型): 複数のデータファイル(最大 1,022 個)で構成。1 ファイルあたり最大 32GB 程度。
  • Bigfile 表領域(26ai 標準): 単一の巨大なデータファイルで構成。最大 128TB まで拡張可能。

最新の 26ai(23.26)では、運用効率化とクラウドネイティブな構成への最適化のため、ユーザー表領域(USERS)だけでなく、システム表領域(SYSTEM/SYSAUX)までもがデフォルトで Bigfile 形式としてプロビジョニングされます。

初心者向け一口メモ 「ファイルを追加して容量を増やす」という 20 年来の慣習が、26ai では通用しなくなっています。「既存ファイルをリサイズする」のが 26ai 流の作法です。

手順・実装:デフォルト表領域の判定

実機(Oracle Linux / Oracle Database 23.26.1)にて、インストール直後の構成を確認します。

  1. sqlplus / as sysdba でログイン。
  2. 以下の SQL で表領域のタイプを一括確認。
  3. BIGFILE 項目の YES/NO を判定。
表領域名19c / 21c26ai (23.26)運用上の制約
SYSTEMSmallfileBigfile (YES)ファイル追加不可(リサイズのみ)
SYSAUXSmallfileBigfile (YES)ファイル追加不可
USERSSmallfileBigfile (YES)ファイル追加不可
TEMPSmallfileSmallfile (NO)一時表領域は従来通りが多い

実行例:26ai (23.26) での確認ログ

実機での確認結果、主要な表領域がすべて BIGFILE=YES となっていることが確認できます。

-- 権限:SYSDBA、環境:CDB/PDB構成
-- 23.26.1.0.0 での実行結果を確認
SELECT 
    TABLESPACE_NAME, 
    BIGFILE, 
    CON_ID 
FROM 
    CDB_TABLESPACES 
ORDER BY 
    CON_ID, TABLESPACE_NAME;

実行結果の解説:

SQL> SELECT
2 TABLESPACE_NAME,
3 BIGFILE,
4 CON_ID
5 FROM
6 CDB_TABLESPACES
7 ORDER BY
8 CON_ID, TABLESPACE_NAME;

TABLESPACE_NAME BIG CON_ID
------------------------------ --- ----------
SYSAUX YES 1
SYSTEM YES 1
TEMP NO 1
UNDOTBS1 YES 1
USERS YES 1
APP_DATA NO 3
SYSAUX YES 3
SYSTEM YES 3
TEMP NO 3
UNDOTBS1 YES 3
USERS YES 3

11 rows selected.

[解説] BIG 列が YES と表示されているものはすべて Bigfile 表領域です。従来の ALTER TABLESPACE ... ADD DATAFILE コマンドはエラーになります。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

実演:Smallfile 表領域を明示的に作成する

26ai のデフォルト設定(Bigfile)に依らず、従来のように複数のデータファイルを管理したい場合は、CREATE 文の直後に SMALLFILE キーワードを付与します。

PDB側(PDB01)で Smallfile 表領域を作成する例:

-- PDBへ切り替え
ALTER SESSION SET CONTAINER = PDB01;

-- SMALLFILE キーワードを明示して作成
CREATE SMALLFILE TABLESPACE APP_DATA
DATAFILE '/u01/app/oracle/oradata/ORCL/pdb01/app_data01.dbf' SIZE 100M
AUTOEXTEND ON;

-- 確認クエリ
SELECT TABLESPACE_NAME, BIGFILE FROM USER_TABLESPACES WHERE TABLESPACE_NAME = 'APP_DATA';
-- 結果:BIGFILE は "NO" となります

[解説] 26ai では明示しない限り BIGFILE になるため、管理要件上ファイルを分けたい場合はこの指定が必須となります。

SQL> ALTER SESSION SET CONTAINER = PDB01;

Session altered.

SQL> CREATE SMALLFILE TABLESPACE APP_DATA
2 DATAFILE '/u01/app/oracle/oradata/ORCL/pdb01/app_data01.dbf' SIZE 100M
3 AUTOEXTEND ON;

Tablespace created.

SQL> SELECT TABLESPACE_NAME, BIGFILE FROM USER_TABLESPACES WHERE TABLESPACE_NAME = 'APP_DATA';

TABLESPACE_NAME BIG
------------------------------ ---
APP_DATA NO

トラブルシューティング:発生しやすい ORA エラー

26ai で従来の「ファイル追加」操作を行うと、以下のエラーに直面します。

エラーコード原因対処法
ORA-32771Bigfile 表領域にファイルを追加しようとしたRESIZE コマンドを使用する
ORA-01144ファイルが OS の上限(または 128TB)を超えたファイルを分けるには表領域を分ける必要がある

エラー再現例:

SQL> ALTER TABLESPACE USERS ADD DATAFILE '/u01/app/oracle/oradata/ORCL/users02.dbf' SIZE 1G;
ALTER TABLESPACE USERS ADD DATAFILE '/u01/app/oracle/oradata/ORCL/users02.dbf' SIZE 1G
*
ERROR at line 1:
ORA-32771: cannot add file to bigfile tablespace
Help: https://docs.oracle.com/error-help/db/ora-32771/

運用・監視・セキュリティ上の注意

  • メリット: データファイル数が激減するため、制御ファイルの肥大化を防ぎ、チェックポイント処理のオーバーヘッドが減少します。
  • デメリット: 1 ファイルが数 TB に及ぶ場合、ファイルシステムレベルのコピーや移動に時間がかかります。
  • 戻し方: どうしても Smallfile が必要な場合は、DB 作成直後に以下のコマンドを実行してください。ALTER DATABASE SET DEFAULT TABLESPACE TYPE SMALLFILE;

FAQ(よくある質問)

Q: 26ai ではなぜ Bigfile がデフォルトなのですか? A: ストレージの仮想化やクラウド環境(OCI 等)では、ファイルを細かく分けるよりも、単一の大きなボリュームとして扱う方が管理効率とパフォーマンスに優れるためです。

Q: Bigfile 表領域を後から Smallfile に戻せますか? A: 直接の変換は不可能です。データをエクスポート(Data Pump)し、Smallfile 表領域へインポートし直す必要があります。

Q: バックアップの時間に影響はありますか? A: RMAN を使用する場合、SECTION SIZE パラメータを使用することで、1 つの巨大なファイルを並列でバックアップできるため、大きな遅延は防げます。

まとめ

  • Oracle Database 26ai (23.26) では、主要表領域がデフォルトで Bigfile 形式
  • 容量不足時は ALTER DATABASE DATAFILE ... RESIZE で対応する。
  • 既存の監視スクリプト等で ADD DATAFILE を使っている場合は修正が必須。
  • 互換性を重視する場合は、DB 作成時にデフォルトタイプを変更しておく。

[参考]
BIGFILEはSYSAUX、SYSTEMおよびUSER表領域でのデフォルト

本記事は Oracle Database 26ai (23.26.1) を対象に解説します(他バージョンは画面や既定値が異なる場合があります)。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

コメント

タイトルとURLをコピーしました