レック・テクノロジー・コンサルティング株式会社TECH BLOG

パラメータファイル(PFILEとSPFILE)

初めましての方もそうでない方も宜しくお願い致します。
レック・テクノロジー・コンサルティングのエンジニア「佐々木」にございます。

今回の内容

 
今回は、Oracleの起動時(startup)の際に読み込まれる、
「パラメータファイル」について説明させて頂きます。
以下、今回の内容となります。

・パラメータファイルとは?
・パラメータファイルについて
・パラメータファイルの作成について

パラメータファイルとは?

 
Oracleに対して「startup」コマンドが実行され、
停止状態からnomountへ移行するタイミングで、
インスタンスやデータベースの構成情報が読み込まれます。
この構成情報をパラメータで指定したファイルがパラメータファイルです。

ここまでについては、過去ブログ(Oracleのファイルと起動)でも
『謎の偉い人がインスタンス君を叩き起こした直後に読み込まれる』と説明がありますね。

今回はもう少し掘り下げていきます。

パラメータファイルについて

 

■パラメータファイルの配置

パラメータファイルは、OSにより以下のパスに配置されます。

・Windows系
%ORACLE_HOME%\database

・UNIX系
$ORACLE_HOME/dbs

※ORACLE_HOMEとは、Oracleソフトウェアのインストール先(フォルダ、ディレクトリ)です。

■パラメータの種類

・動的パラメータ
Oracle起動中にALTER SYSTEM文で変更可能なパラメータを動的パラメータといいます。
動的パラメータは、変更した値が即反映されます。

・静的パラメータ
動的パラメータに対して、Oracle起動中に変更できないパラメータを静的パラメータといいます。
以降で説明するパラメータファイルを変更しておくことで、次回起動時に変更内容が反映されます。

なお、動的か静的かについては、リファレンス・マニュアルに記載されています。

■パラメータファイルの種類

パラメータファイルは、以下の2種類が存在します。

・PFILE初期化パラメータファイル

9i以前から使用されている、テキスト形式のパラメータファイルです。
テキストエディタで(動的/静的)パラメータの変更が可能ですが、
変更した内容は次回起動時まで有効になりません。

動的パラメータで、かつ、変更を即座に反映したい場合は、ALTER SYSTEM文を実行します。

<実行例>
SQL>alter system set PGA_AGGREGATE_TARGET = 838861
※PGA_AGGREGATE_TARGETの部分に、変更したいパラメータ名を指定します。
※838861の部分に、変更後の値を指定します。

ただし、PFILE使用時のALTER SYSTEM文は、
起動中のOracleに対する一時的な変更であり、停止するとその値は消失します。
次回以降も変更後の値を適用したい場合は、前述の通り、pfileを編集しておく必要があります。

・SPFILEサーバーパラメータファイル

9i以降に追加されたバイナリ形式のパラメータファイルです。
バイナリファイルのため、PFILEのようにテキストエディタで変更することはできません。
SPFILE使用時は、動的パラメータも静的パラメータもALTER SYSTEM文で変更を行います。

<実行例>
SQL> alter system set PGA_AGGREGATE_TARGET = 838861

SPFILE使用時は、ALTER SYSTEM文を実行する際に変更を適用する範囲を指定できます

<実行例>
SQL> alter system set PGA_AGGREGATE_TARGET = 838861 scope = memory(他、spfileかboth)

・memory = 現在起動中のインスタンスにのみ適用され、再起動後は以前の値が使用される。
・spfile = 変更をspfileに書き込み、次回再起動時に適用させる。
・both  = 上記二つを併せた指定でデフォルト値現在のインスタンス及び次回再起動時の両方に適用させる。

■デフォルトのパラメータファイル名

・PFILE(初期化パラメータファイル)
init<SID>.ora

・SPFILE(サーバーパラメータファイル)
SPFILE<SID>.ora

■優先順位

前述の配置パスに複数のパラメータファイルが混在していた場合、
startup時に以下の優先順位で読み込んでいきます。

1:startupコマンド実行時に指定したファイル(startup pfile='<ファイル名>')
2:SPFILE<SID>.oraファイル
3:SPFILE.oraファイル
4:init<SID>.oraファイル

パラメータファイルの作成について

 
createコマンドを実行することにより、
・PFILEの内容をコピーしてSPFILEを作成する
SQL> create spfile from pfile;

・SPFILEの内容をコピーしてPFILEを作成する
SQL> create pfile from spfile;

ことが可能です。

※どちらの文も、PFILE/SPFILEそれぞれに指定のファイル名を追記できます。
何も指定しなかった場合は、元ファイルとして前述の配置パスのものが使用され、
デフォルトの名前で同じパスに作成、上書きされます。

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
注)実行前には、パラメータファイルのコピーを実行しておきましょう。

SPFILEが存在し、PFILEが存在しない状態で

create 「spfile」 from 「pfile」;

を実行してしまうと、SPFILEが削除されます。
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

まとめ

 
・パラメータファイルは2種類(PFILEとSPFILE)存在し、パラメータ管理の特徴が異なる
・startup時に読み込まれるインスタンスやデータベースの構成情報を指定する
・環境に存在するパラメータファイルの内容を流用し、新たなパラメータファイルを作成できる

最後に

 
startup時に読み込みされるパラメータファイルの概要につきまして説明させて頂きました。
拙い内容ではありますが、皆様のOracle生活の一助になれば幸いです。
以上、宜しくお願い致します。

この記事をシェアする

  • Facebook
  • X
  • Pocket
  • Line
  • Hatena
  • Linkedin

資料請求・お問い合わせはこちら

ページトップへ戻る