ORACLE MASTER Silver DBA講座(23)

リカバリ機能でOracleデータベースを復活させる

有限会社 G.F.インフィニティ (Project - ∞)
2007/10/1

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

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

ORACLE MASTER Silver DBA講座 各回のインデックス
第1回 Oracleを適切にインストールするには
第2回 便利なツールでOracleデータベース作成
第3回 Oracleデータベースの制御ツールを使い倒す
第4回 Oracleデータベースの起動と停止を押さえよう
第5回 Oracleデータベースの記憶域はどうなっている?
第6回 Oracleユーザーを作成してみよう
第7回 権限とロールで効果的なユーザー管理を
第8回 Oracleデータベースのオブジェクトを管理する
第9回 SQLでのデータ操作方法を覚えよう
第10回 Data PumpとSQL*Loaderによるデータのロード
第11回 PL/SQLを使いこなしてデータベース管理
第12回 パスワード管理でOracleデータベースを守る
第13回 監査でOracleデータベースのセキュリティ管理
第14回 Oracleのネットワークのサーバ側構成とは?
第15回 Oracleのネットワークのクライアント側構成を知る
第16回 Oracle共有サーバ接続を利用する
第17回 UNDO管理でOracleのデータを守る
第18回 ロックでOracleのデータを守り、競合を防ぐ
第19回 Oracleのパフォーマンスを最適化する
第20回 Oracleでの問題発生を予防する
第21回 Oracleのバックアップ/リカバリの仕組みとは?
第22回 Oracleデータベースのバックアップを取得する
第23回 リカバリ機能で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. データベースをオープンする
覚えた知識を例題で確認!  


ORACLE MASTER Silver DBA講座 バックナンバー

@IT Special 注目企業
@IT Special ラーニング
関連キーワード

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード


スキルアップに役立つサービス
ITトレメ スキルアップに役立つ問題を無料で出題
ラーニングカレンダー ITスキル研修4000件、最新情報の検索できます

キャリアアップ

スポンサーからのお知らせ

・ケ・ュ・チマツ、クヲオ貍シ・ケ・ン・・オ。シ

- PR -
@IT Special 注目企業
インデックス

イベントカレンダー

PickUpイベント

- PR -
もっと見る

お勧め求人情報


@IT Special ラーニング