redo buffer大小由参数log_buffer决定。 在redo buffer中的每条记录称为redo entire。 LGWR将redo buffer中的redo entire写到重做日志文件中,LGWR进程只有1个。 LGWR在下列情况下对重做日志文件进行写入 commit发生时, 每3秒 redo buffer 1/3满时 超过1M时 在DBWn写之前 如何查看redo buffer中已有多少个redo entire? v$sysstat的redo entire字段 如何查看再次请求redo buffer空间的次数 v$sysstat的redo buffer allocationn retire字段(越小越好) 当向redo buffer中添加信息,但空间不足时产生log buffer space event(应避免) 应避免日志组之间的切换耗费过多的时间,应避免一系列的log file switch事件。如果出现某种log file switch事件,可考虑增大logfile的容量。 还应避免LGWR等待DBWn完成检查点的情况,对应的等待事件为log file switch (checkpoint incomplete),可通过v$system_event查看该事件的相关情况,或在alter.log文件中检查“checkpoint not complete”。 应避免ARCn进程归档未完成造成LGWR等待的次数。对应等待事件log file switch (archiving needed) 批量插入时可考虑使用直接写方式减少redo的信息量。
原文链接:https://www.f2er.com/oracle/213360.html