ファイル (Oracle Database)

ファイル（Oracle Database）では、データベースであるOracle Databaseを構成するファイルについて説明する。その他に、Oracle Databaseを運用するために利用するファイルについても説明する。

 Oracle Databaseのファイル 
Oracle Databaseのサーバは、データベースファイルとインスタンスで構成される。このデータベースファイルはオペレーティングシステムに存在する。一方、インスタンスはシステムグローバル領域とバックグラウンドプロセスで構成される。

 データベースファイル 
データベースファイルは3つのファイルで構成される。
 データファイル
 制御ファイル
 REDOログファイル

 その他のファイル 
データベースファイルの他にも、Oracle Databaseを運用するために以下のファイルを利用する。
 初期化パラメータファイル(サーバパラメータファイル)
 パスワードファイル
 アーカイブREDOログファイル

 データベースファイル 
 データファイル 
「表領域」を保存するファイルである。1つの表領域を1つ以上のデータファイルに保存する。Oracle Database9iまでは1つ以上のデータファイル(SYSTEM表領域)が、10g以降では2つ以上のデータファイル(SYSTEM,SYSAUX表領域)が必要である。

Oracle Databaseのファイルは「表領域」という単位で管理する。Microsoft Windowsのファイルをフォルダ(ディレクトリ)で管理するようなものである。ファイルの用途や保存期間ごとにフォルダで分けるように、Oracle Databaseでは表領域で分ける。

データファイルがいっぱいになったら、データファイルを拡張してサイズを大きくするか、新しいデータファイルを追加する。

 制御ファイル 
データベースの整合性を維持するための情報を記録するためのファイルである。

データファイルやREDOログファイルのファイル名と保存場所を記録する。データファイルやREDOログファイルを追加・削除すると、Oracle Databaseサーバが制御ファイルを自動で更新する。制御ファイルのファイル名や保存場所は、初期化パラメータファイルに「CONTROL_FILES」として記述しておく。Oracle Databaseを起動すると、「マウント」という段階で「CONTROL_FILES」を自動で読み込む。

制御ファイルが読み込めなくなるとOracle Databaseを起動できなくなる。そのため、予備として複数の制御ファイルを用意するべきである。デフォルトの設定では3つの制御ファイルが用意される。ハードディスクが壊れても問題ないように、ハードディスクを複数用意して制御ファイルを別々のハードディスクに保存するとよい。

 REDOログファイル 
Oracle Databaseのデータの更新情報を記録しておくファイルである。停電やハードディスクの障害などで、データの更新情報が損失してしまうのを防止できる。問題が発生したOracle Databaseを復旧するために必要である。

REDOログファイルは2つ以上のグループで管理する。バックグラウンドプロセスのLGWRは、システムグローバル領域のREDOログバッファに保存されるデータの更新情報を1つのグループに書き込む。このグループのREDOログファイルがいっぱいになると、LGWRの書き込み先は次のグループに切り替わる。この切り替えを「ログスイッチ」という。管理者は手動でログスイッチさせることもできる。REDOログファイルをアーカイブREDOログファイルにコピーする「チェックポイント」が完了したら、REDOログファイルでデータの更新情報を記録しておく必要がなくなる。この不要となったREDOログファイルはLGWRが再利用する。

停電やハードディスク障害の対策として、グループごとに複数のREDOログファイルを用意する必要がある。これらのREDOログファイルを「メンバー」と呼んで区別する。LGWRは1つのグループに属するすべてのメンバーに書き込む。ハードディスクが壊れても問題ないように、ハードディスクを複数用意してメンバーを別々のハードディスクに保存するとよい。

 その他のファイル 
 初期化パラメータファイル 
インスタンスの初期設定を記録したファイルである。インスタンスを起動するときに読み込む。制御ファイルを読み込むために必要となる。

初期化パラメータファイルには、主に以下のような初期設定を記録する。
 データベースの名前
 制御ファイルのファイル名と保存場所
 Oracle Database専用のメモリ領域のサイズ
 システムでの各種の制限

 パスワードファイル 
Oracle Databaseのシステムを管理するユーザ(利用者)のパスワードを管理するファイルである。Oracle Databaseをデータベースの起動や停止などの特殊な操作を実行する特別なユーザ(SYSDBAもしくはSYSOPER)でログインする際に利用されるファイルである。(通常のユーザーはデータディクショナリで管理されているが、Oracleが起動されていない状態ではデータディクショナリが参照できないためにこちらのパスワードファイルを使って認証することがある)

 アーカイブREDOログファイル 
REDOログファイルをコピーしたファイルである。Oracle Databaseを復旧するときに必要となる。

 関連項目 
 Oracle Database

Category:オラクル