欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

數(shù)據(jù)庫的redo與undo分別是什么呀

錢琪琛2年前18瀏覽0評論

數(shù)據(jù)庫的redo與undo分別是什么呀?

事務處理過程

update 或Insert操作:

1.計算更新后tuple到原tuple的delta信息,把這個delta復制到回滾段,作為undo;

2.寫redo日志,記錄對回滾段的更改,回滾段也是由緩沖區(qū)管理機構(gòu)管理,也是相當于對頁面(page)的更改;

3.把緩沖區(qū)中的對應tuple更新成新值,把新值的rollback pointer寫入undo(更改回滾段);

4.寫redo日志,記入對頁(回滾段)的更改;

5.將被更改的頁面的狀態(tài)改成dirty,表示要被刷盤

事務提交操作:

日志刷盤,當前事務的對應的最后的LSN(Log Sequence Number)之前的redo日志都被寫入持久化存儲。

崩潰恢復過程

1.啟動開始時,檢測是數(shù)據(jù)庫在上次退出時是否發(fā)生崩潰;

2.定位到最近的一個檢查點(checkpoint);

3.定位在這個檢查點時刷磁盤的數(shù)據(jù)頁,檢查校驗checksum。如果不正確,說明這個頁在上次寫入是不完整的,從雙寫緩沖(doublewrite buffer)里把正確的頁讀出來,更新到內(nèi)存緩沖區(qū)中的頁;

4.順序地(從上個檢查點開始到最后一個LSN)分析redo日志,標識出未提交事務;

5.順序執(zhí)行redo,這些redo日志不僅包含對數(shù)據(jù)段的更改(寫tuple), 也包括對回滾段的更改(寫undo log);

6.回滾所有未提交的事務。