当前位置:网站首页>Redo和Undo的区别
Redo和Undo的区别
2022-07-01 18:45:00 【六月雨滴】
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。
边栏推荐
- Werewolf killing strategy: do you think I'm easy to cheat? Who do we believe!
- 新版国标GB28181视频平台EasyGBS如何配置WebRTC视频流格式播放?
- 精耕渠道共谋发展 福昕携手伟仕佳杰开展新产品培训大会
- Brpc understanding
- English grammar_ Adjective / adverb Level 3 - precautions
- SIP protocol of gb28181
- Junit单元测试框架详解
- 面试题 16.16. 部分排序-双指针法
- web开发常用的开源框架的开源协议整理
- Use the uni app demo provided by Huanxin to quickly realize one-on-one chat
猜你喜欢
随机推荐
H264编码profile & level控制
见证时代!“人玑协同 未来已来”2022弘玑生态伙伴大会开启直播预约
[info() method in org.slf4j.logger]
事务隔离级别 gap锁 死锁
nacos启动失败问题解决与总结
ffmpeg AVFrame 转 cv::Mat
Native JS creates a calendar - supports mouse wheel scrolling to select months - and can be ported to any framework
241. Different Ways to Add Parentheses
ffmpeg常用命令(二)
The intelligent epidemic prevention system provides safety guarantee for the resumption of work and production at the construction site
pickle. Load error [attributeerror: can't get attribute 'volatile' on < module '\u main']
Thesis reading [distinctive late semantic graph for video capturing]
Solidity - 算术运算的截断模式(unchecked)与检查模式(checked)- 0.8.0新特性
Wireshark packet analysis TCP, FTP
Learning records of building thingsboard, an Internet of things platform
Analysis of GetMessage underlying mechanism
[pytorch record] distributed training dataparallel and distributeddataparallel of the model
Go Language Advanced
H264 encoding profile & level control
宝,运维100+服务器很头疼怎么办?用行云管家!