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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sql server 2005 資料修改的內部原理SQLServer
- Oracle Block Cleanouts 塊清除OracleBloC
- 大資料3_04_zookeeper概述和內部原理大資料
- 【BLOCK】Oracle 塊管理常用SQLBloCOracleSQL
- 深入解析 oracle drop table內部原理Oracle
- Oracle記憶體結構(四)----如何獲得Oracle各記憶體段的內部資訊(轉)Oracle記憶體
- 【BLOCK】Oracle壞塊處理命令參考BloCOracle
- ORACLE資料庫檢視ACQ(ACTIVE CHECKPOINT QUEUE)資訊Oracle資料庫
- Oracle資料塊格式Oracle
- 企業內部資料如何進行資料分析
- AltiumDesigner原理相簿修改操作流程
- [Oracle]Oracle資料庫資料被修改或者刪除恢復資料Oracle資料庫
- 現代瀏覽器內部工作原理(附詳細流程圖)瀏覽器流程圖
- Oracle 之利用BBED修改資料塊SCN----沒有備份資料檔案的資料恢復Oracle資料恢復
- 企業內部的資料治理如何評估
- 企業如何開展內部的資料治理
- 管控內部威脅,資料如何安全使用?
- ORACLE 資料塊格式深入解析Oracle
- 使用事件溯源、Kafka和OGG從Oracle內部複製資料事件KafkaOracle
- 使用NID修改Oracle資料庫名Oracle資料庫
- Docker容器內部修改時區Docker
- 《大資料: ZooKeeper 資料同步流程》大資料
- 【大頁記憶體】Oracle資料庫配置大頁記憶體記憶體Oracle資料庫
- 比特幣原始碼研讀(2)資料結構-區塊Block比特幣原始碼資料結構BloC
- block實現原理BloC
- Kubernetes 內部元件工作原理元件
- 淺析Block的內部結構 , 及分析其是如何利用 NSInvocation 進行呼叫BloC
- Redis 內部資料結構Redis資料結構
- 修改Oracle資料庫字符集(zt)Oracle資料庫
- 塊清除(block clean out)BloC
- 【REDO】Oracle redo內部結構Oracle Redo
- 如何處理Oracle資料庫中的壞塊問題(轉)Oracle資料庫
- 【Oracle】如何修改資料檔案和日誌檔案的路徑Oracle
- 忘記oracle的sys密碼該如何重置;附如何修改oracle資料庫使用者密碼Oracle密碼資料庫
- mysqldump的內部實現原理MySql
- pinpoint-php-aop 內部原理PHP
- Oracle資料庫壞塊典型案例分析Oracle資料庫
- oracle asm 資料塊重構恢復OracleASM
- 啃碎併發(10):記憶體模型之內部原理記憶體模型