Oracle例項恢復
例項恢復
Oracle例項在非正常關閉或執行SHUTDOWN ABORT強制關閉後,例項在下次開啟資料庫之前會執行例項恢復過程,這個過程是由Oracle自動完成的。執行例項恢復的目的是確保資料的一致性,只有當聯機Redo日誌檔案和UNDO表空間的介質沒有被破壞才能確保例項恢復能夠成功。
1. RAC的例項恢復
當軟體、硬體或者人為問題導致例項失敗之後,Oracle資料庫自動使用聯機Redo日誌和UNDO資料執行例項恢復操作。
Crash恢復與例項恢復的區別:
l 一個單例項資料庫或者RAC資料庫所有例項失敗之後,第一個開啟資料庫的例項會自動執行例項恢復。這種形式的例項恢復稱為Crash恢復。
l 一個RAC資料庫的一部分但不是所有例項失敗後,在RAC中倖存的例項自動執行失敗例項的恢復稱為例項恢復。
根據Crash恢復和例項恢復的不同,由倖存例項或者第一個重啟的例項讀取失敗例項生成的聯機Redo日誌和UNDO表空間資料,使用這些資訊確保只有已提交的事務被寫到資料庫中,回滾在失敗時候活動的事務,並釋放事務使用的資源。
2. 例項恢復的階段
在例項發生異常終止的情況下,資料庫處於以下的狀態:
l 事務提交的資料塊只寫入聯機Redo日誌中,沒有更新到資料檔案(那麼未寫入資料檔案的更新必須重新寫入資料檔案)。
l 由於DBWR程式是非同步向磁碟寫入資料的,資料檔案中可能包含沒有被提交但已經寫入資料檔案的改變,這些改變必須回滾到之前的狀態,以確保資料的一致性。
例項恢復利用聯機Redo日誌檔案解決第一個問題,利用UNDO資料同步資料檔案解決第二個問題,從而確保資料庫資料的一致性。
因此,例項恢復過程會經歷兩個階段:
u 例項恢復的第一個階段稱為Cache恢復或者前滾,確保聯機Redo日誌中所有已提交的事務操作的資料寫回到資料檔案中。如果正在執行的檢查點還未完全執行完畢時發生例項失敗,前滾過程可能需要通過多個聯機Redo日誌檔案才能使資料恢復到之前時間的狀態。前滾之後,資料中就包含了連線Redo日誌檔案中所有已提交的資料。在失敗之前,資料檔案中可能也包含未提交的改變,或者是記錄在聯機Redo日誌中但未提交的資料,在前滾的時候被寫到硬碟中。
u 例項恢復的第二個階段稱為回滾或者事務恢復,Oracle資料庫應用UNDO塊回滾在資料塊中未提交的改變,這些資料塊是在失敗之前或者Cache恢復期間被寫入的。回滾完成之後,整個例項恢復才算完成,而Redo和UNDO的丟失或者損壞都可能導致例項恢復失敗。Oracle資料庫能同時回滾多個事務。所有在失敗的時候是活動的事務都被打上了終止的標記,等待SMON程式回滾終止的事務。
資料庫由SMON後臺程式自動應用聯機Redo日誌檔案中的條目和讀取UNDO表空間中的資料完成例項恢復。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29339097/viewspace-1062090/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE事務和例項恢復過程梳理Oracle
- rac恢復到單例項單例
- 【資料庫資料恢復】Oracle ASM例項無法掛載的資料恢復案例資料庫資料恢復OracleASM
- 記錄一次Oracle 11.2.0.4 RAC異地恢復到單例項Oracle單例
- 【資料庫資料恢復】ASM例項不能掛載的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- 從nub備份恢復(同平臺)恢復RAC至單例項單例
- oracle資料庫跨平臺(AIX)從RAC恢復至(linux)下的單例項Oracle資料庫AILinux單例
- NBU恢復oracleOracle
- Oracle邏輯備份與恢復選項說明Oracle
- Oracle案例12——NBU Oracle恢復Oracle
- oracle冷備恢復Oracle
- oracle 異機恢復Oracle
- 4.1. Oracle例項Oracle
- Oracle Far Sync例項Oracle
- 將RAC備份集恢復為單例項資料庫單例資料庫
- oracle資料庫與oracle例項Oracle資料庫
- Oracle RMAN恢復測試Oracle
- Oracle 不完全恢復Oracle
- oracle 例項表查詢Oracle
- Oracle RushQL勒索病毒恢復方法Oracle
- Oracle 備份 與 恢復 概述Oracle
- Oracle 備份恢復之 FlashbackOracle
- Oracle恢復誤刪資料Oracle
- ORACLE備份&恢復案例(轉)Oracle
- oracle基於SCN增量恢復Oracle
- Oracle Redo丟失恢復方案Oracle
- Oracle RMAN 表空間恢復Oracle
- ibbackup恢復報錯一例
- 恢復備份例項時出現ORA-01659的解決方法UA
- Oracle恢復一例--ORA-03113、ORA-24324,ORA-01041錯誤Oracle
- 備份與恢復oracle_homeOracle
- oracle 增量備份恢復驗證Oracle
- Oracle 備份和恢復介紹Oracle
- oracle使用小記、刪除恢復Oracle
- ORACLE備份&恢復案例三(轉)Oracle
- Oracle資料庫恢復之resetlogsOracle資料庫
- ORACLE備份&恢復案例二(轉)Oracle
- Networker恢復oracle rac到單機Oracle
- 【Oracle 恢復表空間】 實驗Oracle