標籤:oracle ack order html 啟動 ble 集中 war iter
執行個體的恢複( crash recovery)
- 什麼時候發生Oracle執行個體恢複?
- shutdown abort;
- 資料庫異常down掉(機器死機,掉電...)
- 執行個體恢複的原因是資料有丟掉,使用redo資料恢複
- 執行個體恢複是一個自動的過程,不需要人工幹預。
- 控制檔案就是為了檢查一致性,如果不一致就會執行個體恢複
- 執行個體恢複發生在那個階段?
- sql>startup nomount(讀取spfle) ,啟動執行個體,oracle給自己分了一些記憶體,oracle的記憶體起來,這個時候沒有執行個體恢複。
SQL> startup nomount; ORACLE instance started.
- sql>alter database mount(讀取控制檔案,把資料庫mount上),沒有執行個體恢複。
- sql>alter database open (檢查控制檔案,資料檔案頭,檢查資料庫的完整性),如果不一致會發生執行個體恢複。Oracle在開啟資料庫時(alter database open),會檢查每個檔案頭上的資訊(SCN)並同控制檔案中相應的資訊(SCN)比較,如果不一致,則進行執行個體恢複。
- 執行個體恢複的過程
- – 前滾 rolling forward
- 讀取狀態為current和active狀態的日誌(redo log),將發生crash時,沒有來得及寫到磁碟上的資料區塊,使用redo的資訊來恢複。
- – 開啟資料庫(alter database open)
- – 復原 rolling back
- 將沒有提交的事務進行復原。
- 執行個體恢複
- sql>shutdown abort;
- 查看alert檔案
|
介質恢複( Media recovery) 當發生以下情況時,執行個體恢複無效,需要進行介質恢複:
- – 資料檔案丟失,損壞。
- – 線上記錄檔(online redo)丟失,損壞。
- – 資料檔案太舊 (比如從一個備份組中恢複過來的檔案。)
- –檔案太新(比如,其它所有的檔案都是從備份中恢複過來的)
|
Oracle執行個體的恢複、介質恢複( crash recovery)( Media recovery)