oracle 關於例項恢復的一個討論
問題:在oracle中update一條記錄,長時間不提交,DBWn會不會將髒塊寫入資料檔案?LGWR會不會把redo log buffer中的記錄寫入online redo log? 如果二者都已寫入磁碟,使用者發出rollback命令,將會做哪些操作?如果此時資料庫例項crash,例項恢復時,將做哪些操作?
討論結論:
1.當使用者DML語句修改一條記錄,記錄所在髒塊是有可能被寫入資料檔案(提交時間越長,寫入資料檔案機率越大),因為DBWn的寫觸發條件為:每3秒自動喚醒一次;檢查點事件;一個伺服器程式在規定時間內沒有找到空閒塊;由上可知,DBWn是否寫入,和使用者是否提交沒有關係;
2.redo log buffer中的記錄,也是有可能寫入online redo log中,因為LGWR觸發條件為:每3秒自動喚醒一次;三分之一滿;大小達到1M;commit操作觸發;DBWn髒塊要寫入資料檔案中,但是保護該髒塊的redo還沒寫入磁碟,此時會觸發LGWR寫。由上可知,LGWR的寫在未commit的情況下,也可能會寫入redo檔案。
3.當二者都已寫盤,使用者發出rollback,則oracle會利用undo塊來進行恢復。(undo塊也有可能寫入磁碟,但是絕對不會被覆蓋!)
4.如果此時資料庫crash,則oracle會在例項恢復時,先應用redo,進行前滾。前滾完後會進行回滾,將未提交的事務(undo中有記錄)進行rollback。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30167136/viewspace-1591861/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle例項恢復Oracle
- 關於oracle例項恢復的前滾和回滾的理解Oracle
- 關於oracle SCN 的討論Oracle
- Oracle例項恢復和介質恢復Oracle
- 關於一個建立型模式的討論:模式
- Oracle例項恢復機制Oracle
- Oracle 例項恢復詳解Oracle
- oracle database 例項恢復和介質恢復OracleDatabase
- 關於Python類屬性與例項屬性的討論Python
- oracle例項恢復的學習理解Oracle
- Oracle 11g 例項恢復Oracle
- Oracle 恢復一例Oracle
- 一個關於月球車的筆試題--求討論筆試
- 2 Day DBA-管理Oracle例項-關於例項的啟動和關閉-關於例項關閉Oracle
- oracle instance recovery例項恢復小記Oracle
- 2 Day DBA-管理Oracle例項-關於例項的啟動和關閉-關於例項啟動Oracle
- 關於UI的一次討論——來自專案管理群的討論UI專案管理
- 例項恢復的簡要解析
- [技術討論]關於低耦合開發的討論
- ORACLE事務和例項恢復過程梳理Oracle
- oracle 11C rman 恢復到單例項Oracle單例
- 關於 Angular 裡 module 和 Component 包含粒度的一個討論Angular
- SCN、Checkpoint、例項恢復介質恢復理解
- rac恢復到單例項單例
- 單例項恢復至RAC單例
- 資料塊恢復例項
- 請教一個關於JdonFrameworkTest例項的問題Framework
- ORACLE主從中斷後,如何恢復(單例項)Oracle單例
- Oracle例項恢復——說說前滾和回滾Oracle
- rac到單例項的rman恢復單例
- 自己理解的例項恢復步驟
- 關於aio的設定的討論AI
- 關於網站設計的一點點討論網站
- 關於ora_pz程式的一些討論
- 關於部落格評論外掛的討論
- 例項恢復相關原理精簡總結(原創)
- 【資料庫資料恢復】Oracle ASM例項無法掛載的資料恢復案例資料庫資料恢復OracleASM
- 基於MySQL資料庫討論虛擬機器資料恢復MySql資料庫虛擬機資料恢復