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
- 【資料庫資料恢復】Oracle ASM例項無法掛載的資料恢復案例資料庫資料恢復OracleASM
- rac恢復到單例項單例
- 【資料庫資料恢復】ASM例項不能掛載的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- 記錄一次Oracle 11.2.0.4 RAC異地恢復到單例項Oracle單例
- 資料庫startup啟動時前滾回滾進行例項恢復的理解資料庫
- oracle資料庫跨平臺(AIX)從RAC恢復至(linux)下的單例項Oracle資料庫AILinux單例
- 從nub備份恢復(同平臺)恢復RAC至單例項單例
- Makefile例項學習
- tail命令學習例項AI
- NBU恢復oracleOracle
- Oracle邏輯備份與恢復選項說明Oracle
- MySQL:Innodb恢復的學習筆記MySql筆記
- 通過例項學習 PyTorchPyTorch
- CSS學習摘要-定位例項CSS
- Python學習:類和例項Python
- Oracle案例12——NBU Oracle恢復Oracle
- oracle 異機恢復Oracle
- oracle冷備恢復Oracle
- Oracle Far Sync例項Oracle
- 4.1. Oracle例項Oracle
- 將RAC備份集恢復為單例項資料庫單例資料庫
- oracle資料庫與oracle例項Oracle資料庫
- 三菱PLC例項學習
- 恢復備份例項時出現ORA-01659的解決方法UA
- Oracle RMAN恢復測試Oracle
- Oracle 不完全恢復Oracle
- Spring 原始碼學習 - 單例bean的例項化過程Spring原始碼單例Bean
- oracle 例項表查詢Oracle
- 遷移學習系列---基於例項方法的遷移學習遷移學習
- 深度學習中的Normalization模型(附例項&公式)深度學習ORM模型公式
- vue 原始碼學習 - 例項掛載Vue原始碼
- oracle基於SCN增量恢復Oracle
- Oracle Redo丟失恢復方案Oracle
- ORACLE備份&恢復案例(轉)Oracle
- Oracle RMAN 表空間恢復Oracle
- Oracle RushQL勒索病毒恢復方法Oracle
- Oracle 備份 與 恢復 概述Oracle
- Oracle 備份恢復之 FlashbackOracle