一、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写入速度很快,以确保日志缓冲区总有空间可以写入新的日志项。

最新文章

  1. Linq 单表城市级联
  2. 通过sharedpreferences实现记住密码功能
  3. IE浏览器下ajax缓存导致数据不更新的解决方法
  4. PSAM卡与CPU(用户卡)的操作过程
  5. Glide
  6. ecshop后台增加栏目查询会员是否重复注册
  7. ecstore 后台登陆跳转到 api失败,中心请求网店API失败
  8. C++默认参数不能是一个引用
  9. cocos2d-x 2.2 开发手记2
  10. apache开源项目--JMeter
  11. Android Training精要(四) Intent注意事项
  12. 韩玉琪 《Linux内核分析》MOOC课程
  13. hdu 3498 whosyourdaddy 重复覆盖
  14. dm3730和dm6437,dm6446,AM335x启动过程的不同
  15. Java语言跨平台原理
  16. scrapy_Response and Request
  17. zookeeper基本原理及适用场景 转:http://blog.chinaunix.net/uid-26748613-id-4536290.html
  18. python-memcached学习笔记
  19. 选择排序:直接选择排序&堆排序
  20. Hexo的搭建

热门文章

  1. 【全排列+子序列】Color
  2. Python操作Redis(转)
  3. solr 配置中文分析器/定义业务域/配置DataImport功能(测试用)
  4. legacy
  5. MUI顶部导航布局
  6. gitlab中的几个常用界面(runner管理、gitlab-ci.yml管理、runner token管理、新建用户、拉用户入工程、拉用户入组、复制工程导入组)
  7. ASTA存在的问题
  8. 批量删除redis
  9. 【leetcode】302.Smallest Rectangle Enclosing Black Pixels
  10. c# 枚举和位标志