日期:2014-05-16  浏览次数:20419 次

Oracle 有关redo log的等待事件

这两天发现开发用的数据库,在运行一些小的DML事务时,会经常出现log buffer space的事件,然后增大了redo log为300M 4组,调整了log buffer参数后仍然出现。问了下高手说,磁盘的I/O慢。

也没得出啥好的解决方案。

列下Oracle 对? redo log 相关等待事件的解释:

1.log buffer space

Waiting for space in the log buffer because the session is writing data into the log buffer faster than LGWR can write it out. Consider making the log buffer bigger if it is small, or moving the log files to faster disks such as striped disks.

等待log buffer 的空间,因为session把数据写入log buffer的速度快于 LGWR进程把 log buffer的数据写入 日志文件. 建议把log buffer 增大,或者把log files放到速度较快的磁盘上。

Wait Time: Usually 1 second, but 5 seconds if it is waiting for a Switch Logfile to complete
-----------------------------------------------------------------
2.log file switch (checkpoint incomplete)

Waiting for a log switch because the session cannot wrap into the next log. Wrapping cannot be performed because the checkpoint for that log has not completed.

等待日志的切换,因为其日志还没有把相应的数据写入磁盘.

Wait Time: 1 second

Parameters: None

--------------------------------------------------------------------
3.log file switch completion

Waiting for a log switch to complete.
等待日志的切换完成
Wait Time: 1 second

Parameters: None
------------------------------------------------------------------------
4.log file sync

When a user session commits, the session's redo information needs to be flushed to the redo logfile. The user session will post the LGWR to write the log buffer to the redo log file. When the LGWR has finished writing, it will post the user session.
当一个用户发出commit命令时,用户在redo日志文件中的的redo信息需要被重写。LGWR的进程将把log buffer中的内容写入到redo 日志中。

Wait Time: The wait time includes the writing of the log buffer and the post.
Parameter ??? Description
buffer# ??? The number of the physical buffer in the redo log buffer that needs to be synchronized