Oracle 后台进程(三)LGWR进程
2024-09-05 04:11:17
一、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写入速度很快,以确保日志缓冲区总有空间可以写入新的日志项。
最新文章
- Linq 单表城市级联
- 通过sharedpreferences实现记住密码功能
- IE浏览器下ajax缓存导致数据不更新的解决方法
- PSAM卡与CPU(用户卡)的操作过程
- Glide
- ecshop后台增加栏目查询会员是否重复注册
- ecstore 后台登陆跳转到 api失败,中心请求网店API失败
- C++默认参数不能是一个引用
- cocos2d-x 2.2 开发手记2
- apache开源项目--JMeter
- Android Training精要(四) Intent注意事项
- 韩玉琪 《Linux内核分析》MOOC课程
- hdu 3498 whosyourdaddy 重复覆盖
- dm3730和dm6437,dm6446,AM335x启动过程的不同
- Java语言跨平台原理
- scrapy_Response and Request
- zookeeper基本原理及适用场景 转:http://blog.chinaunix.net/uid-26748613-id-4536290.html
- python-memcached学习笔记
- 选择排序:直接选择排序&;堆排序
- Hexo的搭建