はじめまして。エンジニアの加戸と申します。
今回は制御ファイルについてお話しします。
制御ファイルって何?
まずは、「Oracleのファイルと起動」で使用された下記の図をご覧ください。
制御ファイルは、データベースを構成するデータファイルやREDOログファイル(アーカイブログファイル)の名前や格納されている場所といった情報に加え、データファイルが追加されたといったファイル構成に関する現在の状態など、データベースに関わる様々な管理情報が格納されています。
少々強引ですが、データベースをアパート、データベースを構成するファイルたちをアパートの住人に例えれば、制御ファイルは管理人のような存在です。

Oracleデータベースにとって、制御ファイルはとても重要なファイルなのです。
制御ファイルの多重化
「REDOログファイル(アーカイブログファイル)」にて、REDOログファイルの多重化についてに触れましたが、制御ファイルも重要なファイルですので、もちろん多重化を行います。Oracleでは少なくとも2つの制御ファイルを作成して多重化を行いますが、多重化している制御ファイルの1つでも損失するとインスタンスは停止してしまいます。
REDOログファイルの多重化と異なる点は、制御ファイルを多重化する目的はインスタンスが停止するのを防ぐことではなく、インスタンスの停止時間を短くするためにあります。
制御ファイルを多重化しておけば、制御ファイルの1つが損失しインスタンスが停止しても、残りの正常な制御ファイルをコピーするだけで復旧することができるからです。
ひとえに多重化といっても、REDOログファイルの多重化と制御ファイルの多重化では目的が異なるのが特徴です。


制御ファイルは多重化するだけでなく、異なる物理ディスク上に配置するとなお安心です。
そんな、重要な制御ファイルなので、バックアップに関しても簡単にご紹介します。
制御ファイルのバックアップ
制御ファイルをバックアップする方法は3つあります。【前提条件=Oracleデータベースを起動した状態でのバックアップ(オンラインバックアップ)】
1. RMAN(Recovery Manager) によるバックアップ
Oracle推奨である、Oracle専用のバックアップ・リカバリツールであるRMAN(Recovery Manager)によるバックアップです。RMAN独自のRMANコマンドで実行します。
また、Enterprise Manager(EM)を使用してGUI操作でRMANバックアップを行うこともできますが、細かい設定変更を行うときは、RMANコマンドを利用したほうが便利なことも多いです。
バックアップ情報はRMANが自動管理するため非常に楽です。
【前提条件=Oracleデータベースを停止した状態でのバックアップ(オフラインバックアップ)】
2. OSコマンドによるバックアップ
こちらは、データベース管理者自身で管理しなければいけませんが、制御ファイルはOSコマンドでコピーすることでもバックアップは可能です。
【前提条件=オンラインバックアップ】
3. トレースファイルへのバックアップ
上述の1、2の方法は制御ファイル自体のバックアップ方法ですが、「制御ファイルを再作成するスクリプト」をトレースファイルに出力しておき、制御ファイルを再作成できるようにしておくというバックアップ方法もあります。
基本的には、ファイル自体をバックアップするので、あまり活用する機会はないかもしれませんが、参考までに記載しました。
まとめ
今回は制御ファイルについて説明しました。最後にポイントをまとめておきます。・制御ファイルはデータファイルやREDOログファイルといったファイルの管理人
・制御ファイルは1つでも損失するとインスタンスは停止する
・制御ファイルの多重化はインスタンスの停止時間を短くするため
・制御ファイルのバックアップ方法(RMAN、OSコマンド、トレースファイルへの再作成スクリプトの出力)
RELATED ARTICLE関連記事
RELATED SERVICES関連サービス
Careersキャリア採用
LATEST ARTICLE
CATEGORY
- AWS (66)
- Azure (24)
- Databricks (18)
- GCP (27)
- Nutanix (14)
- Oracle Cloud Infrastructure(OCI) (19)
- Oracle Cloud VMware Solution(OCVS) (4)
- Oracle DB (92)
- Oracle Linux KVM (19)
- Python (3)
- Snowflake (22)
- Veeam Backup & Replication (13)
- インフラ (76)
- クラウド (137)
- コンテナ技術 (17)
- セキュリティ (22)
- データエンジニアリング (64)
- ネットワーク (21)
- 仮想基盤 (37)
- 生成AI (18)




