log file switch completion,log file switch(checkpoint incomplete),log file switch(archiving needed)

log file switch completion,log file switch (archiving needed) log file switch (checkpoint incomplete)

这三个等待事件是没有参数的,在10g中,它位于configuration类下 

SQL> select name,parameter1,parameter2,parameter3,wait_class from v$event_name where name in( 'log file switch completion',
  2  'log file switch (checkpoint incomplete)','log file switch (archiving needed)');

NAME                                          PARAMETER1 PARAMETER2 PARAMETER3 WAIT_CLASS
--------------------------------------------- ---------- ---------- ---------- -------------------------------------------------------
log file switch (checkpoint incomplete)                                        Configuration
log file switch (archiving needed)                                             Configuration
log file switch completion                                                     Configuration

当这三个等待事件出现比较频繁,可能是由于事物繁忙,导致redo生成过快,日志文件过小造成的。

这个时候可以考虑增大日志文件大小,增加日志文件组,删除以前过小的日志文件。

另外

log file switch (checkpoint incomplete)也有可能是dbwr写太慢,引起的,可能需要增加dbwr数量,调整I/O。

log file switch (archiving needed) 这个等待事件也有可能是归档太慢,应该将归档日志存放在I/O快速的磁盘上,增加归档进程

调整log_archive_max_processes归档进程。

 

在日志切换的过程中,lgwr进程首先要关闭current日志组,然后打开下一个日志组,这个过程中任何DML操作都无法进行,直到切换完成。日志切换的时候需进行归档,checkpoint,如果归档慢,DBWR慢,必然导致前台业务等待,这个等待过程如果比较长,会导致用户响应缓慢,所以出现了上述三类等待事件,应该引起足够重视,Oracle推荐的日志切换事件一般是20分钟,当然在业务很繁忙的情况下日志切换比较频繁,可能几分钟就切换一次,如果没有引起log file switch 之类的等待事件,就不需要增大日志文件了,太大的日志文件可能导致损失过多的数据。

你可能感兴趣的:(log file switch completion,log file switch(checkpoint incomplete),log file switch(archiving needed))