こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

オンラインREDOログ障害からの復旧方法について

現在、Oracle11g Release2 11.2.0.3(ASM使用) の環境で、オンラインREDOログファイルが全て消失した場合を想定して、以下の手順で復旧の方法をテストしています。

-----
1.sqlコマンドでテーブルに1件データを挿入する。

2.フルバックアップ(バックアップセット)を取得する。

3.sqlコマンドでテーブルに1件データを挿入する。

4.累積増分バックアップを取得する。

5.sqlコマンドでテーブルに1件データを挿入する。

6.DBをシャットダウンする。
(RMAN> shutdown immediate;)

7.オンラインREDOログファイルを全て削除する。

8.DBをマウントする。
(RMAN> startup mount;)

9.リストアをする。
(RMAN> restore database;)

10.バックアップの際に除外している表領域をオフラインにする。
(SQL> Alter database datafile '+DATA/orcl/DATAFILE/hoge2' offline drop;)

11.リカバリをする。
(SQL> recover database using backup controlfile until cancel;)
(ログの指定は AUTO)

12.DBをオープンする。
(RMAN> alter database open resetlogs;)

13.sqlコマンドでテーブルの中を確認する。
(SQL> select * from HOGEHOGE;)
(データが1件)
-----

上記の手順でDBをオープンにするところまで上手くいったのですが、
私の考えでは、13でテーブルを確認するとデータが2件はいっていると思ったのですが、
結果は、1件だけでした。

累積増分バックアップを取得した時点(データが2件入った状態)まで戻したいのですが、
解決の手がかりになる情報などがございましたらご教示いただけますでしょうか。


よろしくお願いします。

投稿日時 - 2013-09-18 21:49:22

QNo.8270104

困ってます

質問者が選んだベストアンサー

こんにちわ。

> 私の考えでは、13でテーブルを確認するとデータが2件はいっていると思ったのですが、
> 結果は、1件だけでした。
> 解決の手がかりになる情報などがございましたらご教示いただけますでしょうか。
RMAN で取得したBackup に対して、SQL*Plus からRecovery を行っているから
だと思います。

増分 Backup (Backup Set) はRMAN 独自の形式のため、RMAN からRecovery を
行ってやる必要があります。
但しRMAN にはuntil cancel が無いので、最後に取得したBackup 時のログから
Backup されたThread番号, Log順序番からv$archived_log 等を検索して
Recovery するSCN を算出しないといけないですね。

RMAN はRestore する時もultil SCN の指定が可能ですので、Restore を開始する前に
Restore/Recovery するSCN を取得した方が良いと思います。

投稿日時 - 2013-09-20 21:21:37

お礼

ご回答ありがとうございます。

なるほど、SQL*PlusからのRecoveryとRMANからのRecoveryは、違うものなのですね。
同じものだと思っていました。

試しに、SQL*PlusからRecovery、次にRMANからRecovery(recover database)と実行したら、
望んだ結果になりました。

まだ、ultil SCN の指定については確認できていませんが、コマンドなど調べながら試したいと思います。


ありがとうござました。

投稿日時 - 2013-09-24 19:54:30

このQ&Aは役に立ちましたか?

11人が「このQ&Aが役に立った」と投票しています

回答(1)