知识大全 Oracle的redo和undo的区别

Posted

篇首语:虚心使人进步,骄傲使人落后,我们应当永远记住这个真理。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle的redo和undo的区别相关的知识,希望对你有一定的参考价值。

Oracle的redo和undo的区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  redo > undo >datafile insert一条记录时 表跟undo的信息都会放进 redo 中 在mit 或之前 redo 的信息会放进硬盘上 故障时 redo 便可恢复那些已经mit 了的数据 redo >每次操作都先记录到redo日志中 当出现实例故障(像断电) 导致数据未能更新到数据文件 则数据库重启时须redo 重新把数据更新到数据文件 undo >记录更改前的一份copy 但你系统rollback时 把这份copy重新覆蓋到原来的数据 redo >记录所有操作 用于恢复(redo records all the database transaction used for recovery) undo >记录所有的前印象 用于回滚(undo is used to store unmited data infor used for rollback) redo >已递交的事务 实例恢复时要写到数据文件去的 undo >未递交的事务 redo的原因是 每次mit时 将数据的修改立即写到online redo中 但是并不一定同时将该数据的修改写到数据文件中 因为该数据已经提交 但是只存在联机日志文件中 所以在恢复时需要将数据从联机日志文件中找出来 重新应用一下 使已经更改数据在数据文件中也改过来!

  undo的原因是 在oracle正常运行时 为了提高效率 加入用户还没有mit 但是空闲内存不多时 会由DBWR进程将脏块写入到数据文件中 以便腾出宝贵的内存供其它进程使用 这就是需要UNDO的原因 因为还没有发出mit语句 但是oracle的dbwr进程已经将没有提交的数据写到数据文件中去了 undo 也是也是datafile 可能dirty buffer 没有写回到磁盘里面去 只有先redo apply 成功了 才能保证undo datafile 里面的东西都是正确的 然后才能rollback 做undo的目的是使系统恢复到系统崩溃前(关机前)的状态 再进行redo是保证系统的一致性 不做undo 系统就不会知道之前的状态 redo就无从谈起 所以instance crash recovery 的时候总是先rollforward 再rollback undo 回退段中的数据是以 回退条目 方式存储 回退条目=块信息(在事务中发生改动的块的编号)+在事务提交前存储在块中的数据 在每一个回退段中oracle都为其维护一张 事务表 在事务表中记录著与该回退段中所有回退条目相关的事务编号(事务SCN&回退条目) redo 重做记录由一组 变更向量 组成 每个变更变量中记录了事务对数据库中某个块所做的修改

  当用户提交一条mit语句时 LGWR进程会立刻将一条提交记录写入到重做日志文件中 然后再开始写入与该事务相关的重做信息 #事务提交成功后 Oracle将为该事备生成一个系统变更码(SCN) 事务的SCN将同时记录在它的提交记录和重做记录中

  mit 提交事务前完成的工作

  ·在SGA区的回退缓存中生成该事务的回退条目 在回退条目中保存有该事务所修改的数据的原始版本

  ·在SGA区的重做日志缓存中生成该事务的重做记录 重做记录中记载了该事务对数据块所进行的修改 并且还记载了对回退段中的数据块所进行的修改 缓存中的重做记录有可能在事务提交之前就写入硬盘中

  ·在SGA区的数据库缓丰中记录了事务对数据库所进行的修改 这些修改也有可能在事务提交之前就写入硬盘中

  提交事务时完成的工作

  ·在为该事务指定的回退段中的内部事务表内记录下这个事务已经被提交 并且生成一个惟一的SCN记录在内部事务表中 用于惟一标识这个事务

  ·LGWR后进进程将SGA区重做日志缓存中的重做记录写入联机重做日志文件 在写入重做日志的同时还将写入该事务的SCN

  ·Oracle服务进程释放事务所使用的所有记录锁与表锁

  ·Oracle通知用户事务提交完成

  ·Oracle将该事务标记为已完成

  rollback 回退事务完成的工作

  ·Oracle通过使用回退段中的回退条目 撤销事务中所有SQL语句对数据库所做的修改

  ·Oracle服务进程释放事务所使用的所有锁

  ·Oracle通知事务回退成功

  ·Oracle将该事务标记为已完成

cha138/Article/program/Oracle/201311/16931

相关参考

知识大全 Oracle释放过度使用的Undo表空间

Oracle释放过度使用的Undo表空间  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  故障现象

知识大全 查看Oracle的redo日志切换频率

查看Oracle的redo日志切换频率  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  两个sql

知识大全 oracle数据库UNDO表空间释放

oracle数据库UNDO表空间释放  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  今天早上在检

知识大全 Oracle数据库Redo故障恢复

Oracle数据库Redo故障恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一丢失inac

知识大全 解决Oracle下的undo空间过大的问题

解决Oracle下的undo空间过大的问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lishi

知识大全 技巧:Oracle数据库Redo故障恢复

技巧:Oracle数据库Redo故障恢复  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一丢失i

知识大全 Oracle]Data Guard 之 Redo传输详解

Oracle]DataGuard之Redo传输详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 Oracle] 解析在没有备份的情况下undo损坏怎么办

Oracle]解析在没有备份的情况下undo损坏怎么办  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 简析Oracle Online Redo LogFile

简析OracleOnlineRedoLogFile  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 简析REDO LOGFILE

简析REDOLOGFILE  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我们知道Oracle里