~OMF(Oracle Managed Files)の自動管理を詳しく解説~
Oracle ASM(Automatic Storage Management)は、Oracleデータベースに最適なストレージ管理方式です。
ASMに表領域やデータファイルを作成する際は、OMF(Oracle Managed Files)という仕組みにより、ファイル名やパスを指定せずとも自動的に管理されます。
本記事では、ASMディスクグループ「ARCH」に表領域を作成し、その内容をasmcmdで確認する手順に加えて、OMFによる自動ファイル管理の仕組みを詳しく解説します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
■ 前提環境
- ASMディスクグループ「ARCH」が作成済みでMOUNT状態
- Oracleデータベース(例:ORCL)が起動中
- Oracle Grid Infrastructureが導入済み(Restart構成 or RAC)
oracleユーザーでSQL操作、gridユーザーでasmcmd操作が可能
■ 1. ASMディスクグループ「ARCH」の確認(SQL)
SQL> SELECT name, state, type, total_mb, free_mb
2 FROM v$asm_diskgroup
3 WHERE name = 'ARCH';
■ 2. 表領域の作成(OMFによる自動管理)
✅ ASMでファイルを作成する場合はOMF(Oracle Managed Files)が自動的に適用されます
■ OMFとは?
OMF(Oracle Managed Files)とは、Oracleがファイル名・格納場所を自動的に決定・管理する機能です。以下のような特徴があります:
| 項目 | 内容 |
|---|---|
| ファイル名の指定不要 | +ARCH のようにディスクグループ名だけ指定すればOK |
| 自動命名 | Oracleが重複しない一意なファイル名を自動で生成(例:ARCH_TBS.256.xxxx) |
| 自動配置 | ディスクグループ内の適切な場所(例:+ARCH/ORCL/DATAFILE/)に保存 |
| 手動管理の手間軽減 | 管理者がファイル名やパスを気にする必要がない |
ASMを使用する環境では、OMFはデフォルトで有効です(
db_create_file_destが設定されていなくてもASMに指定することで自動管理されます)。
◾ 表領域を「+ARCH」に作成
SQL> CREATE TABLESPACE arch_tbs
2 DATAFILE '+ARCH'
3 SIZE 100M
4 AUTOEXTEND ON
5 EXTENT MANAGEMENT LOCAL;
✅ ファイル名やパスを指定する必要はありません。Oracleが内部的に次のようなパスを生成します:
+ARCH/ORCL/DATAFILE/ARCH_TBS.256.123456789
■ 3. 表領域の作成結果を確認(SQL)
SQL> SELECT tablespace_name, file_name, bytes/1024/1024 AS size_mb
2 FROM dba_data_files
3 WHERE tablespace_name = 'ARCH_TBS';
出力例:
TABLESPACE_NAME FILE_NAME SIZE_MB
---------------- ------------------------------------------------ -------
ARCH_TBS +ARCH/ORCL/DATAFILE/ARCH_TBS.256.123456789 100
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
■ 4. asmcmdでASM上のファイルを確認する
◾ gridユーザーでasmcmdを起動
$ su - grid
$ asmcmd
◾ 自動生成されたデータファイルを確認
ASMCMD> cd +ARCH/ORCL/DATAFILE
ASMCMD> ls
出力例:
ARCH_TBS.256.123456789
OracleによってOMFで自動生成されたファイルが確認できます。
SQL> set lin 1000 pages 1000
SQL> col name for a20
SQL> col state for a20
SQL> SELECT name, state, type, total_mb, free_mb
2 FROM v$asm_diskgroup;
NAME STATE TYPE TOTAL_MB FREE_MB
-------------------- -------------------- ------------------ ---------- ----------
DATA CONNECTED EXTERN 30716 28132
ARCH MOUNTED NORMAL 10240 10134
SQL> CREATE TABLESPACE arch_tbs ★表領域を ARCH ディスクグループに作成
2 DATAFILE '+ARCH'
3 SIZE 100M
4 AUTOEXTEND ON
5 EXTENT MANAGEMENT LOCAL;
表領域が作成されました。
SQL> col tablespace_name for a20
SQL> col file_name for a50
SQL> SELECT tablespace_name, file_name, bytes/1024/1024 AS size_mb
2 FROM dba_data_files
3 WHERE tablespace_name = 'ARCH_TBS';
TABLESPACE_NAME FILE_NAME SIZE_MB
-------------------- -------------------------------------------------- ----------
ARCH_TBS +ARCH/V19/DATAFILE/arch_tbs.256.1202475139 100
SQL> exit
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0との接続が切断されました。
[oracle@restart ~]$ su - grid
Password:
Last login: Fri May 30 12:00:00 JST 2025 on pts/0
[grid@restart ~]$ asmcmd
ASMCMD> cd +ARCH/V19/DATAFILE
ASMCMD> ls -l
Type Redund Striped Time Sys Name
DATAFILE MIRROR COARSE MAY 30 12:00:00 Y ARCH_TBS.256.1202475139
■ 5. 既存の表領域にデータファイルを追加する(OMF適用)
SQL> ALTER TABLESPACE users
2 ADD DATAFILE '+ARCH' SIZE 200M AUTOEXTEND ON;
この場合も、Oracleが以下のようなファイルを自動生成して追加します:
+ARCH/ORCL/DATAFILE/USERS.257.123456790
■ テキスト図:OMFによるASMファイル構造
+ASMディスクグループ: ARCH
└── ORCL/
└── DATAFILE/
├── ARCH_TBS.256.123456789
└── USERS.257.123456790
■ 補足:OMFに関する設定と動作
| 設定項目 | 内容 |
|---|---|
db_create_file_dest | 非ASM環境ではOMFの出力先として設定必須。ASMでは不要。 |
db_create_online_log_dest_n | REDOログのOMF用ディレクトリ。ASMでは +ARCH など指定でOK |
control_files | OMFで指定可能(例:+ARCH) |
| ASM + OMF の組み合わせ | Oracle推奨構成。自動配置・自動命名・自動管理が行われる |
■ 注意点
| 内容 | 解説 |
|---|---|
| ASMではパス指定不可 | /u01/... のようなOSパスは使えない。必ず +ARCH の形式で指定。 |
| 表領域作成時はファイル名省略が原則 | ASM + OMF環境では名前を明示せず、ディスクグループ名だけ指定する。 |
| asmcmdはgridユーザーで使用 | oracleユーザーからは asmcmd は使えません(権限不足エラーになります) |
■ まとめ:ASM + OMFを活用したファイル管理手順
| 操作内容 | コマンド例 |
|---|---|
| 表領域作成(ASM上) | CREATE TABLESPACE arch_tbs DATAFILE '+ARCH' ... |
| データファイル追加 | ALTER TABLESPACE users ADD DATAFILE '+ARCH' ... |
| SQLでファイル確認 | SELECT * FROM dba_data_files |
| asmcmdでファイル確認 | cd +ARCH/ORCL/DATAFILE → ls |
| 自動命名・自動配置の根拠 | Oracle Managed Files(OMF)による管理機能 |
[参考]
Clusterware管理およびデプロイメント・ガイド




コメント