oracle例項恢復的學習理解
一、例項恢復概述:
例項恢復就是將online redo log裡的記錄應用到資料檔案上,用來重新建立從最近的一次檢查點以後發生的改變。
當管理員嘗試開啟一個非一致性關閉的資料庫時自動發生。
二、例項恢復目的及相關概念:
1.目的:
由於oracle資料庫管理資料庫改變的工作原理,資料庫例項失敗後,資料庫的檔案有可能處於非一致狀態。oracle例項恢復就是用來確保發生例項失敗後,資料庫仍然處於一致性狀態。
2.redo thread概念:
一個redo thread是例項產生的所有改變的記錄集。單例項資料庫有一個redo thread,但RAC資料庫有多個redo thread,每個例項對應一個redo thread。
3.例項失敗造成資料不一致的根本原因:
當一個事務提交的時候,LGWR將遺留在記憶體中的記錄和事務的SCN寫入到online redo log中。但是,DBWR是在其方便的時候將修改的資料塊寫入到資料檔案中。因此,沒提交的改變,有可能會暫時留在資料檔案中,或者已提交的改變在資料檔案中不存在,造成資料的不一致。
4.例項失敗可能造成結果
如果一個open狀態的資料庫例項失敗,不管是因為SHUTDOWN ABORT語句還是因為其他的非正常關閉,都有可能造成以下結果:
(1)事務提交的資料塊只存在online redo log中,並沒有寫入到資料檔案中。這些改變需要重新應用到資料庫上。
(2)當例項失敗的時候,資料檔案中包含了沒有提交的改變。這些改變必須回滾以保證事務級一致性。
三、什麼時候進行例項恢復?
1.是否需要進行例項恢復依賴於redo thread。
2.當資料庫例項在讀寫狀態下被開啟,redo thread會在控制檔案中被標記成open狀態。
3.當資料庫例項被一致性關閉,redo thread會在控制檔案中被標記成關閉。
4.如果例項啟動,正常來說redo thread在控制檔案中應該是關閉狀態,此時若發現狀態為open,則需要進行例項恢復。
5.資料庫會在以下情況自動進行例項恢復:
(1)單例項資料庫失敗或者RAC所有例項失敗後,第一次開啟資料庫。這種形式的例項恢復也叫crash recovery。oracle資料庫將在例項恢復的同時恢復線上redo thread。
(2)RAC環境下部分例項失敗,會自動的透過配置中的可用的例項來進行例項恢復。
四、誰負責進行例項恢復?
SMON後臺程式負責進行例項恢復,自動應用online redo。不需要人工的干預。
五、檢查點在例項恢復中的重要性
1.檢查點位置在例項恢復中決定了哪些改變需要應用到資料檔案上。因為檢查點位置可以保證所有SCN值比檢查點SCN值小的改變,都已經儲存到了資料檔案上。
2.檢查點位置由CKPT程式來維護,CKPT定時檢視DBWn對檢查點佇列上的髒塊寫入進度,確認完最後寫入資料檔案的髒塊後,進行檢查點位置更新為最後寫入資料檔案中的髒塊。
3.檢查點位置決定了例項恢復的起點。而例項恢復的終點為online redo log中最後寫入的記錄(end of redo thread)
六、例項恢復的階段
1:該階段稱為快取恢復或者前滾,即將online redo log裡的變化全部重新應用到資料檔案上,該階段結束後,資料檔案中同時存在已提交和未提交的資料。
2:該階段稱為回滾或事務恢復,即將失敗前還未提交的變化,進行回滾,保證該階段結束後,資料檔案中只存在已提交的資料。
七、注意
1.例項恢復只需要online redo log和當前的線上資料檔案來同步資料,以此保證他們的一致性。
2.若online redo log損壞,則無法進行例項恢復。
3.若undo 資料損壞,則例項恢復的事務恢復階段將會失敗。
例項恢復就是將online redo log裡的記錄應用到資料檔案上,用來重新建立從最近的一次檢查點以後發生的改變。
當管理員嘗試開啟一個非一致性關閉的資料庫時自動發生。
二、例項恢復目的及相關概念:
1.目的:
由於oracle資料庫管理資料庫改變的工作原理,資料庫例項失敗後,資料庫的檔案有可能處於非一致狀態。oracle例項恢復就是用來確保發生例項失敗後,資料庫仍然處於一致性狀態。
2.redo thread概念:
一個redo thread是例項產生的所有改變的記錄集。單例項資料庫有一個redo thread,但RAC資料庫有多個redo thread,每個例項對應一個redo thread。
3.例項失敗造成資料不一致的根本原因:
當一個事務提交的時候,LGWR將遺留在記憶體中的記錄和事務的SCN寫入到online redo log中。但是,DBWR是在其方便的時候將修改的資料塊寫入到資料檔案中。因此,沒提交的改變,有可能會暫時留在資料檔案中,或者已提交的改變在資料檔案中不存在,造成資料的不一致。
4.例項失敗可能造成結果
如果一個open狀態的資料庫例項失敗,不管是因為SHUTDOWN ABORT語句還是因為其他的非正常關閉,都有可能造成以下結果:
(1)事務提交的資料塊只存在online redo log中,並沒有寫入到資料檔案中。這些改變需要重新應用到資料庫上。
(2)當例項失敗的時候,資料檔案中包含了沒有提交的改變。這些改變必須回滾以保證事務級一致性。
三、什麼時候進行例項恢復?
1.是否需要進行例項恢復依賴於redo thread。
2.當資料庫例項在讀寫狀態下被開啟,redo thread會在控制檔案中被標記成open狀態。
3.當資料庫例項被一致性關閉,redo thread會在控制檔案中被標記成關閉。
4.如果例項啟動,正常來說redo thread在控制檔案中應該是關閉狀態,此時若發現狀態為open,則需要進行例項恢復。
5.資料庫會在以下情況自動進行例項恢復:
(1)單例項資料庫失敗或者RAC所有例項失敗後,第一次開啟資料庫。這種形式的例項恢復也叫crash recovery。oracle資料庫將在例項恢復的同時恢復線上redo thread。
(2)RAC環境下部分例項失敗,會自動的透過配置中的可用的例項來進行例項恢復。
四、誰負責進行例項恢復?
SMON後臺程式負責進行例項恢復,自動應用online redo。不需要人工的干預。
五、檢查點在例項恢復中的重要性
1.檢查點位置在例項恢復中決定了哪些改變需要應用到資料檔案上。因為檢查點位置可以保證所有SCN值比檢查點SCN值小的改變,都已經儲存到了資料檔案上。
2.檢查點位置由CKPT程式來維護,CKPT定時檢視DBWn對檢查點佇列上的髒塊寫入進度,確認完最後寫入資料檔案的髒塊後,進行檢查點位置更新為最後寫入資料檔案中的髒塊。
3.檢查點位置決定了例項恢復的起點。而例項恢復的終點為online redo log中最後寫入的記錄(end of redo thread)
六、例項恢復的階段
1:該階段稱為快取恢復或者前滾,即將online redo log裡的變化全部重新應用到資料檔案上,該階段結束後,資料檔案中同時存在已提交和未提交的資料。
2:該階段稱為回滾或事務恢復,即將失敗前還未提交的變化,進行回滾,保證該階段結束後,資料檔案中只存在已提交的資料。
七、注意
1.例項恢復只需要online redo log和當前的線上資料檔案來同步資料,以此保證他們的一致性。
2.若online redo log損壞,則無法進行例項恢復。
3.若undo 資料損壞,則例項恢復的事務恢復階段將會失敗。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30167136/viewspace-1487151/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle例項恢復Oracle
- SCN、Checkpoint、例項恢復介質恢復理解
- 自己理解的例項恢復步驟
- Oracle例項恢復和介質恢復Oracle
- Oracle例項恢復機制Oracle
- Oracle 例項恢復詳解Oracle
- oracle database 例項恢復和介質恢復OracleDatabase
- 關於oracle例項恢復的前滾和回滾的理解Oracle
- Oracle 11g 例項恢復Oracle
- oracle instance recovery例項恢復小記Oracle
- oracle 關於例項恢復的一個討論Oracle
- 例項恢復的簡要解析
- ORACLE事務和例項恢復過程梳理Oracle
- oracle 11C rman 恢復到單例項Oracle單例
- rac恢復到單例項單例
- 單例項恢復至RAC單例
- 資料塊恢復例項
- ORACLE主從中斷後,如何恢復(單例項)Oracle單例
- Oracle例項恢復——說說前滾和回滾Oracle
- rac到單例項的rman恢復單例
- Oracle 恢復一例Oracle
- 【資料庫資料恢復】Oracle ASM例項無法掛載的資料恢復案例資料庫資料恢復OracleASM
- RAC asm恢復到單例項ASM單例
- Oracle資料檔案損壞恢復例項二則Oracle
- oracle 學習總結篇四:不完全恢復測試用例Oracle
- oracle恢復練習Oracle
- 單例項備份恢復成RAC單例
- MySQL增量備份與恢復例項MySql
- rac asm 恢復到 單例項 1ASM單例
- rac asm 恢復到 單例項 2ASM單例
- 【資料庫資料恢復】ASM例項不能掛載的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- RAC從帶庫到單例項的恢復單例
- 學習 第2章:備份與恢復選項
- oracle 10g rac 單例項恢復至ORACLE10G RAC RMANOracle 10g單例
- oracle壞塊修復例項Oracle
- 資料庫startup啟動時前滾回滾進行例項恢復的理解資料庫
- Oracle 11.2.0.4 從單例項,使用RMAN 異機恢復到RACOracle單例
- Oracle 11g Data guard 物理備庫故障恢復重建例項Oracle