Oracle例項恢復機制
整理自《OCP/OCA認證考試指南》
001
例項恢復不僅可以重新構成在崩潰時未被儲存至資料檔案的任何已提交事務,而且可以回滾已被寫至資料檔案的任何未提交事務。這種恢復是完全自動的,我們無法隨意停止例項恢復過程。如果例項恢復失敗,那麼唯一的可能是在例項失敗的同時還存在介質失敗,此時只有在使用介質恢復技術還原和恢復受損檔案後才能開啟資料庫。介質恢復的最後一個步驟是自動的例項恢復。
002 例項恢復機制
大體上,例項恢復只不過是使用聯機日誌檔案的內容將資料庫緩衝區快取重新構建至崩潰之前的狀態。這個重構過程將重演從崩潰時未被寫至磁碟的資料塊的相關重做日誌中提取出的所有變更。完成上述操作之後,就能夠開啟資料庫。此時,資料庫仍然受到損壞,但是由於使用者看到的例項已被修復,因此允許使用者進行連線。例項恢復的這個階段稱為前滾,該階段將恢復所有變更(也就是針對已提交和未提交事務的資料塊變更與撤銷塊變更)。每條重做記錄都具有重新構造一個變更所需的最少資訊:資料塊的地址以及新值。在前滾期間,會讀取每條重做記錄,相應的資料塊從資料檔案載入資料庫緩衝區快取,並且應用相應的變更。隨後,資料塊會被寫回磁碟。
向前回滾結束後,崩潰看上去似乎從未發生過。不過此時資料庫中還存在未提交的事務,這些事務必須被回滾,Oracle將在例項恢復的回滾階段自動完成未提交事務的回滾操作。然而,上述操作則發生在資料庫已被開啟且使用之後。如果使用者在連線時遇到某些需要回滾但是尚未回滾的資料,那麼不存在任何問題。由於前滾階段會填充保護未提交事務的撤銷段,因此伺服器能夠以正常的方式回滾變更,從而實現讀一致性。
例項恢復是自動的、不可避免的,那麼怎樣才能呼叫例項恢復呢?答案是使用startup命令。首先,在資料庫過渡到載入模式時,SMON程式會讀取控制檔案。隨後,在資料庫過渡到open模式時,SMON程式會檢視所有資料檔案和聯機重做日誌檔案的檔案頭。此時,如果已經出現了例項失敗,由於檔案頭沒有全部同步,因此SMON程式會發現例項失敗,從而進入例項恢復程式,而資料庫只能在前滾階段結束後才能被真正地開啟。
提示:如果執行了startup命令,那麼絕對不會丟失任何資料。在發生任何崩潰之後,都應當執行startup命令並檢視崩潰的程度。這個命令可以解決所有問題。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29067253/viewspace-1985646/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle例項恢復Oracle
- Oracle例項恢復和介質恢復Oracle
- Oracle 例項恢復詳解Oracle
- oracle database 例項恢復和介質恢復OracleDatabase
- Oracle 11g 例項恢復Oracle
- oracle例項恢復的學習理解Oracle
- oracle instance recovery例項恢復小記Oracle
- RMAN異機恢復:RAC到單例項單例
- Oracle 11.2.0.4 從單例項,使用RMAN 異機恢復到RACOracle單例
- ORACLE事務和例項恢復過程梳理Oracle
- oracle 11C rman 恢復到單例項Oracle單例
- SCN、Checkpoint、例項恢復介質恢復理解
- rman 恢復機制與恢復測試
- rac恢復到單例項單例
- 單例項恢復至RAC單例
- 資料塊恢復例項
- ORACLE主從中斷後,如何恢復(單例項)Oracle單例
- oracle 關於例項恢復的一個討論Oracle
- Oracle例項恢復——說說前滾和回滾Oracle
- Oracle SCN機制———在備份與恢復中Oracle
- Oracle恢復例項之二:Inactive聯機日誌檔案丟失Oracle
- Oracle 恢復一例Oracle
- RAC asm恢復到單例項ASM單例
- 例項恢復的簡要解析
- Oracle資料檔案損壞恢復例項二則Oracle
- 【例項】之ckpt機制
- Oracle恢復例項之三:active或current聯機日誌檔案丟失Oracle
- InnoDB 崩潰恢復機制
- oracle 異機恢復Oracle
- rman恢復方案和oracle異機恢復Oracle
- rac到單例項的rman恢復單例
- 單例項備份恢復成RAC單例
- MySQL增量備份與恢復例項MySql
- 自己理解的例項恢復步驟
- rac asm 恢復到 單例項 1ASM單例
- rac asm 恢復到 單例項 2ASM單例
- 11G RAC 異機恢復至單例項測試單例
- RMAN Catalog環境下異機全庫恢復例項