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 非常重要,因为它允许用户撤销尚未提交的事务,同时在并发环境中提供一致性读,这对于数据库性能优化相当重要。

相关推荐
m0_613856291 小时前
mysql如何利用事务隔离级别解决特定业务冲突_mysql隔离方案选型
jvm·数据库·python
Adios7941 小时前
VPR:Pitts50K和Norland数据集下载
数据库
东风破1371 小时前
DM用户权限、表、约束等对象的基本操作,SQL日志的开启介绍
数据库·sql·dm达梦数据库
收获不止数据库2 小时前
达梦9发布会归来:AI 时代,我们需要一款什么样的数据库?
数据库·人工智能·ai·语言模型·数据分析
小宇的天下2 小时前
Virtuoso GUI 界面中的关键模块定义
数据库
bqq198610262 小时前
MySQL 5.7 与 MySQL 8.0 的主要区别
数据库·mysql
Elastic 中国社区官方博客3 小时前
Elastic-caveman : 在不损失 Elastic 最佳效果的情况下,将 AI 响应 tokens 减少64%
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·全文检索
互联网推荐官3 小时前
上海软件定制开发全流程拆解:需求分析、技术选型与交付管理的工程实践
大数据·数据库·需求分析
专注API从业者3 小时前
Open Claw 京东商品监控选品实战:一键抓取、实时监控、高效选品
java·服务器·数据库
大迪deblog3 小时前
系统架构师-数据库-数据库设计
数据库·oracle·系统架构