Oracle lgwr进程及触发条件

LGWR,主要的内存组件是REDO LOG BUFFER, 另外还涉及REDO LOGFILE,它是物理组件, REDO是我们记录了数据库提供的服务的所有交易历史,包括买卖和退货, 也就是REDOUNDO, UNDO其实也是在REDO BUFFERREDO记录形式存在, 只是它的日志关系到的是保留回退的数据,所以也记在REDO里了,它记录了UNDO BLOCK的改变线索.

那这些交易历史记录必须有地方保存,我们会有三个地方保存这些数据:

⊙ redo buffer

⊙ redo logfile

⊙ archivelogfile

这3个部分都有相应的进程去完成,并有一套严格的触发机制,

我们看LGWR是从redo buffer写到redologfile, 为了减少写LOGFILEIO,不是时刻在写redo buffer写到redo logfile,而是有触发条件的:

a) 1 meg of data appears in the log buffer: 当log buffer填满1M时触发LGWR

b) every 3 seconds:每三秒触发一次

c) when it is 1/3 full:当log buffer三分之一满时。

d) upon commit:当执行提交的时候

e) dbwr:当触发DBWR前,也就是数据写到数据文件之前。

o REDO BUFFER中的REDO是由REDO COPY LATCH产生的;

o REDO LOG FILE是由LGWR生成的.

你可能感兴趣的:(数据库,后台进程)