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

ORACLEデータベースインスタンスを起動する際には起動するインスタンスのパラメータを指定するパラメータファイルというファイルが必要になります。 パラメータファイルには以下の2種類があります。

・pfile
pfileはテキスト形式のパラメータファイルです。テキスト形式のためエディタ等で修正することができますが、ORACLEのコマンドからpfileの内容を変更することはできません (alter system文によって起動中のインスタンスに対するパラメータ変更はできるが、インスタンスを再起動すると設定が元に戻ります)。 よって、恒久的なパラメータの変更には必ずエディタによる手修正が必要です。

・spfile(9i~)
spfileはバイナリ形式のパラメータファイルです。パラメータ部分はasciiコードで記述されているためエディタで開いてもパラメータの値を確認することはできますが、 ファイル内にチェックサムが記録されているためエディタでパラメータを修正してしまうとチェックサム不正によりORA-01078やLRM-00123等のエラーでインスタンスが起動できなくなります。 よって、パラメータ変更は必ずalter system文で変更する必要があります。 なお、spfileを利用することで「__」から始まるインスタンス起動中に自動調整されるパラメータ等がインスタンスの再起動後も調整された値を維持できる、 pfile運用中にpfileへの反映漏れ等を防げるため9i以降のバージョンではpfileではなくspfileを利用することが推奨となっています。

spfile使用時のパラメータ変更方法

・インスタンスの再起動時にパラメータを反映させる場合
SQL > alter system set processes=200 scope=spfile;
・起動中のインスタンスに対してパラメータ変更する(インスタンス再起動後は元に戻る)
SQL > alter system set open_cursors=200 scope=memory;
・起動中のインスタンスに対してパラメータ変更し、インスタンス再起動後も設定を維持する場合
SQL > alter system set open_cursors=200 scope=both;
または
SQL > alter system set open_cursors=200;
・spfileからパラメータを削除し、デフォルト値に戻す場合
SQL > alter system reset open_cursors scope=spfile sid='*';

pfile使用時のパラメータ変更方法

・起動中のインスタンスに対してのみパラメータ変更する(インスタンス再起動後は元に戻る)
SQL > alter system set open_cursors=200 scope=memory;
または
SQL > alter system set open_cursors=200;

spfileとpfileどちらを利用しているかの確認

spfileでインスタンスを起動している場合spfileという初期化パラメータが設定されるためこのパラメータ値に値が入っているかどうかで判断できます。
SQL > show parameter spfile

NAME                                 TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
spfile                               string                 J:\PROGRAM\ORACLE\PRODUCT\11.2
                                                            .0\DBHOME_1\DATABASE\SPFILEORC
                                                            L112.ORA	

パラメータファイルの再作成方法

パラメータファイルの作成はインスタンスが停止した状態でもas sysdbaで接続することで実行することができます。

・pfileからspfileを作成する
SQL>create spfile from pfile;	
・spfileからpfileを作成する
SQL>create spfile from pfile;	
なお、以下のようにファイル名やパスを指定することができます。指定しなかった場合はデフォルトで読み込まれるファイル名とパスが暗黙的に設定されます。
SQL>create spfile='J:\oracle\database\SPFILEORCL112.ORA' from pfile='J:\oracle\database\INITORCL112.ORA';	

パラメータファイルのインスタンス指定

pfile等を確認すると以下のように頭にsidや「*(アスタリスク)」がついていますが、これはパラメータが有効なインスタンスのsidを表しています。 つまり、「__db_cache_size=79691776」の設定はorcl112というインスタンスに対してのみ設定されるパラメータであり、 「processes=150」と「db_name='ORCL112'」というパラメータは全てのインスタンスに対して設定されるパラメータになります。 RAC環境では一つのパラメータファイルを複数のインスタンスが共用することができるためインスタンス名の指定が可能になっています。 なお、「__(アンダースコア二つ)」から始まるパラメータはインスタンス起動中に動的に調整されるパラメータで、「_(アンダースコア)」から始まるパラメータは隠しパラメータです。
orcl112.__db_cache_size=79691776
*.processes=150
db_name='ORCL112'

マニュアル

リファレンス10g リリース2(10.2)
★ORACLE案件承ります