2 Replies Latest reply: Mar 26, 2012 10:42 AM by 926157 RSS

    oracleのリカバリについて

    926157
      oracle database 11g R2
      Windowsserver2008R2


      はじめまして。
      テストでdatabaseの復元を行っています。


      OSをイメージから復元し、数日前にEnterpriseManagerでオンラインバックアップしていた「バックアップセット」のファイルをcatalogコマンドで制御ファイルに復旧させ、データベース全体のリカバリを実施しました。

      ※可用性→リカバリの実行→データベース全体→現在の時間またはPoint-in-Timeへのリカバリ
      →現在の時間へのリカバリ→いいえ。デフォルトの場所にファイルをリストア→発行


      しかし、リカバリ終了後に「失敗しました」と表示されdatabaseがオープンできません。
      SQL>startup を実行してみると、 「制御ファイルがDBFファイルより古いです」と表示されdatabaseが起動出来ません。

      極力EnterpriseManagerで済ましたいのですが、制御ファイルを壊さず(?)にdatabaseを復元出来る方法はあるのでしょうか?


      ちなみにoracleが正常な状態でワザとDBFファイルを破壊(リネーム)して、EnterpriseManagerからデータベース全体のリカバリを行った場合は問題なく復元できます。
        • 1. Re: oracleのリカバリについて
          hottate
          エラーメッセージは ORA-01207 ですかね。
          戻した制御ファイルバックアップがデータファイルより古くて、リストアで指定した目標の日時がデータファイルの持っている日時より古い時点だったとか。


          # 何日何時の時点のバックアップをリストアして、リカバリに指定した年月日時分秒がいつかを確認する必要があるのではと思われ。
          • 2. Re: oracleのリカバリについて
            926157
            こんばんは、情報有難うございます。

            エラーメッセージは ORA-01207 ですかね。
            はい、このエラーでした。
            Oracle自体初めて扱うもので、参考書やNET情報を探していました。
            EnterpriseManagerだけで復元できると思っていましたが、そうはいかないようですね。

            戻した制御ファイルバックアップがデータファイルより古くて、リストアで指定した目標の日時がデータファイルの持っている日時より古い時点だったとか。
            EnterpriseManagerから全体リカバリーをおこなうと、制御ファイルを上書きしてしまい、今回のような症状になってしまったようです。
            頂いた情報を参考に再度NETでしらべたところ、「Oracle障害回復手順」というサイトにたどり着き、私の求めていた答えが見つかりました。
            全体リカバリー前に制御ファイルを別途退避しておき、リカバリー後に書き戻すか、「recover database using backup controlfile;
            」「alter database open resetlogs;」文などでバックアップからリストアした制御ファイルを使用して回復処理が必要なのですね。

            掲示板の使い方がよく分かっていませんでしたが、過去ログにも類似した案件が出ておりました。
            少しずつ勉強して覚えていきたいと思います。
            ありがとうございました。