Oracle PFILE/SPFILEの優先順序

よく忘れてしまうので、Oracleインスタンスパラメータを設定するPFILE(初期化パラメータファイル)、SPFILE(サーバパラメータファイル)の読み込み順序に関するメモ。

初期化パラメータファイルの格納場所は以下の通り。

パラメータファイルの優先順位は以下の通り。複数の初期化パラメータファイルがある場合、設定ファイルが適用される優先順位は以下のようになる。
起動時に指定したpfile:startup pfile='[ファイル]'

  • (1) spfileSID.ora
  • (2) spfile.ora
  • (3) initSID.ora
  • (4) init.ora

Oracle DBサーバをHAクラスタ構成で組む場合、一般的にはPFILEをデフォルト位置におき、PFILEの中では共有ディスク(またはミラーディスク上)に置いたSPFILEの位置を指定するパラメータのみを記述する方法が取られる。これは、システム稼動中に加えられた動的なパラメータ変更が、フェイルオーバ後も待機系側に引き継がれるようにするためである。
ただし、クラスタウェアによってはクラスタリソース定義時にPFILEを明示設定するようになっており、デフォルト位置以外にPFILEが存在していても、インスタンス起動時に startup pfile='[ファイル]' として使用することができるようになっている。

※なお、MSCSではクラスタリソース時に定義したPFILE位置をWindowsレジストリ内に保持する。