日志缓冲区(redo log buffer)及日志写进程(LGWR)剖析
来源:互联网 发布:mac软件删除不彻底 编辑:程序博客网 时间:2024/06/05 00:58
日志缓冲区(redo log buffer)及日志写进程(LGWR)剖析
REDO LOG BUFFER:
日志中记录数据块的地址,更改的时间以及对数据块做了哪些改变。
Oracle在执行任何DML和DDL操作改变数据之前,都会将恢复所需要的信息,先写入redo log buffer,然后再写入database buffer cache。
① 如果数据和回滚数据不在database buffer cache中,server process会将它们从dbf文件中读取到database buffer cache中。
② server process会在要修改的数据行上添加行级锁。
③ server process将数据的变化信息和回滚所需的信息都写入redo log buffer。
④ server process将对数据所做的修改后的数据信息写入database buffer cache,然后将database buffer cache中的这些数据标记为脏数据(此时内存中的数据和磁盘上的数据是不一致的)。
⑤ LGWR将重做日志缓冲区中的数据写入重做日志文件中。
⑥ DBWn将database buffer cache的脏数据写入数据文件中。
LGWR:
LGWR的触发条件:
1.事务提交时
2.Log buffer中的数据超过1m时
3.当log buffer中的数据超过_log_io_size隐含值时
4.每隔3s
当事务提交时,会产生一个提交的redo record,这个redo record写入log buffer后,服务器进程(server process)会触发LGWR进行日志写操作。
有些系统中,平均每个事务的大小很大,有的为1m甚至更大,但是平均下来每秒的事务数却很小,这样通过提交来触发LGWR工作的机会很小,很有可能导致数据的积压,而数据量超过1m触发LGWR进行日志写操作正是为了解决这种情况。
_log_io_size参数的默认值是log buffer的三分之一,这个参数的意义是当log buffer中的buffer占用量超过这个参数的数值时会触发LGWR进行日志写操作,从而防止log buffer空间被消耗殆尽。
如果一个系统长时间没有事务提交,log buffer中的空间也很空闲,就可能导致log buffer中的数据长时间不写入redo log file中,增加数据丢失的风险,所以oralce通过每隔3s触发一次LGWR进行日志写操作大大的降低了这种风险。
- 日志缓冲区(redo log buffer)及日志写进程(LGWR)剖析
- 理解redo(4)redo log buffer和LGWR
- 关于重做日志缓冲区(REDO Log Buffer)中内容的一点研究
- 【MySQL 5.7 Reference Manual】15.4.4 Redo Log Buffer(Redo日志缓冲)
- ORACLE触发LGWR日志写进程的条件~
- REDO 重做日志文件(redo log files)管理
- 重做日志文件 redo log
- 日志切换 redo log 频繁
- 调整redo log 日志大小
- InnoDB事务日志(redo log 和 undo log)详解
- InnoDB事务日志(redo log 和 undo log)
- 数据库日志文件-- undo log 、redo log、 undo/redo log
- 数据库日志文件-- undo log 、redo log、 undo/redo log
- Oracle触发LGWR进程写日志的4个条件[转载]
- log buffer及日志管理深入分析及性能调整
- MySQL错误日志(error log),二进制日志(binlog),慢查询日志(slow query log),查询日志(general log),重写日志(redo log)
- log buffer及日志管理深入分析及性能调整(一)
- log buffer及日志管理深入分析及性能调整(二)
- 杭电第5162题----jump jump
- PRKP-1001,CRS-0215 rac 集群无法启动数据库和实例
- cocos2dx菜单重叠按钮实现按层优先选择及透明过滤
- 非递归遍历二叉树
- (蓝桥杯题)基础练习 矩形面积交
- 日志缓冲区(redo log buffer)及日志写进程(LGWR)剖析
- 开心的小明
- sizeof()用法汇总
- Android自定义组件ListView
- hdu-2087 剪花布条 【kmp】
- 【华为OJ】颠倒数字
- Effective C++学习杂记系列之拷贝构造函数和const使用
- [转]RocksDB介绍:一个比LevelDB更彪悍的引擎
- const,引用,const引用,非const引用