Oracle 查看 redo.log,Oracle Redo Log和CheckPoint详解

本文详细介绍了Oracle数据库中Redo Log的工作机制,包括LGWR写入Redo Log的条件和过程。同时,解析了Checkpoint触发的条件,以及其在数据库一致性与实例恢复中的作用。还探讨了Redo Log切换的条件和相关参数设置,如log_checkpoint_interval、log_checkpoint_timeout等,以及如何通过V$INSTANCE_RECOVERY等视图监控系统状态。

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

LogBuffer写入Redo Log的条件:

1).用户提交

2).有1/3重做日志缓冲区未被写入磁盘(可以通过修改_LOG_IO_SIZE参数来控制 )

3).有大于1M的重做日志缓冲区未被写入磁盘

4).每隔3 秒钟

5). DBWR 需要写入的数据的SCN大于LGWR记录的SCN,DBWR 触发LGWR写入。

LGWR写的具体过程:

1).先尝试获取redo writing latch,确保其他process不会继续触发lgwr(这里可能会产生log file sync等待事件)

2).获取redo allocation latch(public redo allocation latch),防止有新的change vector继续写入log buffer,造成LGWR无法确定应该写多少redo.

3).LGWR确定写的范围(从上次lgwr启动所写的最后一个日志块到这个时间点时的最后一个被使用的所有写满or未写满的日志块)此时前台process仍可以向这个范围内的redo block(buffer)写内容(从PGA写)所以lgwr不阻碍其它进程获得redo copy latch(即:不阻止其它进程向log buffer 中可用块中写change vector)

4).确定redo block(buffer)后生成新SCN号

5).LGWR释放redo allocation latch与redo writing latch

6).LGWR需要等待 其它进程对要写入日志文件的block的更新操作完成(pga-log buffer的操作),通过判断日志block(buffer)上的redo copy latch是否都释放。

7).将第4步scn号copy到要写入logfile的log buffer的块头里,然后触发物理的写操作,将这些待写日志

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值