oracle內部原理_如何修改block資料塊大體流程_checkpoint
使用者修改一個資料塊的流程:
1,先把資料塊自磁碟或資料檔案讀入buffer cache
2,先生成重作記錄,並記入log buffer中(當使用者提交這個修改資料塊事務時)
一併把對應的重作記錄(此時還在log buffer)寫入到日誌檔案
3,在buffer cache中修改塊
4,把buffer cache這個塊的標誌設定為髒;同時在buffer cache的檢查點佇列
末尾增加一個新節點,記錄這個新髒塊的資訊:即此髒塊在buffe cache
的地址,以及此髒塊產生的redo record的rba
5,如果使用者提交事務,把相應的重作記錄從log buffer寫入到日誌檔案
6,說一個恢復或崩潰的例子,如果使用者已提交事務commit了,但buffer cache中這些事務的髒資料因為
掉電loss,沒有來得及寫入資料檔案;怎麼辦?
大體流程:
1,資料庫啟動時,從控制檔案讀取檢查點位置,檢查點位置即檢查點佇列頭的位置,從這個位置開始寫入髒塊到data file
檢查點位置記錄有重作記錄編號,透過個重作記錄編號即rba可以定位到redo中的redo record,這樣
它讀取重作記錄的重作資料(它會是一個redo stream,即一系列change vector),即重新把操作重現一下;資料庫還是一致的
參考:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-758813/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料塊blockOracleBloC
- oracle資料檔案內部BLOCK結構詳解OracleBloC
- sql server 2005 資料修改的內部原理SQLServer
- oracle block資料塊itl小記OracleBloC
- iOS 揭露Block的內部實現原理iOSBloC
- Block Change Tracking (Oracle 塊修改跟蹤)BloCOracle
- oracle block資料塊結構之itcOracleBloC
- oracle block資料塊結構續(一)OracleBloC
- zt_oracle block資料塊精講OracleBloC
- 大資料3_04_zookeeper概述和內部原理大資料
- oracle block header_tail資料塊頭與資料塊尾OracleBloCHeaderAI
- oracle事務內部原理Oracle
- 資料塊內部結構dump解析
- RMAN備份效率之-oracle block internal(block 內部結構分解)OracleBloC
- 原創:oracle data block 內部結構分析OracleBloC
- Oracle 塊修改跟蹤 (Block Change Tracking) 說明OracleBloC
- oracle bbed修改資料塊的例子Oracle
- [zt] Oracle恢復內部原理Oracle
- DATA BLOCK內部結構BloC
- BBED (Oracle Block Brower and EDitor Tool) :資料塊修復工具OracleBloC
- ORACLE 使用records_per_block降低表資料塊熱塊機率OracleBloC
- MySQL update資料時InnoDB內部的操作流程MySql
- Oracle Block Cleanouts 塊清除OracleBloC
- oracle壞塊Block CorruptionsOracleBloC
- 使用DUMP資料塊與BBED檢視BLOCK對比資料庫修改時的SCNBloC資料庫
- 深入解析 oracle drop table內部原理Oracle
- DATA BLOCK內部結構圖BloC
- 資料塊原理
- 【BLOCK】Oracle 塊管理常用SQLBloCOracleSQL
- 用bbed檢視資料檔案的資料塊block 0及block 1BloC
- 企業內部資料如何進行資料分析
- 【Oracle-資料庫概念】-Oracle checkpoint詳解Oracle資料庫
- oracle10g_11g_bbed_oracle block browse editor_內部工具小記_轉摘eygle大師OracleBloC
- 修改一個資料塊Oracle需要做的工作Oracle
- 檢查資料塊損壞(Block Corruption)BloC
- Oracle (block clean out) oracle的塊清除OracleBloC
- dump Oracle資料庫的內部結構Oracle資料庫
- oracle block cleanout塊清除_延遲塊清除OracleBloC