天天看點

Oracle備份恢複之Trial Recovery

官方解釋:A trial recovery applies redo in a way similar to normal media recovery, but it never writes its changes to disk and it always rolls back its changes. Trial recovery occurs only in memory.

trial recovery基本上類似于正常的媒體恢複,應用redo的過程僅僅發生在記憶體中,不會把資料的改變寫到磁盤。說白了就是測試媒體恢複過程

1 預設,如果恢複由于資料塊損壞而卡住或者遇到類似問題,會标記相關塊以求繼續恢複,同時寫錯誤資訊到alert檔案。

2 當遭遇如下問題時,Trial Recovery過程會結束

● 超出記憶體buffer限制

● 遭遇一個不可恢複性錯誤,即使通過标記壞塊也不能解決,比如檔案丢失

● 使用者取消或者終止恢複會話

● 所有必須的redo已經被應用,即不需要恢複。

當 trial recovery 結束,一切恢複原樣,隻是錯誤消息會記錄在alter 檔案中。運作測試時,注意排除由于記憶體原因造成測試過程結束的影響。

三 Trial Recovery 的語句

recover ……..test

例如:

recover database test

recover database using backup controlfile until cancel test

recover tablespace users test

recover database until cancel test

注意: 預設trial recovery會在記憶體中标記(無限制)的壞塊,使恢複過程能夠繼續進行。我們可以指定 allow n corruption 語句 在 recover…..test 後面,以限制可以标記的壞塊數。

四 測試過程

正常情況:

RMAN> recover database test;

Starting recover at 05-DEC-12

using channel ORA_DISK_1

starting media recovery

archive log thread 1 sequence 1 is already on disk as file /oracle/archive/1_1_801229657.dbf

archive log thread 1 sequence 2 is already on disk as file /oracle/archive/1_2_801229657.dbf

archive log thread 1 sequence 3 is already on disk as file /oracle/archive/1_3_801229657.dbf

archive log thread 1 sequence 4 is already on disk as file /oracle/archive/1_4_801229657.dbf

archive log thread 1 sequence 5 is already on disk as file /oracle/archive/1_5_801229657.dbf

archive log thread 1 sequence 6 is already on disk as file /oracle/archive/1_6_801229657.dbf

archive log thread 1 sequence 7 is already on disk as file /oracle/archive/1_7_801229657.dbf

archive log thread 1 sequence 8 is already on disk as file /oracle/archive/1_8_801229657.dbf

archive log thread 1 sequence 9 is already on disk as file /oracle/archive/1_9_801229657.dbf

archive log thread 1 sequence 10 is already on disk as file /oracle/archive/1_10_801229657.dbf

archive log thread 1 sequence 11 is already on disk as file /oracle/archive/1_11_801229657.dbf

archive log thread 1 sequence 12 is already on disk as file /oracle/archive/1_12_801229657.dbf

archive log thread 1 sequence 13 is already on disk as file /oracle/archive/1_13_801229657.dbf

archive log thread 1 sequence 14 is already on disk as file /oracle/archive/1_14_801229657.dbf

archive log filename=/oracle/archive/1_1_801229657.dbf thread=1 sequence=1

archive log filename=/oracle/archive/1_2_801229657.dbf thread=1 sequence=2

archive log filename=/oracle/archive/1_3_801229657.dbf thread=1 sequence=3

archive log filename=/oracle/archive/1_4_801229657.dbf thread=1 sequence=4

archive log filename=/oracle/archive/1_5_801229657.dbf thread=1 sequence=5

archive log filename=/oracle/archive/1_6_801229657.dbf thread=1 sequence=6

archive log filename=/oracle/archive/1_7_801229657.dbf thread=1 sequence=7

archive log filename=/oracle/archive/1_8_801229657.dbf thread=1 sequence=8

archive log filename=/oracle/archive/1_9_801229657.dbf thread=1 sequence=9

RMAN-11006: WARNING: test recovery results:

ORA-10574: Test recovery did not corrupt any data block

ORA-10573: Test recovery tested redo from change 2779426987 to 2779427975

ORA-10572: Test recovery canceled due to errors

ORA-10581: Can not modify redo log header during test recovery

media recovery complete, elapsed time: 00:00:00

Finished recover at 05-DEC-12

移除其中一個歸檔後則情況如下:

RMAN> recover database test;     

ORA-10573: Test recovery tested redo from change 2779426987 to 2779426987

ORA-10571: Test recovery canceled

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-03002: failure of recover command at 12/05/2012 20:59:16

RMAN-06053: unable to perform media recovery because of missing log

RMAN-06025: no backup of log thread 1 seq 10 lowscn 2779427837 found to restore

上面錯誤提示可清晰看到提示日志檔案丢失提示

不過感覺這指令還不如下面指令好用

RMAN> restore validate archivelog sequence between 1 and 14;

Starting restore at 05-DEC-12

RMAN-03002: failure of restore command at 12/05/2012 21:08:18

RMAN-06026: some targets not found - aborting restore

本文轉自 zhangxuwl 51CTO部落格,原文連結:http://blog.51cto.com/jiujian/1080573,如需轉載請自行聯系原作者