Oracle的Redo log和Undo log的区别

先回答问题

Redo Log (重做日志)和Undo Log(撤销日志)都是用于数据恢复,它们最大区别在于:

1.Redo Log 用于确保数据库能够在发生故障后恢复到一致状态。它记录了对数据库的所有操作,并在事务提交时持久化,用于重做这些修改。

2.Undo Log 用于提供数据库回滚功能。它记录了事务未提交前数据的原始原始状态,以便在事务回滚时恢复数据。Undo Log还用于实现一致性读,允许查询在事务进行中读数据的旧版本。

Redo Log(重做日志)

主要功能:

1.提供数据库的一致性恢复:无论系统是因为硬件故障,操作系统崩溃还是数据库实例崩溃而导致的异常关闭,Redo Log 日志确保数据库能够恢复所有已提交的事务。

2.它通过存储每个更改操作的"重做信息"来实现恢复。这里的重做信息包含了足够的步骤和数据使数据库能够重现这些变化。

存储位置:

Redo Log 保存在磁盘的redo log 文件,oracle数据库会周期性地将重做记录写入这些文件。

Undo Log(撤销日志)

主要功能:

1.提供回滚功能:当用户或系统选择回滚一个事务时,Undo Log允许恢复数据到事务未提交前的状态。

2.支持一致性读:多版本并发控制(MVCC)机制依赖Undo Log ,支持读请求在未完成事务期间读取旧版本的数据,确保其他事务活动的隔离性。

实际应用区分

1.在数据库恢复方面,Redo Log 至关重要。如果系统崩溃,只要有redo log存在,数据库就可以通过重做未完成提交的事务达到一致性状态。

2.在事务操作方面,Undo log 非常重要,因为它允许用户撤销尚未提交的事务,同时在并发环境中提供一致性读,这对于数据库性能优化相当重要。

相关推荐
其实防守也摸鱼19 分钟前
常见安全架构中 Shiro 的认证确认机制解析
运维·服务器·数据库·windows·github
TDengine (老段)1 小时前
TDengine 常见问题 TOP7
大数据·数据库·时序数据库·常见问题·tdengine·涛思数据
+VX:Fegn08951 小时前
计算机毕业设计|基于java+ vue共享单车信息系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
mysqloffice2 小时前
数智时代,核心系统数据库架构往哪走
数据库·人工智能
l1t2 小时前
DeepSeek总结的 pgColumnar 1.0-alpha4 发布说明
数据库·postgresql
DBA_G2 小时前
南大通用GBase 8s数据库助力某农商行核心系统投产
数据库
工业涂料百问2 小时前
【环保合规】系列(四)工业涂料碳足迹怎么算?边界定义、因子选择与减排优先级拆解
数据库
wuyk5553 小时前
【Socket 进阶之路】第 7 章 IO 多路复用 select & poll 完整实战|多 fd 监听、超时等待、优缺点横向对比
服务器·开发语言·网络·数据库·物联网
文人sec4 小时前
grant 之后要跟着 flush privileges 吗?要不要使用分区表?
数据库·mysql·adb·数据分析
Omics Pro4 小时前
上海AI Lab孙思琦×高张阳:虚拟细胞代码库智能体
数据库·人工智能·算法·机器学习·自然语言处理