Oracle调优之redo相关

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的信息量。

你可能感兴趣的:(oracle)