1. 程式人生 > >Oracle實例的恢復、介質恢復( crash recovery)( Media recovery)

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

base ges unicode rec 備份 -a use data 查看

實例的恢復( 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. 文件太新(比如,其它所有的文件都是從備份中恢復過來的)技術分享

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