Oracleの初期化パラメータファイルについて。
この記事の内容はコチラです
- 初期化パラメータファイルの意味を理解する
- PFILEとSPFILEの違いとは?
- PFILEとSPFILEの切り替える
今回は、Oracleの初期化パラメータファイルについて紹介します!
初期化パラメータファイル
初期化パラメータファイルとは?
Oracleは起動時にファイルを読みこんでDBに必要な初期設定をします。このファイルのことを初期化パラメータファイルといいます。
Oracleはこの初期化パラメータファイルに様々な設定値をもたせています。例えば、メモリのサイズ(SGA・PGAサイズ)、バックアップ出力先(アーカイブログ)などなど。
Oracleの初期化パラメータファイルは2種類
Oracleの初期化パラメータファイルは2種類あります。
- PFILE
→ テキストファイル形式
→ 手動で書き換える初期化パラメータファイル - SPFILE
→ バイナリ形式
→ 手動で書き換えできない
→ SQLコマンドで設定するサーバー・パラメータファイル
「PFILE」と「SPFILE」ですね。PFILEはテキストファイル、SPFILEはバイナリファイルです。
初期化パラメータファイルの設定方法
PFILEはテキストエディタで設定値を書き換え、Oracleを再起動をして反映させます。PFILEは旧式の方法であり、再起動が必要なので面倒です。
一方、SPFILEはALTER SYSTEMコマンドで設定値を変更でき、オプションコマンドのSCOPEをBOTHにすれば即反映されます。再起動も必要ないので簡単です。
初期化パラメータファイルのファイル名とファイルパス
PFILE・SPFILEのファイル名です。
- PFILE・・・initXXX.ora
- SPFILE・・・spfileXXX.ora(XXX:SID)
PFILEのファイルパスは自力で探すしかありません。Windowsのファイル検索をしてください。(例えば「init」で検索する)
SPFILEは%ORACLE_HOME%\databaseにあります。
PFILEとSPFILEの切り替え
PFILEとSPFILEの優先順位
PFILE,SPFILEのどちらを適用するか?その設定はどうやるのでしょうか?ちょっと変な仕様ですが、spfileXXX.oraがあればSPFILEが有効になり、なければPFILEが有効となります。
具体的にいうと、このようになります。(SPFILEがデフォルトの場所にある場合)
- %ORACLE_HOME%\database\spfileXXX.oraがある
→ SPFILEが有効でPFILEは無効 - %ORACLE_HOME%\database\spfileXXX.oraがない
→ PFILEが有効
PFILEとSPFILEのどちらで運用されている?
それでは今PFILE,SPFILEのどちらで起動しているのか?それはコマンドで確認できます。
SPFILEで起動しているかを確認するSQL
SELECT VALUE FROM V$PARAMETER WHERE NAME = 'spfile';
この結果がなければPFILEで起動しています。結果のパスが返ってこればSPFILEで起動しています。現状がPFILEであればSPFILEにした方が何かと便利です。
SPFILEを作成するSQL
CREATE SPFILE='SPFILEのファイル名フルパス' FROM PFILE='PFILEのファイル名フルパス';
SPFILEは実はゼロから作ることはできないのです。PFILEを元にSPFILEを作成します。それが上記のSQLです。SPFILEが作成できたらOracleを再起動します。再起動後にSPFILEが読み込まれてインスタンスが起動します。以上でSPFILEの設定は完了です。
初期化パラメータファイルのまとめ
初期化パラメータというのはOracleの各種設定値のことです。PFILEを使うか?SPFILEを使うか?その設定が少しややこしいですね。
ここまで面倒な仕様にしなくても・・と考えますが、Oracleはこのように変わった仕様がチラホラあるため、めげずに付き合っていくしかありません。
- PFILEとSPFILEはOracleを初期化設定値を管理するファイル
- PFILEとSPFILEのどちらかを選択する
- PFILEは設定値を変更したら再起動が必要
- SPFILEは設定値をコマンドで変更でき、再起動不要
以上、初期化パラメータファイル(PFILE、SPFILE)の説明でした。
コメント