データベースファイル
Oracleデータベースは、インスタンスとデータベースファイルから構成されます。
Oracleデータベースはさまざまなファイルを読み書きしています。これらのファイルのうち、以下の3つのファイルをデータベースファイルと呼びます。
- データファイル
- REDOファイル
- 制御ファイル
上記3つ以外では以下のファイルの読み書きを行います。
- 初期パラメータファイル
- パスワードファイル
- アーカイブログファイル(アーカイブREDO ログファイル)
データファイルの詳細について解説します。
データファイル
データファイルは、「データ」を格納しておくためのファイルで表や索引が格納されます。
データファイルに格納したデータが増加した場合、データファイルのサイズを大きくするか、データファイルの数を増やしてより多くのデータの格納に対応できるようにする必要があります。
データファイルの構成に関するデータは後述の「制御ファイル」で管理しています。
REDOログファイル
REDOログファイルは、データベースの更新履歴(REDOデータ)を記録するファイルです。「オンラインREDOログファイル」と呼ばれることもあります。
REDOログファイルには、データベースに加えたすべての更新内容が記録されており、直近の更新が失われるような障害から回復するためにREDOログファイルを使用します。
REDOログファイルは以下のような状況で使用します。
- インスタンスが以上終了した際の障害復旧(インスタンスリカバリ)
- データファイルが破損した際の障害復旧(メディアリカバリ)
REDOログファイルに記録されたデータベースの更新履歴をもとにして、失われたデータを復元するために更新処理を再実行することを「ロールフォワード」と呼ぶことがあります。
制御ファイル
データファイルのファイル名やファイル番号などの構成に関する情報は「制御ファイル」で管理しています。制御ファイルには「データファイル名」「REDOログファイル名」「データベース作成のタイムスタンプ」などが記録されています。
制御ファイルに記録されている情報はOracle データベースにおいては極めて重要な情報です。そのため、制御ファイルは多重化しておくべきファイルです。DBCAでデータベースを作成した場合、デフォルトで制御ファイルが多重化されます。
制御ファイルのファイル名は「CONTROL_FILES」初期化パラメータに設定します。制御ファイルが多重化されている場合は、CONTROL_FILESに複数のファイル名が設定されています。
制御ファイルが多重化されていない状態から新たに制御ファイルを多重化するには、既存の制御ファイルをコピーし、コピーして新たに作成した制御ファイル名をCONTROL_FILESに追記することで制御ファイルを多重化できます。