Orace Flash Restore Point(閃回還原點)

hurp_oracle發表於2014-08-08
還原點基本概念: 
       還原點(Restore point)是Oracle10gR2配合Flashback database推出的一個新特性。Restore point可以單獨使用,也可以和Flashback database聯合使用。     
       我們知道,Flashback database提供了一種將資料庫整個的回滾到之前某個時間點的功能,相當於使用之前的某個備份做基於時間點的恢復,但是比基於時間點的恢復更有效率,因為無需執行備份資料檔案的複製,只需要使用flashback log執行資料庫回滾即可。也就是說,要使用flashback database功能,必須保證所需要的所有flashback log存在(即開了閃回功能)。flashback log存放在flashback recovery area中。由於falshback log中需要包含變更的資料塊的映象,設定過長的flashback retention target,可能導致flashback recovery area空間不足。
Restore point有兩種型別:Normal和Guaranteed。

      Normal restore point相當於某個時間點或者SCN的一個別名。restore point的名字和對應的SCN會儲存在控制檔案中。建立了normal restore point後,如果需要執行flashback database/flashback table/point-in-time recovery等操作時,就可以制定目標時間點為該restore point,而不需要指定當時的SCN了。在很多關於恢復和閃回的試驗中,作者都是在試驗前查詢系統當前的SCN,執行某些操作,然後恢復或者閃回到之前查詢到的SCN。有了normal restore point後,就不再需要查詢系統當前scn了,只需要建立一個有意思的normal restore point名,以後使用該名字即可。

      Guaranteed restore point的功能和normal restore point的功能基本一致,也是作為SCN的一個別名。但是它還有一些和flashback database相關的特性。前面也提到,在執行flashback database到之前的某個時間點時,必須保證所需要的flashback log存在。

建立一個guaranteed restore point,可以保證能將資料庫flashback到該點,即使沒有系統啟用flashback database日誌!這是因為,在建立guaranteed restore point之後,對於任何block的第一次變更,都會將其前映象整個的記錄下來。

      如果系統啟用了flashback database日誌,那麼guaranteed restore point可以保證能將資料庫flashback到guaranteed restore point之後的任何時間點。

1.建立還原點:
還原點模式(normal,guaranteed)
閃回還原點分兩種,一種是Normal Restore Points(正常還原點),另一種是Guaranteed Restore Points(擔保還原點)
正常還原點和擔保還原點的資訊都是儲存在控制檔案,區別在於正常還原點的資訊如果不手動刪除控制檔案也會自動維護管理刪除,而擔保還原點如果不手動刪除,控制檔案是不會自動刪除的,也就說只要設立了擔保還原點沒有手動刪除,資料庫就一定能恢復到那個還原點狀態。如果擔保還原點和Flashback Database一起使用,那麼資料庫就能閃回到擔保還原點起和之後的任何時間點。
注:
guaranteed模式下只要有足夠的閃回區,不會受DB_FLASHBACK_RETENTION_TARGE引數影響。
normal還原點至少保留2048個,保留的個資料受CONTROL_FILE_RECORD_KEEP_TIME引數決定,預設值是7天。

#######Guaranteed 還原點建立

建立guaranteed還原點,必須滿足以下條件:
a.建立一個guaranteed 還原點必須有SYSDBA系統許可權。建立一個normal還原點,你必須有SELECT ANY DICTIONARY or FLASHBACK ANY TABLE privilege
b.必須建立flash recovery area
配置flash recover area共需要二個引數(DB_RECOVERY_FILE_DEST和DB_RECOVERY_FILE_DEST_SIZE)這兩個引數可以在資料庫執行過程中線上修改,修改後立即生效,比如以下列子:
SQL>alter system set db_recovery_file_dest='+dist1' scope=both;
SQL>alter system set db_recovery_file_dest_size='10g' socpe=both sid='例項1';

c.資料庫必須是歸檔模式(如果是擔保還原點,歸檔目錄必須是共享的,因為在FLASHBACK DATABASE NOT STARTED - REQUIRED REDO LOG IS NOT AVAILABLE(文件 ID 560686.1),或者歸檔進行了備份透過RMAN命令視窗,呼叫backup進行還原)

$> su – oracle
$> sqlplus / as sysdba;
Find out if ARCHIVELOG is enabled
SQL> select log_mode from v$database;
If step 3 shows that ARCHIVELOG is not enabled then continue else skip to step 8 below.
 
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open;
SQL> create restore point CLEAN_DB guarantee flashback database;
where CLEAN_DB is the name given to the guaranteed restore point.
Viewing the guaranteed restore point
檢查建立的還原點,記錄對應的SCN號。
SQL> select * from v$restore_point;

#######閃回guaranteed還原點
$> su – oracle
$> sqlplus / as sysdba;
SQL> select current_scn from v$database;
SQL> shutdown immediate;
----閃回guaranteed時資料庫必須mount狀態不能OPEN
SQL> startup mount;
SQL> select * from v$restore_point;
SQL> flashback database to restore point CLEAN_DB;
SQL> alter database open resetlogs;
------對比建立還原點時記錄的SCN號
SQL> SQL> select current_scn,log_mode,flashback_on from v$database;


CURRENT_SCN LOG_MODE     FLASHBACK_ON
----------- ------------ ------------------
    1933454 ARCHIVELOG   RESTORE POINT ONLY              ======>沒有開啟flashback database功能時


注:如下就是歸檔沒有被共享的情況;
SQL> flashback database to restore point CLEAN_DB;
flashback database to restore point CLEAN_DB
*
ERROR at line 1:
ORA-38754: FLASHBACK DATABASE not started; required redo log is not available
ORA-38762: redo logs needed for SCN 13015580437922 to SCN 13015580437926
ORA-38761: redo log sequence 203744 in thread 2, incarnation 1 could not be
accessed


注:歸檔目錄必須在共烹的檔案系統裡,否則不能還原回去;
alter system set log_archive_dest_1='LOCATION=/dbreplay/arch5' scope=spfile sid='oyy3a';
alter system set log_archive_dest_1='LOCATION=/dbreplay/arch6' scope=spfile sid='oyy3b';



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29446986/viewspace-1248038/,如需轉載,請註明出處,否則將追究法律責任。

相關文章