コマンドを使用して、リカバリーを行う手順を説明します。
ポイント
クラスタ環境の場合は、プライマリノードで実行してください。
リカバリーを行う前に、「5.3 リカバリーの前に」を参照して、準備作業をすべて完了してください。
注意
データベースの破損状況によっては、リカバリー処理中にターゲットデータベースが停止することがあります。
リスナーが停止している場合、リカバリーができません。リスナーを起動してから、リカバリーを行ってください。
破損直前までのデータベース更新履歴をデータベースに反映する必要があるため、バックアップ完了時点から破損直前までのすべてのアーカイブログが存在する必要があります。また、オンラインREDOログの更新履歴がすべて適用可能である必要があります。ログの消失のためにリカバリーに失敗した場合は、リストア機能を使用して、データベースの復旧を行ってください。
以下の場合は、データベース破損直前までのデータを復旧することができません。リストアで、データベースを復旧してください。
カレントのオンラインREDOログ・グループが破損している場合
バックアップ以降に生成されたアーカイブログが欠落している場合
データベースのログがリセットされ(RESETLOGS)、過去に取得したバックアップが無効となる場合があります。その場合はリカバリー実施前に表示されるリカバリー計画に警告メッセージが表示されますので、データベース復旧後、すぐにバックアップを取得してください。
以下の場合は、DBチェックで破損が検知できないことがあるため、正常にリカバリーできないことがあります。
1つのREDOログ・グループ内の、一部のREDOログ・メンバーが破損している場合
非アクティブなREDOログ・グループが破損している場合
一時表領域・一時ファイルが破損している場合
データベースがノーアーカイブ・モードの場合は、正常にリカバリーできません。
RAC構成の場合、システムダウンしているクラスタノードがある場合、データベースの復旧ができません。すべてのクラスタノードを起動した後、リストアを行ってください。
クラスタ構成の場合、リカバリーを行う前に、PRIMECLUSTERのクラスタリソースを復旧させる必要があります。詳細については、「5.3.3 PRIMECLUSTERリソースの確認」を参照してください。
RAC構成の場合、リカバリー時、リカバリーを行うノードからすべてのクラスタノードのアーカイブログ出力領域が参照できる必要があります。リカバリー実行前に、リカバリーを行うノードですべてのクラスタノードのアーカイブログ出力領域をリモートマウントするなどの対処をしておいてください。
RAC構成の場合、クラスタノード間でシステム時刻が合っていることを確認してください。ノード間でシステム時刻がずれていると、リカバリーが失敗することがあります。その場合は、復元ポイントにログ順序番号を指定して、リストア機能でデータベースを復旧してください。
リカバリー処理が正常に終了した場合でも、リカバリー後のDBチェックで異常を検知していることがあります。必ず、実行ログの内容を確認してください。実行ログの確認については、「第11章 実行ログ」を参照してください。
rootユーザーでログインします
データベースサーバにrootユーザーでログインします。
root以外のユーザーでログイン後、suコマンドを実行し、rootユーザーに変更することもできます。
リカバリーコマンドを実行します
リカバリーコマンドでリカバリーを実行してください。
# installdir/bin/rmforecovery confname -a |
installdir : 本製品のインストールディレクトリ
confname : 環境設定名
ポイント
コマンド実行時に「-prechk」パラメーターをつけてリカバリーコマンドを実行すると、直前に実行したDBチェックコマンドのチェック結果を元にリカバリー計画を設定します。「-prechk」パラメーターをつけてリカバリーを行う場合は、必ず事前にDBチェックコマンドでDBチェックを実行してください。
リカバリーコマンドおよびDBチェックコマンドの詳細については、「第10章 コマンドリファレンス」を参照してください。
リカバリー計画を確認します
リカバリー計画が設定され、標準出力に表示されます。
提示されたリカバリー計画内容を確認してください。
ボリュームをマウントしています・・・ インスタンスチェックを実行しています・・・ リカバリー計画を作成しています・・・ ■ 制御ファイルリストア:しない
■ 表領域リストア:する
表領域リストア方法:RMAN
修復対象:
USERS
■ 一時ファイル修復:しない
■ REDOログ・メンバー修復:しない
■ メディアリカバリー:する
完全リカバリー
表領域リカバリー
RESETLOGS:なし
■ オンライン復旧
■ 復元ポイント:破損直前
指定ポイント:-
データベース復旧地点:- ボリュームをアンマウントしています・・・ RMFO-53000 リカバリー準備処理に成功しました。
注意
リカバリー計画には、提示したリカバリー計画でリカバリーを実行するに当たっての注意事項や警告メッセージも表示されますので、必ず内容を確認・了承の上、リカバリーを続行してください。
リカバリー計画に、「[注意]RESETLOGSが実行されるため、過去に取得したバックアップはすべて無効になります。」という警告メッセージが出力される場合があります。このメッセージが表示された場合は、リカバリー時にREDOログがリセットされ、リカバリー実施前に取得したバックアップがすべて無効になるため、データベース復旧後、すぐにオンラインバックアップを取得する必要があります。
リカバリー処理を実行します
リカバリー計画が表示された後、以下のメッセージが表示されます。
ok?[y/n]
提示されたリカバリー内容でよければ、「y」を入力してEnterキーを押してください。
リカバリー処理が実行されます。
ok?[y/n]
y<Enter>
ボリュームをマウントしています・・・
リカバリ・カタログ・データベースを起動しています・・・
表領域をオフラインにしています・・・
表領域をリストアしています・・・
表領域のリカバリーを行っています・・・
表領域をオンラインにしています・・・
リカバリ・カタログ・データベースを停止しています・・・
DBチェックを実行しています・・・
ボリュームをアンマウントしています・・・
RMFO-51000 データベースのリカバリーに成功しました。
リカバリーを中断する場合は、「n」を入力してEnterキーを押してください。
リカバリー処理がキャンセルされます。
ok?[y/n] n<Enter> Database Recovery Canceled.
実行結果を確認します
コマンド処理が完了すると、処理終了メッセージが表示されます。
コマンド終了ステータス、および、処理終了メッセージで、コマンドの処理結果を確認してください。コマンド終了ステータスについては、「第10章 コマンドリファレンス」を参照してください。処理終了メッセージについては、「付録B メッセージ」を参照してください。
実行ログを確認して、エラーが発生していないことを確認してください。実行ログについては、「第11章 実行ログ」を参照してください。
注意
リカバリー処理でREDOログがリセットされ、リカバリー実施前に取得したバックアップがすべて無効になった場合、データベース復旧後、すぐにオンラインバックアップを取得する必要があります。
データファイルバックアップ方法に「OPC」もしくは「QuickOPC」を指定している場合、リストア処理の物理コピーが完了していることを確認し、オンラインバックアップを実行してください。
リカバリー処理が異常終了した場合の対処については、「5.7 リカバリー異常終了時の対処について」を参照してください。