制御ファイルの障害対策の1つとして制御ファイルを複数ファイルにミラーリングしますが、ディスクの筐体障害などによってすべての制御ファイルに障害が発生すると、データベースはバックアップからリストア・リカバリする必要があります。例えば、制御ファイルをミラーリングしていてもファイル名だけが異なり、同じディレクトリに配置しているケースがあります。この場合、単体のディスク障害でもそのディレクトリのあるディスクに障害が発生すると、結局すべての制御ファイルに障害が発生することになります。
RMANでは、制御ファイルのリカバリについて、別データベースにRMANリポジトリを保持している場合と、ターゲット・データベースの制御ファイルのみにRMANリポジトリを使用している場合ではリカバリ方法が異なります。
以下では、初めに制御ファイルのバックアップ方法、そしてRMANリポジトリの保持先の違いによる制御ファイルのリストア・リカバリ手順を説明していきます。なお、データベースはアーカイブログモードで運用していることを前提とします。
制御ファイルのバックアップ方法にはいくつかありますが、ここではRMANを使用して行う2つの方法について説明します。1つは明示的にBACKUPコマンドを実行して取得する方法、そして、もう1つは自動でバックアップする方法があります。
1つ目の方法では、リスト6のようなBACKUPコマンドを明示的に実行し、制御ファイルのバックアップを取得します。
run{ |
リスト6 BACKUPコマンドによる制御ファイルの明示的なバックアップ |
もう1つの方法である制御ファイルを自動バックアップするためには、初めにリスト7のようなCONFIGUREコマンドによる設定が必要です。
【制御ファイルの自動バックアップを設定】 |
リスト7 制御ファイルの自動バックアップの設定 |
これにより設定情報が制御ファイルに永続的に登録され、BACKUPコマンドやターゲット・データベースで表領域の追加や削除などが実行されるたびに、自動的に制御ファイルのバックアップが取得されます。制御ファイルの自動バックアップの設定内容は、リスト8のshow allコマンドで確認できます。
RMAN> show all; |
リスト8 制御ファイルに永続設定された内容の確認 |
注意点として、CONFIGURE CONTROLFILE AUTOBACKUP FORMATのファイルパスには、「%F」置換変数を含める必要があります(ほかの置換変数を含めることはできません)。この「%F」置換変数を含めることで、ファイル名にデータベースID(以下、DBID)を含むバックアップを取得できます。これにより、RMANのリポジトリに制御ファイルを使用していて、リストア時に制御ファイルを損失してしまっている場合でも、DBIDを基に対象の制御ファイルを特定し、リストアに必要な情報を確認できます。
制御ファイルの自動バックアップは、表領域の追加、表領域のONLINE/OFFLINE時にその都度実行されますが、これらはすべてディスク上に保存されます。このため、自動バックアップを有効にするときには自動バックアップ用の領域を確保する必要があります。
Copyright © ITmedia, Inc. All Rights Reserved.