oracle等待进程为lgwr,Oracle 后台进程(三)LGWR进程

本文详细介绍了Oracle数据库中的LGWR(LogWriter)进程的作用及其工作机制。LGWR进程负责将日志缓冲内容写入在线重做日志文件,保证数据库交易的完整性。文章还概述了LGWR触发写入日志的具体条件。
摘要由CSDN通过智能技术生成

一、LGWR进程简介

LGWR,是Log Writer的缩写,也是一种后台进程。主要负责将日志缓冲内容写到磁盘的在线重做日志文件或组中。DBWn将dirty块写到磁盘之前,所有与buffer修改相关的redo log都需要由LGWR写入磁盘的在线重做日志文件(组),如果未写完,那么DBWn会等待LGWR,也会产生一些相应的等待事件(例如:log file prarllel write,后面单独作为话题再聊)。总之,这样做的目的就是为了当crash时,可以有恢复之前操作的可能,也是Oracle在保持交易完整性方面的一个机制。

相关知识点:

1、LGWR写日志是顺序写,这就解释了一个Orace Server只能有一个LGWR进程,不能像DBWR那样可以有多个,否则就无法保证顺序写的机制,而且可能会产生锁的问题。

2、用户进程每次修改内存数据块时,都会在日志缓冲区(redo buffer)中构造一个相应的重做条目(redo entry),它记录了被修改数据块修改之前和之后的值。

3、LGWR将redo entry写入联机日志文件的情况可以概括为两种:后台写和同步写,或者说异步写和同步写。

二、LGWR进程刷磁盘机制

1、当用户进程提交一事务时写入一个提交记录

2、每3秒将日志缓冲区写入日志文件

3、当日志缓冲区满1/3时,将日志缓冲刷出

4、当DBWR将修改缓冲区写入磁盘前,将日志缓冲区刷出

日志缓冲区是一个循环缓冲区。当LGWR将日志缓冲区的日志写入日志文件后,服务器进程即可以将新的日志项写入到该日志缓冲区。LGWR写入速度很快,以确保日志缓冲区总有空间可以写入新的日志项。

Oracle 后台进程(三)LGWR进程

标签:serve   ora   try   entry   异步   而且   无法   后台   redo log

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:https://www.cnblogs.com/xibuhaohao/p/10919032.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值