DBS ディレクトリとは?
DBS ディレクトリは Oracle Database インスタンスを構成する各種プロセスのカレント・ディレクトリです。Unix/Linux システムでは \${ORACLE_HOME}/dbs , Microsoft Windows 環境では %ORACLE_HOME%\database ディレクトリがデフォルトの場所です。
Oracle Database 18c 以降で、読み取り専用 Oracle Home 機能を有効にしている場合には、このディレクトリは ${ORACLE_BASE}/dbs(%ORACLE_BASE%\database)になります。本記事ではこのディレクトリに作成されるいくつかのファイルについて説明しています。
$ ps -ef | grep pmon | grep -v grep
oracle 39116 1 0 17:43 ? 00:00:00 ora_pmon_O19P
$ ls -l /proc/39116/cwd
lrwxrwxrwx 1 oracle oinstall 0 Mar 4 19:00 /proc/39116/cwd -> /u01/app/oracle/product/19.0.0/dbhome_1/dbs
一方でリスナーのカレント・ディレクトリは lsnrctl start コマンドを実行したディレクトリになります。
$ pwd
/home/oracle
$ lsnrctl start
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 06-3月 -2024 13:35:46
...
$ ps -ef | grep tns | grep -v grep
oracle 19656 1 0 13:35 ? 00:00:00 /u01/app/oracle/product/19.0.0/dbhome_1/bin/tnslsnr LISTENER -inherit
$ ls -l /proc/19656/cwd
lrwxrwxrwx 1 oracle oinstall 0 Mar 6 13:36 /proc/19656/cwd -> /home/oracle
初期化パラメーター・ファイル
例: initO19P.ora, spfileO19P.ora
初期化パラメーター・ファイルはこのディレクトリに保存される代表的なファイルです。初期化パラメーターの名前と値が格納されます。異なるデータベースで値を使い分けるためにファイル名に環境変数 ORACLE_SID の値が含まれます。
-
init${ORACLE_SID}.ora
テキスト形式の初期化パラメーター・ファイルです。インスタンス起動時に参照されます。 -
spfile${ORACLE_SID}.ora
バイナリ形式の初期化パラメーター・ファイルです。テキスト形式と両方が存在した場合には SPFILE が優先されて使用されます。インスタンス起動時に参照され、ALTER SYSTEM SET 文実行時や、インスタンス停止時に更新されます。Oracle Grid Infrastructure 環境ではクラスター・リソースとして別のディレクトリを指定されていることがあります。下記の例では ASM ディスクグループ +DATA に SPFILE が格納されています。
$ srvctl config database -d o19p
Database unique name: o19p
Database name: o19p
Oracle home: /u01/app/oracle/product/19.0.0/dbhome_1
Oracle user: oracle
Spfile: +DATA/O19P/PARAMETERFILE/spfile.298.1141948399
Password file: +DATA/O19P/PASSWORD/pwdo19p.315.1141945837
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
...
パスワード・ファイル
例: orapwO19P
- orapw${db_unique_name}
SYS ユーザーや SYSTEM ユーザーのパスワードが格納されたファイルです。Oracle Database のユーザー認証はインスタンスが OPEN 状態にならないと実行できないためにデータベースの外部にパスワードを保存するファイルが使われます。
Oracle Grid Infrastructure 環境ではクラスター・リソースとして別のディレクトリを指定されていることがあります。下記の例では ASM ディスクグループ +DATA にパスワード・ファイルが格納されています。
$ srvctl config database -d o19p
Database unique name: o19p
Database name: o19p
Oracle home: /u01/app/oracle/product/19.0.0/dbhome_1
Oracle user: oracle
Spfile: +DATA/O19P/PARAMETERFILE/spfile.298.1141948399
Password file: +DATA/O19P/PASSWORD/pwdo19p.315.1141945837
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
...
Health check monitoring file
例: hc_O19P.dat
- hc_${ORACLE_SID}.dat
インスタンスのヘルス・チェックを行うための小さなバイナリ・ファイルです(Doc ID 390474.1)。
$ strings hc_O19P.dat
DO NOT DELETE OR OVERWRITE THIS FILE!!!
O19P
このファイルはバックグラウンド・プロセスが起動時にオープンし、そのままクローズされません。
$ lsof | grep hc_O19P.dat
ora_pmon_ 13850 oracle mem REG 253,0 1544 109495198 /u01/app/oracle/product/19.0.0/dbhome_1/dbs/hc_O19P.dat
ora_pmon_ 13850 oracle 6u REG 253,0 1544 109495198 /u01/app/oracle/product/19.0.0/dbhome_1/dbs/hc_O19P.dat
ora_clmn_ 13854 oracle mem REG 253,0 1544 109495198 /u01/app/oracle/product/19.0.0/dbhome_1/dbs/hc_O19P.dat
...
Lock file
例: lkO19P
- lk{db_unique_name}
インスタンスの2重起動を防ぐために作成されるファイルです。テキスト形式の小さなファイルです。
$ cd ${ORACLE_HOME}/dbs
$ cat lkO19P
DO NOT DELETE THIS FILE!
このファイルは全バックグラウンド・プロセスがオープンしています。
$ lsof | grep lkO19P
ora_pmon_ 13850 oracle 7uR REG 253,0 24 109495893 /u01/app/oracle/product/19.0.0/dbhome_1/dbs/lkO19P
ora_clmn_ 13854 oracle 7uR REG 253,0 24 109495893 /u01/app/oracle/product/19.0.0/dbhome_1/dbs/lkO19P
ora_psp0_ 13858 oracle 7uR REG 253,0 24 109495893 /u01/app/oracle/product/19.0.0/dbhome_1/dbs/lkO19P
...
インスタンス起動時にこのファイルにアクセスできない場合、ORA-01102: cannot mount database in EXCLUSIVE mode エラーが発生して、MOUNT モードに移行できません。
Snapshot control file
例: snapcf_O19P.f
- snapcf_${ORACLE_SID}.f
snapcf_ ではじまるファイルは RMAN による制御ファイルのコピーです。データベース作成時にデフォルトのパスが RMAN 設定 CONFIGURE SNAPSHOT CONTROLFILE NAME に指定されます。Oracle Real Application Clusters 環境では全インスタンスからアクセスできる共有領域に指定することが推奨されます。
RMAN> SHOW SNAPSHOT CONTROLFILE NAME;
db_unique_name O19PのデータベースにおけるRMAN構成パラメータ:
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/19.0.0/dbhome_1/dbs/snapcf_O19P.f'; # default
Backup control file
例: c-2302801788-20240304-01
- c-\${DBID}-\${YYYYMMDD}-\${SEQUENCE}
c-から始まる名前のファイルは RMAN により自動バックアップされた制御ファイルです。制御ファイルの自動バックアップ機能はデフォルトで有効になっており、システムの構成情報が変更された時や、データファイルのバックアップ時に自動的に作成されます。RMAN のパラメーター CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK 設定のデフォルトが '%F' に指定されており、ディレクトリの指定が無いのでカレント・ディレクトリに作成されます。%F は10進数10桁のDBID、作成日、00からFFまでのシーケンス番号で構成されます。
RMAN> SHOW CONTROLFILE AUTOBACKUP;
db_unique_name O19PのデータベースにおけるRMAN構成パラメータ:
CONFIGURE CONTROLFILE AUTOBACKUP ON; # default
RMAN> SHOW CONTROLFILE AUTOBACKUP FORMAT;
db_unique_name O19PのデータベースにおけるRMAN構成パラメータ:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
Author: Noriyoshi Shinoda / Date: June 16, 2024