Oracle實例的恢復、介質恢復( crash recovery)( Media recovery)


                                                        

                                                                     實例的恢復( crash recovery)

 

      1. 什么時候發生Oracle實例恢復?
        1. shutdown abort;
        2. 數據庫異常down掉(機器死機,掉電...)
        3. 實例恢復的原因是數據有丟掉,使用redo數據恢復

 

      1. 實例恢復是一個自動的過程,不需要人工干預。
        1. 控制文件就是為了檢查一致性,如果不一致就會實例恢復

 

      1. 實例恢復發生在那個階段?
        1. sql>startup nomount(讀取spfle) 啟動實例,oracle給自己分了一些內存,oracle的內存起來,這個時候沒有實例恢復。

SQL> startup nomount;

ORACLE instance started.

      1. sql>alter database mount(讀取控制文件,把數據庫mount上),沒有實例恢復。

 

      1. sql>alter database open (檢查控制文件,數據文件頭,檢查數據庫的完整性),如果不一致會發生實例恢復。Oracle在打開數據庫時(alter database open),會檢查每個文件頭上的信息(SCN)並同控制文件中相應的信息(SCN)比較,如果不一致,則進行實例恢復

 

      1. 實例恢復的過程
        1. 前滾  rolling forward
          1. 讀取狀態為currentactive狀態的日志(redo log),將發生crash時,沒有來得及寫到磁盤上的數據塊,使用redo的信息來恢復。
        2. 打開數據庫(alter database open)
        3. 回滾 rolling back
          1. 將沒有提交的事務進行回滾。

 

      1. 實例恢復
        1. sql>shutdown abort;
        2. 查看alert文件

 

                                            

                                                          介質恢復( Media recovery)

 

當發生以下情況時,實例恢復無效,需要進行介質恢復:

  1. 數據文件丟失,損壞。
  2. 在線日志文件(online redo)丟失,損壞。
  3. 數據文件太舊 (比如從一個備份集中恢復過來的文件。)
  4. 文件太新(比如,其它所有的文件都是從備份中恢復過來的)alter database dataf ile 11 off line;  alter system checkpoint;  QL /> alter database dataf ile 11 online;  Iter database dataf ile 11 online  RA-ß1113:  RA-ØiiiØ:  11: 'C: -DBF'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM