DB管理者が把握しておくべき各種設定ファイルの内容、構成等を整理します。
■環境
| 項目 | バージョン |
|---|---|
| Windows | Windows Server 2008 R2 |
| Oracle | 11gR2 |
初期化パラメータファイル、制御ファイルはデータファイルと並んで重要なファイルのため、構成変更時などは忘れずにバックアップを取得するようにしましょう。
■初期化パラメータファイル
初期化パラメータファイルはOracleのインスタンスを起動する際に読み込み、Oracleインスタンスの設定を行うためのファイルとなります。例えばOracleインスタンスの使用する共有メモリのサイズなどを初期化ファイルで指定することになります。またOracle起動のプロセスにおいてデータベースを構成するファイルの構成を記した制御ファイルの位置なども指定する重要なファイルです(後述)。初期化パラメータファイルの位置は下記のとおりとなります。(XXXXはインスタンス名を示すSIDです)
インストールディレクトリ\database\initXXXX.ora
初期化パラメータファイルにはpfile、spfile(サーバパラメータファイル)と2種類存在しています。pfileはテキストベースで編集可能ですが、spfileはバイナリファイルとなっているためテキストエディタでの直接編集はできません。spfileはOracle9i以降に登場した構成ファイルです。spfileを使用している環境か否かは下記のコマンドを実行することで確認することができます。値が表示される場合、spfileを使用しており、表示されない場合はpfile形式を利用している環境ということになります。
select value from v$system_parameter where name ='spfile';
▼pfileの特徴
- テキストベース
- 設定変更後はOracleインスタンスの再起動が必要
- 名称は「initXXX.ora」(XXXはSID)
▼spfileの特徴
- バイナリベース
- SQLコマンド(ALTER SYSTEM)で設定変更が行えて再起動が不要
- 名称は「spfileXXX.ora」(XXXはSID)
尚、spfileは作成するためにpfileを必要とします。pfileからspfileを作成するには以下のコマンドを使用します。設定変更時などはpfileは忘れずバックアップしておきます。
create spfile='spfile作成先フルパス' from pfile='pfileのフルパス';
spfileからpfileを作成することもできます。spfile利用環境ではテキストで判別可能なファイルとしてpfileを保存しておくのが望ましいと思います。下記を実行後「File created.」を出力されればOKです。
create pfile='pfileのフルパス' from spfile;
▼初期化パラメータファイルが使用されるタイミング
初期化パラメータファイルはOracleインスタンスを起動する際に参照されます。Oracleのインスタンスは4つの状態がありますが、SHUTDOWN状態からNOMOUNT状態に遷移するタイミングで使用されます。
- SHUTDOWN状態・・Oracleインスタンスは停止し使用できない状態
- NOMOUNT状態・・初期化パラメータファイルを読み込み、共有メモリの確保やバックグラウンドプロセスが起動された状態
- MOUNT状態・・制御ファイルを用いてデータファイルの場所を特定し読み出す。データの整合性に問題がないかをチェックする状態
- OPEN状態・・クライアントからの処理を受け付けられるようになった状態
■制御ファイル
制御ファイルはOracle起動プロセスにおいてNOMOUNTからMOUNT状態に遷移する際に参照されるファイルです。データファイルやログファイルの位置を記しており、本ファイルが壊れているとデータファイルなどを読み出すことができなくなってしまいます。制御ファイルはデータベース作成時にデフォルトで複数の保存先に格納されるよう冗長化されています。
制御ファイル内には「チェックポイント情報」のようにOracleインスタンスが起動中の間、読み書きをするデータがあるため常に更新が発生するファイルとなります。(なのでデフォルトで冗長化する構成になっているものと思われます)
https://docs.oracle.com/cd/E16338_01/server.112/b56301/control.htm
更新履歴:2025/07/01、2023/3/29
コメントを残す