重做日志缓冲区(redo log buffer)

本文详细介绍了Oracle数据库中的重做日志机制,包括其在SGA中的位置及其在数据恢复过程中的作用。文章还解释了Oracle如何在执行DML语句时,通过将必要的恢复信息写入重做日志缓冲区来确保数据的一致性和安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

重做日志缓冲区(redo log buffer)


重做日志缓冲区属于SGA。Oracle引入重做日志缓冲区的目的是用于数据恢复。

Oracle在执行任何DML和DDL操作改变数据之前,都会将恢复所需要的信息,先写入重做日志缓冲区,然后再写入 数据库高速缓冲区

Oracle执行DML语句时,只有编译(parse)和执行(execute)两个阶段:
(1)如果数据和回滚数据不在数据库高速缓冲区中,Oracle服务器进程会将它们从数据文件中读取到数据库高速缓冲区中。
(2)Oracle服务器进程会在要修改的数据行上添加行级锁。
(3)Oracle服务器进程将数据的变化信息和回滚所需的信息都写入重做日志缓冲区。
(4)Oracle服务器进程将对数据所做的修改和回滚所需的值都写入数据库高速缓冲区。然后将数据库高速缓冲区中的这些数据库标示为脏数据区(因为此时内存中的数据和外存中的数据是不一致的)。
(5)重做日志写进程将重做日志缓冲区中的数据写入重做日志文件中。
(6)数据库写进程将数据库高速缓冲区中的脏数据区中数据写入数据文件。


转载于:https://my.oschina.net/pkpk1234/blog/57526

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值