oracle的redo和undo日志

在oracle數(shù)據(jù)庫中,執(zhí)行數(shù)據(jù)修改時(shí)都會(huì)產(chǎn)生相應(yīng)的日志信息,

undo日志:

undo日志用于存放數(shù)據(jù)被修改前的值,如果一個(gè)事務(wù)做回滾或某種原因執(zhí)行失敗了,需要根據(jù)undo日志中記錄的原數(shù)據(jù)做數(shù)據(jù)恢復(fù);

redo日志:

undo日志是保存數(shù)據(jù)修改前的值,redo日志可以理解為保存數(shù)據(jù)修改后的值,數(shù)據(jù)需要做修改時(shí),需要將數(shù)據(jù)讀到buffer pool中,然后在buffer pool中做修改。寫到redo日志中去,此時(shí)數(shù)據(jù)時(shí)沒有持久化到數(shù)據(jù)庫文件中去的,如果此時(shí)發(fā)生異常中斷,或數(shù)據(jù)丟失,可以根據(jù)redo中記錄的修改后的數(shù)據(jù)做數(shù)據(jù)恢復(fù),持久化到數(shù)據(jù)庫文件中去。


undo日志在保存原數(shù)據(jù)時(shí)會(huì)被分配數(shù)據(jù)塊,在修改做回滾操作之后,undo被分配的數(shù)據(jù)塊還是存在的,所以會(huì)有可能存在一些經(jīng)常做新增刪除的表數(shù)據(jù)量不多的情況下查詢異常的慢,這是由于每次全表查詢會(huì)去掃描之前undo保存原數(shù)據(jù)的數(shù)據(jù)塊;


undo和redo日志不一定同時(shí)存在,和數(shù)據(jù)庫的策略有關(guān),steal、no steal、force、no force策略分別和這兩個(gè)日志有關(guān);

steal:允許在事務(wù)commit之前把內(nèi)存中的數(shù)據(jù)寫入磁盤。此時(shí)需要undo ,undo日志可以保證做數(shù)據(jù)回滾能恢復(fù)原數(shù)據(jù);

no steal:不允許在事務(wù)commit之前把內(nèi)存中的數(shù)據(jù)寫入磁盤,在commit之前數(shù)據(jù)并未寫入到磁盤,此時(shí)數(shù)據(jù)文件中的數(shù)據(jù)還是原數(shù)據(jù),數(shù)據(jù)回滾不需要undo日志來恢復(fù)原數(shù)據(jù);

force:內(nèi)存中的數(shù)據(jù)最晚在commit的時(shí)候?qū)懭氪疟P。不需要redo ,

no force:內(nèi)存中的數(shù)據(jù)可以一直保留,在commit之后過一段時(shí)間再寫入磁盤。此時(shí)需要redo,因?yàn)閿?shù)據(jù)在系統(tǒng)崩潰的時(shí)候可能還沒寫入到磁盤,如果不redo,磁盤上的數(shù)據(jù)就是不完整的

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • --- layout: post title: "如果有人問你關(guān)系型數(shù)據(jù)庫的原理,叫他看這篇文章(轉(zhuǎn))" date...
    藍(lán)墜星閱讀 919評(píng)論 0 3
  • 我們都知道事務(wù)有4種特性:原子性、一致性、隔離性和持久性,在事務(wù)中的操作,要么全部執(zhí)行,要么全部不做,這就是事務(wù)的...
    pjmike閱讀 32,323評(píng)論 5 36
  • 本文是介紹MySQL數(shù)據(jù)庫InnoDB存儲(chǔ)引擎重做日志漫游 00 – Undo Log Undo Log 是為了實(shí)...
    胖虎大哥閱讀 2,417評(píng)論 1 3
  • 事務(wù)隔離 ITL ITL: Interested Transaction List,也叫事務(wù)槽,它位于BLOCK ...
    eric_gao閱讀 1,072評(píng)論 0 0
  • 7.1 認(rèn)識(shí)事務(wù)7.1.1 概述事務(wù)可由一條非常簡單的SQL語句組成,也可以由一組復(fù)雜的SQL語句組成。事務(wù)是訪問...
    正在加載更多閱讀 553評(píng)論 0 0

友情鏈接更多精彩內(nèi)容