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

相关推荐
倔强的石头_5 小时前
《Kingbase护城河》——猎捕慢查询:执行计划的微观解析与索引调优实战
数据库
SelectDB7 小时前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
jiayou641 天前
KingbaseES 表级与列级加密完全指南
数据库·后端
GBASE2 天前
G术时刻 |GBase 8s数据库事务并发控制之封锁技术介绍(下)
数据库
xiezhr3 天前
逛GitHub发现了一款免费的带AI功能的数据库管理工具
数据库·ai编程·dba
吃糖的小孩4 天前
给 QQ AI 机器人设计“可控记忆”:会话摘要、手动长期记忆与角色卡边界
数据库
笃行3504 天前
金仓数据库数据安全双防线:静态存储加密与传输加密实战
数据库
笃行3504 天前
金仓数据库物理备份实战:sys_rman 全流程演练与误覆盖抢救
数据库
笃行3504 天前
金仓数据库逻辑备份实战:从全库导出到 Schema 替换的完整闭环
数据库