連載
» 2007年10月01日 00時00分 公開

ORACLE MASTER Silver DBA講座(23):リカバリ機能でOracleデータベースを復活させる (1/2)

ORACLE MASTER資格の中級に位置付けられ、取得すればOracle技術者としてグローバルに認定される「ORACLE MASTER Silver Oracle Database 10g」。例題を利用してポイントを押さえ、確実な合格を目指そう!

[有限会社 G.F.インフィニティ (Project - ∞)]

 前回「Oracleデータベースのバックアップを取得する」で、データベースのバックアップについて紹介しました。最終回である今回は、データベースのリカバリについて詳しく学びましょう。

データベースのリカバリ

ポイント

 バックアップをリストアすることでリカバリを行うメディアリカバリがメインです。REDOログファイルのリカバリ方法としてのログ消去なども対象となります。基本的なリカバリ方法を正しく理解しておくことが重要です。過去の一時点を対象とした不完全リカバリについては、ORACLE MASTER Silverの範囲ではありません。

メディア障害とデータベースのモード

 OracleインスタンスにはNOMOUNT、MOUNT、OPENという3つのモードがありますが、データベースファイルに障害が発生すると、OPENまで進むことができません。ファイルに問題があった場合、データベースのモードは次のようになります。

モード 説明
NOMOUNTで停止 ・初期化パラメータファイルが読み込めない場合
・制御ファイルに問題がある場合
MOUNTで停止 ・オンラインのデータファイルに問題がある場合
・REDOロググループのすべてのメンバーファイルに問題がある場合

 オフラインのデータファイルやREDOロググループの一部のメンバーに問題があっても、データベースをオープンすることができます。

 オープンしたデータベースにおいて、次のファイルに障害が発生すると、データベースは停止します。

  • 制御ファイル
  • SYSTEM表領域に属するデータファイル
  • UNDO表領域に属するデータファイル
  • 現行REDOロググループのすべてのメンバーファイル

ミラー化している制御ファイルの障害

 制御ファイルが損失すると、Oracleインスタンスは停止します。ミラー化していても、1つの制御ファイルが損失するとインスタンスは停止しますが、この場合は正常な制御ファイルを欠落した制御ファイルにコピーし、インスタンスを起動するだけでリカバリが完了します。

ミラー化しているREDOログファイルの障害

 REDOログファイルが損失し、そのことによってREDOロググループが構成できなくなるとインスタンスは停止します。しかし、REDOロググループに1つ以上のREDOログメンバーが残っている場合、インスタンスは継続できます。ミラー化している場合は、同じREDOロググループ内の正常なREDOログメンバーを欠落したREDOログメンバーにコピーするだけでリカバリは完了します。

 次の2つの方法でもリカバリが可能です。

  • REDOログメンバーの削除と追加
    ALTER DATABASE DROP LOGFILE MEMBER 'ファイル名';
    ALTER DATABASE ADD LOGFILE MEMBER 'ファイル名' TO GROUP グループ番号;
  • REDOロググループの消去
    ALTER DATABASE CLEAR LOGFILE GROUP グループ番号;

 REDOログメンバーの削除、追加、REDOロググループの消去を行う場合、該当するREDOロググループが、CURRENT(現行)、ACTIVE(回復に必要)のステータスであるとエラーになります。エラーを防止するには、ログスイッチと手動でチェックポイントを実行します。

非クリティカルなデータファイルの障害

 非クリティカルファイルとは、それが存在しなくてもデータベースがオープンしていられるデータファイルのことです。SYSTEM表領域とUNDO表領域のデータファイル以外は非クリティカルファイルであるといえます。

 非クリティカルファイルの障害が起こり、NOARCHIVELOGモードであった場合、その表領域を再作成しても問題なければ再作成で対応します。索引しか含まれていない表領域である場合やエクスポートしておいたデータがある場合は再作成でよいでしょう。しかし再作成できない場合、クリティカルなデータファイルの障害の際と同じリカバリが必要です。

 ARCHIVELOGモードの場合、次の手順でオープンしたままリカバリが可能です。

  1. データファイルをオフラインにする
  2. 損失したデータファイルをバックアップからリストアする
  3. データファイルをリカバリする
  4. データファイルをオンラインにする

 Enterprise Managerを使用する場合、リカバリしたいファイルを指定するだけで、上記のステップが自動的に行われます。

クリティカルなデータファイルの障害

 クリティカルファイルとは、それが存在しないとデータベースがオープンできないデータファイルです。SYSTEM表領域とUNDO表領域のデータファイルはクリティカルファイルであるといえます。

 クリティカルファイルの障害が起こり、NOARCHIVELOGモードであった場合、すべてのオフラインバックアップ(制御ファイル、データファイル、REDOログファイル)をリストアする必要があります。インスタンスを停止し、すべてをリストアすればインスタンスを起動できますが、前回のバックアップから障害発生までのトランザクションを失うことになります。

 ARCHIVELOGモードの場合、リカバリすることはできますが、次の手順のようにMOUNTモードでの作業が必要です。

  1. データベースを停止する
  2. データベースをマウントする
  3. 損失したデータファイルをバックアップからリストアする
  4. データファイルをリカバリする
  5. データベースをオープンする
       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。