Oracle 備份恢複概要介紹

來源:互聯網
上載者:User

備份恢複是Oracle的一門重要技術,當然大家最好都不需要用到這門技術,就像大家最好都不需要去醫院。

在開啟資料庫的時候,oracle會對控制檔案和資料檔案頭的檢查點進行比對:
 
1.檢查資料檔案頭的checkpoint cnt與控制檔案中的checkpoint cnt是否一致,如果一致,那麼進行第二次檢查
 
2.檢查資料檔案頭開始的SCN和控制檔案中結束的SCN進行比較,如果一致,那麼不需要進行恢複,但是如果不一致,比如突然斷電,控制檔案還沒有
 
 來得及記錄資料檔案的結束的SCN,所以這裡的第二步就無法通過。
 
當然一切備份其實都是為了更快的恢複,所以在制定備份策略,就要兼顧到很多方面
 
下備份的分類:
 
類型分類:
 
邏輯備份和物理備份
 
資料庫狀態:
 
熱備和冷備
 
備份的狀態:
 
一致性備份和非一致性備份
 
備份規模:
 
完全備份(歸檔和非歸檔),資料表空間備份,資料檔案備份,控制檔案備份,歸檔記錄檔備份
 

 

恢複的分類:
 
執行個體恢複,介質恢複
 
恢複方式:
 
完全恢複和不完全恢複
 

 

常見的備份恢複技術:
 
1.使用者管理備份和恢複
 
2.RMAN備份和恢複
 
3.閃回
 
4.邏輯匯入匯出,exp/imp expdp/empdp
 
5.data guard,當然DG是容災用的,說到底其實還是備份
 

 

今天把最簡單的一種技術介紹一下,算開個頭
 
閃回查詢:
 
這個特性其實要歸功與UNDO,閃回查詢其實就是查詢的UNDO操作過的資料,所以如果操作過的資料如果不在UNDO裡了,那麼肯定無法閃回查詢。
 
舉例:比如一個update的操作,操作後,會在UNDO裡構造update之前要操作的資料,所以立即使用閃回查詢可以查到,當然如果你的update是誤操作,就可以閃回
 
但是如果UNDO已經覆蓋了操作的資料,那麼無法閃回。大家都知道UNDO是根據一定的參數,有一個UNDO資料的保留時間,過了這個時間當然會被覆蓋掉。
 
閃回查詢支援的類型:
 
1.基於SCN的閃回查詢(as of scn)
 
2.基於時間的閃回查詢(as of timestamp)
 
基於SCN的閃回查詢執行個體:
 
SQL> create table flash_table_scn as select * from dba_objects where rownum<=1000;
 

 

Table created.
 

 

SQL> select count(*) from flash_table_scn;
 

 

                                          COUNT(*)
 
--------------------------------------------------
 
                                              1000
 

 

SQL> SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL;
 

 

                          GET_SYSTEM_CHANGE_NUMBER
 
--------------------------------------------------
 
                                      122693324625
 

 

SQL> delete from flash_table_scn;
 

 

1000 rows deleted.
 

 

SQL> commit;
 

 

Commit complete.
 

 

SQL> select count(*) from  flash_table_scn as of scn 122693324625;
 

 

                                          COUNT(*)
 
--------------------------------------------------
 
                                              1000
 
as of timestamp還是轉換為as of scn的
 

SQL> select timestamp_to_scn(sysdate) from dual;
 

 

                        TIMESTAMP_TO_SCN(SYSDATE)
 
--------------------------------------------------
 
                                      122693325694
 

 


SQL> select to_char(scn_to_timestamp(122693325694),'yyyy-mm-dd hh24:mi:ss') from dual;
 

 

TO_CHAR(SCN_TO_TIMESTAMP(12269
 
---------------------------------------------------------------------------
 
2013-04-15 17:21:56
 

 

能轉換是因為SMON_SCN_TIME此表,這裡記錄了時間和SCN的對應資料,所以如果這張表沒有對應的,那麼是無法轉換的。
 
閃回技術用起來很方便,這裡還可以閃回database,table這些技術將在接下的繼續。 見  

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.