天道酬勤,学无止境

LGWr

redo机制详解——做好数据的第一层安保

仅仅是个人对redo运行机制的理解,不对的地方,希望筒子们指出,共同学习。如果你想让你对redo的理解更加清晰,那么可以选择继续看下去。redo存在的根本意义: 大家都知道数据库修改数据是在buffer cache中进行修改的,然而在commit之后,并不会马上写入数据文件(no-force-at-commit策略),因为这样零散的写出非常消耗资源,而且IO从来都是最有可能是性能瓶颈的地方,但是为了保证提交后的数据能够在故障后可以被恢复,这就产生了redo机制,通过将数据库的修改操作记录到redo log buffer中,写出到redo文件中,来推迟数据的写出,达到批量处理的效果,提高了效率。所以redo 对于数据库是极其重要的。redo机制的组成: redo机制,包含三大组件:redo log buffer,LGWR后台进程,redo log file日志文件(如果归档模式下还有arch后台进程以及归档日志文件); 如果每产生一次redo就要写入到redo log file中,这同样也会产生IO的问题,同时在高并发的环境下还会引发redo log file的争用,所以就产生了 redo log buffer(oracle分配的一块内存区域,存在于SGA中,循环使用),但是该内存区域是循环使用的这就需要一个后台进程来不断的将log buffer 中的内容写出到redo log

2021-03-26 20:08:19    分类:博客    redo   LGWr   redo log buffer   oracle