データベースの構成要素の一つ「制御ファイル」について解説します。
制御ファイルとは?
インスタンスの動作に不可欠なバイナリ形式のファイルです。
制御ファイルに含まれる情報とは?
下記の二つの情報が含まれています。
- データベースの構成情報
- 運用管理情報
データベースの構成情報
データベースの構成が変更されるたびに、Oracleによって更新される情報です。
構成情報に含まれる情報
- データベース名
- データファイル名とその位置情報
- REDOファイル名とその位置情報
- 表領域に関する情報
データファイル名とその位置に、該当のデータがない場合は、データベース自体を起動することができません。
どのタイミングで更新されるの?
データファイルや、REDOログファイルの構成を変更した場合
データベースの運用管理情報
インスタンスの起動中に、Oracleによって絶えず更新され続ける情報になります。
なので、インスタンスが起動中に制御ファイルにアクセスができなくなると、インスタンスが強制終了してしまいます。
運用管理情報に含まれる情報
- REDOログや、アーカイブREDOログに関する情報
- バックアップファイルに関する情報
- チェックポイントに関する情報
制御ファイルの障害対策
制御ファイルは、Oralceが動作する上で、非常に重要かつ必要不可欠なファイルであることがわかりました。少なくとも1つは必要です。
また、Oracleでは、障害対策のために制御ファイルの多重化を行う機能が備わっています。
ちなみに、多重化をおこなっているファイル1つでも紛失してしまうとインスタンスが停止してしまいます。ではなぜ多重化するかといえば「インスタンスの停止を防ぐこと」ではなく「インスタンスの停止時間を減らすこと」が目的になります。(多重化しておけば1つが紛失したとしてももう片方の正常な制御ファイルをコピーして簡単に復旧することが可能になります。)
また、多重化するだけでなく異なる物理ディスクに配置したほうが尚良いです。
制御ファイルの確認方法
制御ファイルに関する情報は、「V$CONTROLFILEビュー」で確認することができます。
1 |
SELECT * FROM V$CONTROLFILE; |
制御ファイル名が表示されます。
制御ファイルのバックアップ
RMANによるバックアップ
RMANは「Recovery Manager」の略です。バックアップ情報はRMANが自動管理するので楽です。
OSコマンドによるバックアップ
データベース管理者じゃないと実行できないですがOSコマンドなので汎用的です。
トレースファイルへのバックアップ
制御ファイル自体のバックアップではなく、制御ファイルを再作成するスクリプトです。
この記事へのコメントはありません。