Redo在Oracle数据库中,有一种日志文件叫做重做日志文件redo log,分为两种:在线重做日志与归档日志。

在线重做日志(online redo log)主要用于:Oracle数据库所在服务器突然断电、重启或执行shutdown等命令时重新启动后,Oracle数据库没有办法正常的启动实例。此时,Oracle会使用在线重做日志,把数据库恢复到服务器断电前的建阳时刻,使得数据库能正常的启动起来。(默认情况下,数据库至少会有两个重做日志组,循环使用)

归档日志(archive log)主要用于硬件级别的错误:磁盘的坏道导致无法读写、写入的失败、磁盘受损导致数据库数据丢失。此时数据库通过归档日志文件,把数据库恢复到归档日志所在的时间点上然后再通过在线重做日志文件把数据库恢复到当前的时间点上。

对于归档日志文件,可以理解为在线重做日志文件的备份。即当一个重做日志文件被填满了之后,归档日志文件就会把其备份保留一份。(因为上面说了,在线重做日志文件会自动的覆盖)所以,归档日志文件就是旧的在线日志文件的备份。

Undo 撤销数据是反转DML语句结果所需要的信息,被称为“回滚数据”。

undo数据:如果数据库已被转换使用撤销段,并且自动进行撤销管理,那么任何现有的回滚段都必须处于脱机模式中,而且不能被设置为联机。根据 UNDO_MANAGEMENT参数的不同设置,Oracle数据库要么使用撤销段,要么使用回滚段。

undo表空间:一个数据库可以存在多个撤销表空间,但是在任意给定时刻都只能使用一个撤销表空间。撤销表空间必须被创建为持久的、本地管理的并且能够自动扩展分配空间的表空间。

DML语句(insert插入、update更新、delete删除),操作产生redo和undo的最多及最少?

答:undo:回滚记录了反向操作的动作,用于后续执行后覆水可收的。所以delete产生的最多,删除的反向操作是插入,等于是整行记录完整地插入回去,那就是要把表的所有字段信息都记录下来。insert最少,反向操作是删除,这个只要标记定位到原先的位置就可以(因insert的undo信息是记录了插入记录的rowid,唯一标记,根据这个rowid就足以定位到插入的记录并删除,从而达到回退目的);而update居中,只需要记录更新前字段的值并保存起来就可以。

redo重做日志,delete只需要记录相关rowid就可以再删除一遍了,产生redo最少,而insert如果想再完成一遍,至少需要知道所有字段的取值,产生的redo肯定最多,update的情况不变,都是居中。

undo会产生对应的redo?

答:会,undo的信息是准备用户回退的前镜像信息,是用于大家后悔自己操作后的还原动作,这些数据也是需要保护的,如果丢失了我们就别想还原了,而redo是非常好的恢复宝物。

DML语句的一个特点:DML语句不同于查询语句,会改变数据库的数据。除此之外,还会产生用于将来恢复的redo和用于回退的undo。另外还有一个细节就是,由于undo也需要保护,所以还会专门产生保护undo操作的redo。

Redo和Undo的区别相关推荐

  1. Oracle的REDO和UNDO

    在这里会介绍UNDO,REDO是如何产生的,对TRANSACTIONS的影响,以及他们之间如何协同工作的. 什么是REDO  REDO记录transaction logs,分为online和archi ...

  2. MySQL日志:binlog、事务日志(redo、undo)

    事务的隔离性是通过锁实现,而事务的原子性.一致性和持久性则是通过日志实现.Mysql的日志可以分为: binlog:server层实现 事务日志:包括redo log.undo log,引擎层(inn ...

  3. 大讲堂专访丨连接Oracle DBA与开发的桥梁:Oracle的redo与undo

    云和恩墨大讲堂每周都会邀请业内外大咖进行一小时的线上主题分享,本期我们邀请到了云和恩墨技术专家李元鹏,带来题为<浅谈Oracle的redo与undo>的分享,敬请期待. 在开课前,大讲堂对 ...

  4. mininet编程实现交换机规则的插入、删除与修改。_Mysql闲聊之从Redo、Undo日志到MVCC实现原理

    文章大纲 Undo日志 Redo日志 MVCC Undo 日志 关系型数据需要实现事务的 ACID 特性,其中一点就是事务的原子性,Mysql 就是通过 Undo 日志就来实现的. 数据库处理数据都是 ...

  5. redo和undo日志

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

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

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

  7. Oracle 9 - redo和undo

    1.redo redo 有在线redo日志和归档redo日志, 从Oracle 10g开始还新增加了flashback技术. 每个Oracle数据库至少有2个在线重做日志组,循环写. 只有INSERT ...

  8. 当数据库没有备份,redo或undo损坏

    数据库在没有备份的情况下,如果数据库redo或undo损坏,可以通过如下方法处理,但是不一定成功 把init文件中的: undo_management=manual 然后启动数据库到mount 状态后 ...

  9. 【Oracle】redo与undo

    一 .redo(重做信息) 是Oracle在线(或归档)重做日志文件中记录的信息,万一出现失败时可以利用这些数据来"重放"(或重做)事务.Oracle中记录这些信息的文件叫做red ...

  10. Oracle redo 与 undo

    Oracle数据库中最重要的两部分数据:redo与undo.redo(重做信息)是oracle 在线(或归档)重做日志文件中记录的信息,万一出现失效时可以利用这些数据来"重放"(或 ...

最新文章

  1. python拿来干嘛-Python是什么 Python的用处
  2. C语言指针和数组的天生姻缘
  3. 基于约束的SQL攻击
  4. C#实现简体繁体转换代码示例
  5. Command(命令模式)
  6. app能不能跳转外部h5_利用条件编译在app端使用h5+(网页跳转 实例)
  7. 服务器在无盘网吧的现在与将来(1)
  8. 微信小程序 —— 自定义picker选择器弹窗内容
  9. 重读《拿破仑传》有感
  10. 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 G 旋转矩阵 【模拟】
  11. 微信小程序订阅消息记录坑
  12. Vue.js :使用LODOP打印表格文件
  13. fastadmin 微信支付宝整合插件 支付宝APP支付 ALIN10146
  14. 互动微剧《明星大侦探》打造沉浸式探案体验
  15. 错过等一年丨2022全球边缘计算大会深圳站参会指南来啦!
  16. 手写数字识别的实现(案例)
  17. RedHat开启telnet服务
  18. mysql忘记密码找回root密码
  19. 企业数字化转型“核心方法论”
  20. 密钥格式标准PKCS,X.509

热门文章

  1. 中国计算机软件行业分析4---外企的商业贿赂
  2. 林海峰讲的python_线性回归模型与最小二乘法(附python源码)
  3. 无限分类---重新排序+生成树型
  4. Unity(十):3D角色移动跳跃
  5. 苏州大学 数据库题库
  6. 盘点2017 CES展会所有亮眼黑科技 (下)
  7. String slices
  8. Cox模型中的时间依存协变量和时间依存系数(R语言)第二部分
  9. 不要把敏感信息写在k8s的env上
  10. NAO机器人姿势切换