例項恢復的簡要解析
How oracle server determine about the changed blocks (dirty blocks) after a checkpoint event by
which the DBWR writes dirty buffers in data files and still user do not commit the transaction or rollback.
有點複雜,下面假定有這麼一個簡要的場景:
用一個update語句更新1000行,oracle會執行以下操作:
a.在SGA中生成更新過的datablocks
b.在SGA中生成回滾記錄
c.為SGA中的datablocks和回滾記錄均生成重做日誌資訊
在這個過程中,Oracle可能會把REDO資訊寫入到日誌檔案中。要記住:在checkpoint一個資料塊之前(也就是DBWR寫datablock前),
保護該block的日誌會先寫入到日誌檔案中。不可能存在資料塊已寫入磁碟但日誌還沒有寫入的情況。
假設在update的過程中資料庫伺服器當機,那麼可能會發生下列事件:
1.某些REDO資訊已經寫入到日誌檔案中,但資料塊和回滾塊沒有寫入到磁碟上。當系統重起後,會應用REDO日誌,
在SGA中重構回滾塊和資料塊。前滾完成後,Oracle會應用先前構造的回滾塊進行回滾,這樣看起來事務好像從來沒有發生過一樣。
2.某些日誌和某些資料塊以及回滾塊已經寫入到磁碟上。首先執行1的操作,接著前滾,應用日誌到還沒有進行檢查點的資料塊上,然後再回滾。
3.沒有日誌寫入到磁碟上。當系統重起後,事務看起來就好像沒有發生過一樣,無需恢復。
譯自
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/6906/viewspace-21788/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- rac恢復到單例項單例
- 從nub備份恢復(同平臺)恢復RAC至單例項單例
- ORACLE事務和例項恢復過程梳理Oracle
- 【資料庫資料恢復】Oracle ASM例項無法掛載的資料恢復案例資料庫資料恢復OracleASM
- 【資料庫資料恢復】ASM例項不能掛載的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- 將RAC備份集恢復為單例項資料庫單例資料庫
- 人臉識別的簡要介紹(附例項、Python程式碼)Python
- 恢復備份例項時出現ORA-01659的解決方法UA
- OBServer啟動恢復解析Server
- jQuery Ajax 例項 全解析jQuery
- 記錄一次Oracle 11.2.0.4 RAC異地恢復到單例項Oracle單例
- C# StartsWith 字串的例項方法解析C#字串
- 將物件解析為JSON資料和將JSON資料解析為物件的簡單例項物件JSON單例
- 資料庫startup啟動時前滾回滾進行例項恢復的理解資料庫
- 3.1.5.7 啟動例項、掛載資料庫並啟動完整的媒體恢復資料庫
- oracle資料庫跨平臺(AIX)從RAC恢復至(linux)下的單例項Oracle資料庫AILinux單例
- iPhone簡訊刪除怎麼恢復?恢復iPhone簡訊的兩種簡單方法推薦iPhone
- ibbackup恢復報錯一例
- Vue原始碼解析:Vue例項Vue原始碼
- java狀態模式例項解析Java模式
- Web安全之CSRF例項解析Web
- Java的Socket通訊簡單例項Java單例
- MySQL備份與恢復操作解析MySql
- mysql資料庫恢復一例MySql資料庫
- 解析JavaScript設計模型Iterator例項JavaScript模型
- Mybatis原始碼解析2—— 例項搭建MyBatis原始碼
- opengl簡單入門例項
- Spark 簡單例項(基本操作)Spark單例
- Win10設定裡沒有恢復選項怎麼辦 win10設定恢復選項的方法Win10
- Spring Bean 的例項化過程原始碼解析SpringBean原始碼
- 域名暫停解析是怎麼回事?如何恢復解析?
- C#out引數的簡單例項C#單例
- 解析ESX SERVER故障資料恢復方法Server資料恢復
- SwiftUI 官方畫圖例項詳細解析SwiftUI
- WebSocket 簡介及應用例項Web
- EventBus詳解及簡單例項單例
- ElementUI 簡要原始碼解析——Basic篇UI原始碼
- php例項化物件的例項方法PHP物件
- win10 恢復選項沒有該怎麼辦 win10沒有恢復選項怎麼解決Win10