如何理解redo和undo的作用

redo

重做日志(redo)包含所有数据产生的历史改变记录,是oracle在线或归档重做日志文件中记录的信息,一旦掉电或其他意外丢失数据,可以利用这些数据来重做事务,例如已经出现了丢失数据的情况,那么就可以利用redo来重放事务,通常用于实例恢复和介质恢复、日志挖掘和流(分析redo,捕获实时数据,传到远程数据库,并应用于远程数据库)。Redo中保存的内容是改变向量,改变数据块的大小,是对数据块的覆盖。

undo

undo是oracle在undo段中记录的信息,用于取消或回滚事务,例如对数据进行修改时,数据库会产生undo信息,若数据出现丢失,可采用rollback请求回滚,可以利用这些undo信息将数据放回到修改前的样子。UNDO的作用包括了数据的回滚、一致性读、表的闪回以及失败会话的恢复。它的流程:当update一个数据块时,在开始时需要从内存中找到这个数据块,在undo中放入数据块放之前的值old data在undosegment中,这时候就会产生undo,oracle就会对原始数据更新值,也会产生redo。

UNDO和REDO的区别

  • Undo里是怎么样去撤销一个改变;redo里是怎么养去重做一个改变;

  • Undo用于回滚、一致性读(readconsistency)和闪回(flashback);redo用于数据库前滚(rolling forward)、恢复和数据的改变;

  • Undo放在undo表空间中;redo是放在redo日志文件中;

  • Undo是来保护一致性读;redo来保证数据不丢失。

如何理解redo和undo的作用的更多相关文章

  1. 如何理解redo和undo

    redo和undo的区别    redo--> undo-->datafileinsert一条记录时, 表跟undo的信息都会放进 redo 中, 在commit 或之前, redo 的信 ...

  2. Redo与Undo的理解

    本文概要本文的原意是一篇个人学习笔记,为了避免成为草草记录一下的流水账,尝试从给人介绍的角度开写.但在整理的过程中,越来越感觉力不从心,一是细节太多了,原以为足够了解的一个小知识点下可能隐藏了很多细节 ...

  3. SQL Server 中日志的的作用(Redo和Undo)

    简介 之前我已经写了一个关于SQL Server日志的简单系列文章.本篇文章会进一步挖掘日志背后的一些概念,原理以及作用. 数据库的可靠性 在关系数据库系统中,我们需要数据库可靠,所谓的可靠就是当遇见 ...

  4. 一分钟理解Redo Undo

    数据库中有一种特殊的"日志文件"叫 Redo(重做) Undo(撤销),传统意义上的日志文件是记录系统运行状态的,主要用于系统工程师或者程序员排错.而 Reod/Undo 文件是数 ...

  5. 数据库篇:mysql日志类型之 redo、undo、binlog

    前言 可以说mysql的多数特性都是围绕日志文件实现,而其中最重要的有以下三种 redo 日志 undo 日志 binlog 日志 关注公众号,一起交流:微信搜一搜: 潜行前行 1 redo日志 in ...

  6. 【转】ORACLE的REDO与UNDO

    一.什么是redo?redo:oracle在在线或者归档重做日志文件中的记录的信息,外以出现失败时可以利用这些数据来"重放"事务.每个oracle数据都至少有二个在线重做日志组,每 ...

  7. 09 redo and undo

    本章提要-----------------------------------------------redo, undo 定义redo, undo 如何工作如何访问 redo, undo提交和回滚- ...

  8. redo、undo、binlog的区别

    在MySQL中,redo.undo.binlog经常见,但很容易混淆这三者.   redo undo binlog 作用 保持事务的持久性 帮助事务回滚及MVCC的功能 进行Point-In-Time ...

  9. 说说MySQL中的Redo log Undo log都在干啥

        在数据库系统中,既有存放数据的文件,也有存放日志的文件.日志在内存中也是有缓存Log buffer,也有磁盘文件log file,本文主要描述存放日志的文件.     MySQL中的日志文件, ...

随机推荐

  1. SpringBoot 封装返回类以及session 添加获取

    1.创建返回类Result public class Result<T>{ /*错误码*/ private Integer code; /*提示信息 */ private String m ...

  2. 【Android】ContentProvider

    转载地址:http://www.cnblogs.com/lqminn/archive/2012/10/16/2725624.html 一.ContentProvider的概念 ContentProvi ...

  3. 洛谷 P3313 [SDOI2014]旅行

    题目描述 S国有N个城市,编号从1到N.城市间用N-1条双向道路连接,满足从一个城市出发可以到达其它所有城市.每个城市信仰不同的宗教,如飞天面条神教.隐形独角兽教.绝地教都是常见的信仰. 为了方便,我 ...

  4. BZOJ 1137: [POI2009]Wsp 岛屿 半平面交

    1137: [POI2009]Wsp 岛屿 Time Limit: 10 Sec  Memory Limit: 162 MBSec  Special JudgeSubmit: 165  Solved: ...

  5. iOS消息体系架构详解-融云即时通讯云

    iOS SDK 体系架构 本文档将详细介绍融云的 SDK 产品架构和消息体系,以便于您更深入的了解融云并更快速的开发自己的产品. 融云 SDK 系统架构 IMKit IMKit 的功能主要是封装各种界 ...

  6. NGUI类之间的关系架构

    NGUI Drawcall 1.使用同一个altals的元素尽量放在同一个UIPanel下面,在NGUI中,它消耗的drawcall是以每个Panel为独立计算单位进行计算的. 2.如果一个UIPan ...

  7. Round #322 (Div. 2) 581D Three Logos (模拟)

    先枚举两个矩形,每个矩形横着放或竖着放,把一边拼起来, 如果不是拼起来有缺口就尝试用第三个矩形去补. 如果没有缺口就横着竖着枚举一下第三个矩形和合并的矩形x或y拼接. #include<bits ...

  8. 使用EventLog组件读写事件日志

    实现效果: 知识运用: Eventlog类的SourceExists方法 //确定指定的事件源是否已在本地计算机注册 public static bool  SourceExists(string s ...

  9. CPP-基础:类的静态成员

    一 静态数据成员:  类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员.和其他数据成员一样,静态数据成员也遵守public/protected/private访问规 ...

  10. linux交换分区调整

      SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间(也就是SWAP分区)虚拟成内存来使用.它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且 ...