参考:
- Script to Collect Log File Sync Diagnostic Information (lfsdiag.sql) ( Doc ID 1064487.1 )
介绍
什么是 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 操作