電子書籍の厳選無料作品が豊富!

現在、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件入った状態)まで戻したいのですが、
解決の手がかりになる情報などがございましたらご教示いただけますでしょうか。


よろしくお願いします。

A 回答 (1件)

こんにちわ。



> 私の考えでは、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 を取得した方が良いと思います。
    • good
    • 0
この回答へのお礼

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

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

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

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


ありがとうござました。

お礼日時:2013/09/24 19:54

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す