作者:Lucifer三思而后行

(第81天)log file sync 等待事件分析

参考:

介绍

什么是 log file sync 等待事件?

当用户会话进行提交时,会话事务锁产生的全部日志都需要从 LOG BUFFER 刷入到 REDO LOGFILE,以保证事务对数据库的更改成为永久性。

在 commit 的时候,用户会话会通知 LGWR 进程去写 log buffer(包含当前未写入的redo,会话当前的redo)到 red logfile,一旦 LGWR 进程完成写入请求,就会通知会话已完成。而 log file sync 等待时间就是用户 commit 操作等待 LGWR 进程通知确认以及 LGWR 完成写请求所花费的时间。

在 11.2 以及更高版本中,LGWR 可能会从默认的 post/wait 模式切换到轮询模式,在轮询模式下,LGWR 进程会在内存结构中维护写入的进度,等待 log file sync 的会话可以定期检查这个内存结构(即 poll),以确认 LGWR 进程的写进度以及会话的事务是否已经写入 log file,在这种情况下,等待时间将从通知 LGWR 进程写到 LGWR 进程完成写入会话当前的日志。

什么操作会产生 log file sync 等待?

  • commit 操作
    lock