初期パラメータファイル pfileとspfile
通常は、spfile (バイナリ初期化パラメータ)で運用している環境が大半だと思うが、
例えば spfile が壊れてしまった場合に、臨時で pfile から起動することがある。
pfile のまま運用?
障害復旧に安心し、そのまま稼動。後日 alter system set ~ scope = spfile
で動的パラメータの変更を試みた時に失敗し、実は pfile のまま
稼動していたことが判明・・。なんてこともあり得る話。
そんな時に限って、動的パラメータ変更指令がきたり。
「切替えるのを忘れてたからインスタンス再起動させて!」なんて言えないわけです。
v$spparameterを確認する
現在稼働中の DB インスタンスが pfile、spfile のどちらを使用しているのかを
知りたい場合は、動的パフォーマンスビューの v$spparameter を参照すればよい。
SQL> desc v$spparameter 名前 NULL? 型 ---------------- -------- --------------- SID VARCHAR2(80) NAME VARCHAR2(80) TYPE VARCHAR2(11) VALUE VARCHAR2(255) DISPLAY_VALUE VARCHAR2(255) ISSPECIFIED VARCHAR2(6) ORDINAL NUMBER UPDATE_COMMENT VARCHAR2(255)
spfile で起動されている場合は valueに値が入っているが、
pfile の場合は value が null になっている。
以下の SQL を実行して、カウントが0件なら pfile、
0件でないなら spfile という判別ができる。
select count(*) from v$spparameter where value is not null;