>> はじめに |
|
前回の講座では、特定表領域のリカバリを行いましたが、今回はSYSTEM表領域と制御ファイルのリカバリを行います。バックアップ自体は、前回と同様のものを使用しますが、評価ライセンスが切れてしまったり、バックアップデータが失われている場合には、再度環境を用意し、バックアップ等をやり直しておいてください。
>> SYSTEM表領域を含むリカバリ |
|
Oracleでは一般的にSYSTEM表領域はオフラインにできません。そのため、リストアの間はシステムを停止し、リストア後にデータベース全体のリカバリを行う必要があります。
今回は、壊滅的な障害を想定し、SYSTEMとUSERS表領域およびアーカイブログファイルが消失してしまったということを想定してみます。最初にステータスを確認しておきます。
|
次に各データファイルおよびアーカイブログファイルをmvによりリネームし、障害を発生させます。
|
次に、各データファイルのステータスを確認すると、2つのファイルがオープンできないことが確認できます。
|
試しにSYSTEM表領域をオフラインにしようとしてみますが、できないことがわかります。そのため、強制終了を行います。
|
その後、SYSTEMとUSERSおよびアーカイブログを指定してリストアを実行します。
必要に応じて、ファイルのリストアを実際に確認したあとに、mount状態で起動しデータベースのリカバリを実行します。必要なアーカイブログファイル等も、リストアされたものが使用され、メディア・リカバリが完了します。
|
最後に、正常なステータスであることを確認します。
|
>> 制御ファイルのリカバリ |
|
一般に、制御ファイルは異なるディスク装置に振り分けて多重化することが強く推奨されています。しかし、小規模な環境等では単一のRAID装置等を使用し多重化されていないケースが多く見受けられます。本演習の環境でも、3つの制御ファイルが同一ディレクトリに格納されていることがわかります。
|
NetVaultの制御ファイルのバックアップでは、以下のコマンドによりOracle Online APMの初期設定時に指定した場所にファイルとしてバックアップした後に、そのファイルをNetVaultによりバックアップします。
ALTER DATABASE BACKUP CONTROL FILE TO 'Oracle Online APMのControl File Save Location'
例えば、本演習で設定した内容の場合、"/opt/oracle/product/10.1.0/db_1/dbs/o10gctrl.sav"となります。なお、拡張子の".sav"は自動的に付加されます。
ただし、制御ファイルの復旧にあたっては、闇雲に上記のバックアップされたファイルから復旧すべきではなく、考慮する順番があります。
- 複数のディスクに分散配置された多重化制御ファイルを使用する
- データファイルとオンラインREDOログファイルが無事な場合には、CREATE CONTROLFILEコマンドを使用して、新しい制御ファイルを作成する
- それでも駄目な場合には、ファイルとしてバックアップされた制御ファイルを使用する
- バックアップされた制御ファイルがローカル・ディスクに無い場合には、NetVaultからリストアする
上記4番のバックアップされた制御ファイルからリカバリを行う際には、リカバリ完了後にRESETLOGSオプションを使用してデータベースを起動し、データベースの完全なバックアップを再度行う必要があります。
では、実際に障害を発生させ確認をしてみましょう。
まず、上記順番の中で1~3番を検討から外すようにします。2番のデータファイルとオンラインREDOログについては、実際には障害を発生させませんが、障害があると仮定し、考慮に入れないことにします。
|
制御ファイルに障害を発生させ、一度シャットダウンし、起動しようとすると正常に起動できないことがわかります。
|
NetVaultを使用し、制御ファイルのリストアを実行します。小さなファイルなので、VTLを使用している場合は、ほぼ瞬間で完了します。
その後、リストアされたファイルをオリジナルの制御ファイルとしてコピーします。
|
一度シャットダウンして、そのまま起動しようとしてもRESETLOGSが必要であるとのメッセージが表示されます。また、メッセージ通りにRESETLOGSオプション付きでオープンを試みても、SCNの整合性が合わないためにエラーとなってしまいます。
|
正しい手順としては、先にUSING BACKUP CONTROLFILEオプション付きでリカバリ処理を行う必要があります。また、途中で必要なログが見つからないメッセージが表示されています。これは、アーカイブログではなくオンラインREDOログが必要とされているので、AUTOリカバリではなく、手入力でオンラインREDOログファイル名を指定します。
|
最終的に、RESETLOGSオプション付きでデータベースをオープンし、ステータスを確認して問題がないことを確かめます。
|
なお、RESETLOGSオプション付きでオープンした場合には、ログがリセットされ最初から始まります。不要なログは削除しておき、ログスイッチをかけて番号が最初からになっていることを確認しておきましょう。また、バックアップ制御ファイルを使用してリカバリすると、ローカル管理一時表領域から一時ファイルのエントリが削除されるため、再追加を行っておきます。
|
>> 次回は・・・ |
|
以上、Oracle Online APMの最後の演習として、SYSTEM表領域および制御ファイルのリカバリについて確認してきました。次回の演習では、NetVaultが提供するもうひとつのOracleオンライン・バックアップ用オプションであるOracle RMAN APMを使用した演習になります。リストアの手順等は若干異なりますが、リカバリに関する考え方に大きな差はありません。今までの演習でご説明した内容は割愛させてもらうこともありますので、しっかりと今までの内容を確認しておいてください。