制御ファイルはデータベースが正常に起動するために必要なファイルで、データベースの起動中は頻繁に更新される。したがって、データベースが問題なく稼働するためには制御ファイルが正しく維持されている必要がある。ここでは、制御ファイルの多重化を中心に解説する。
制御ファイルはデータベースの物理構造を記録したバイナリファイルで、次のような情報が含まれている。
- データベース名
- データベース作成時のタイムスタンプ
- データファイルとREDOログファイルの名前と位置
- 表領域情報
制御ファイルはデータベース起動の際、マウント(MOUNT)する段階で読み込まれる。この時に読み込まれる制御ファイルをCONTROL_FILES初期化パラメータで指定する。制御ファイルに障害が発生して読み込みができない場合、データベースはマウントに失敗し、データベースをオープンできない。したがって、制御ファイルの損失を防ぐために障害対策が必要である。
制御ファイルの障害対策と多重化
制御ファイルの障害からデータベースを保護するための対策について確認する
多重化
CONTROL_FILES初期化パラメータに複数のファイルを指定し、同一内容の制御ファイルを持たせることが可能である。これを多重化という。通常、各ファイルはディスク障害から保護するために物理的に異なるディスクに配置する。
制御ファイルを多重化すると、いずれかのファイルに障害が発生した場合でも、他の正常なファイルをリストアすることにより容易にリカバリができる。
EnterPrize Managerの「制御ファイル」ページで現在の制御ファイルの状況が確認できる。
制御ファイルのバックアップ
制御ファイルをほかのメディアにコピーし、バックアップする。バックアップを取得しておけば、すべての制御ファイルに障害が発生した場合でも、バックアップからリストアすることによりリカバリができる。
ただし、データベースの物理構造を変更すると、作成したバックアップはデータ損失のないリカバリには使用できなくなる。そのため、以下のような変更を行った場合はバックアップを取り直す必要がある。
- データファイルの追加、削除または名前変更
- 表領域の追加または削除、表領域の読み取り/書き込み状態の変更
- REDOログファイルまたはREDOロググループの追加と削除
トレースにバックアップ
全ての制御ファイルに障害が発生し、かつ、利用できるバックアップが存在しない場合などはCREATE CONTROLFILE文により制御ファイルを再作成することによってリカバリする。
EnterPrize Managerの「トレースにバックアップ」ボタンをクリックすると、この制御ファイルを作成するためのスクリプトが書き出されたトレースファイルが作成される。
このトレースファイルには、制御ファイルを再作成するためのCREATE CONTROLFILEぶんが含まれている。
最終更新:2014年04月19日 15:47