"log file sync"等待事件-2

“log file sync”有三个参数:

P1 = buffer#

P2 = 未使用

P3 = 未使用

buffer#

这个buffer编号(在日志缓冲区中)的所有改变必须刷新到磁盘,写操作的完成保证了交易COMMIT的执行,即使实例crash也会保证COMMIT。因此LGWR的等待就是刷新这个buffer#。

等待时间:

这种等待完全依赖于LGWR写出所有必要的redo块,确保完成后返回给用户session。等待时间包括了日志缓冲写操作和提交操作。等待的时候,每秒都会增加序列号。

查找阻塞的块:

如果一个session持续等待同一个buffer#,那么SEQ#列应该每秒都会增加。否则本地session会出现等待事件超时的问题。如果SEQ#列持续增长,那么阻塞进程就是LGWR进程。检查LGWR正在等待哪些日志块的完成因而速度缓慢。

系统级等待:

系统级”log file sync“的等待参数显示了等待COMMIT完成花费的时间。如果这种等待非常明显,那么LGWR快速完整地刷出redo的能力就会有问题。”user commits“统计数据显示COMMIT的次数。

降低等待时间:

为了降低“log file sync”的等待,有几种常用调优的技巧:

>调优LGWR以能满足刷新到磁盘的良好性能,例如不用将redo日志存储到RAID5。

>如果有许多短时间的交易,看看是否可以进行批量交易,这样可以有更少的COMMIT操作。每次COMMIT都需要确认相关的redo信息是否刷新到磁盘。尽管commit是由Oracle内部处理的,但是通过批量交易可以降低commit的总体次数,达到一个非常好的效果。

>是否处理能够使用COMMIT NOWAIT选项(但在使用前需要理解他的语意)。

>确认任何交易使用NOLOGGING/UNRECOVERABLE选项是否安全。

>确认redo日志是否足够大。扩大redo日志,以保证日志切换可以控制在15到20分钟之间。

对于降低LOG FILE SYNC等待时间更加详细的分析可以参考如下:

LOG FILE SYNC等待的总时间可能会被切分为若干子节或组件。

如果确保上面提到的一些调优技巧已经使用了但你的系统仍旧显示较高的“log file sync”等待时间,那么你应该将总等待时间切分为单个的组件,然后调优这些组件,组成一个最长用时。

log file sync等待可能被切分为以下组件:

1. 唤醒已停止工作的LGWR。

2. LGWR收集需要写入磁盘与返回的IO。

3. 日志写IO完成的时间。

4. LGWR提交处理IO。

5. 写操作完成后LGWR提交给前台/用户session。

6. 唤醒前台/用户session。

基于log file sync切分后的组件的一些调优建议:

2和3累积在"redo write time"统计信息中。(例如Statspack和AWR的统计信息节中)

3是“log file parallel write”等待事件。

5和6随着系统负载的增加可能变得非常明显。这是因为即使已经返回请求到前台进程,仍可能需要花费OS时间进行调度执行。需要从操作系统级别的监控。

Data Guard的观点:

对于Data Guard,具有异步传输与默认的COMMIT WAIT功能,以上的调优步骤仍可以使用,除了第三步也包括对于备机redo日志的网络写与RFS/redo写的用时。

时间: 2024-07-29 17:14:57

"log file sync"等待事件-2的相关文章

[20161228]奇怪log file sync等待事件.txt

[20161228]奇怪log file sync等待事件.txt --这个来自链接:http://www.itpub.net/thread-2073857-1-1.html的讨论,很奇怪的问题: Top 10 Foreground Events by Total Wait Time Event                                              Waits    Total Wait Time (sec)    Wait Avg(ms)    % DB t

"log file sync"等待事件-1

"log file sync"是等待事件中非常常见的一种,他排在AWR的top5中有时是正常情况,有时则需要格外注意.昨天也听了一次Oracle的网络研讨会,介绍的是AWR相关的分析,从中学习到最重要的一点,就是对于AWR报告中若干信息的判断不能独立地看,需要综合起来,一个参数值大,不一定代表有问题,也可能是正常的,需要具体问题具体分析,其实和日常生活是一样的,头疼,不一定是感冒,也可能是缺少睡眠. WAITEVENT: "log file sync" Refere

log file sync 等侍值高的一般通用解决办法

log file sync等待时间发生在redo log从log buffer写入到log file期间. 下面对log file sync做个详细的解释. 何时发生日志写入: 1.commit或者rollback 2.每3秒 3.log buffer 1/3满或者已经有1M的redo数据.       更精确的解释:_LOG_IO_SIZE 大小默认是LOG_BUFFER的1/3,当log buffer中redo数据达到_LOG_IO_SIZE 大小时,发生日志写入. 4.DBWR写之前 _l

联机日志文件过小引发的log file 相关等待

      Oracle 联机重做日志文件记录了数据库的所有变化(DML,DDL或管理员对数据所作的结构性更改等),用于对于意外删除或宕机利用日志文件实现数据恢复来确保数据的完整性.但不合理的联机日志文件规划将引发日志相关的等待事件.下面是这样一个来自生产环境中的例子.   1.故障描述 --客户描述该数据库晚上用于实现数据同步以及汇总,以前一直工作的比较良好,随着需要同步的数量量的增大,最近变得越来越慢. --下面我们首先取了客户晚8点至第二天7点的awr report. WORKLOAD R

log file sync 因为数据线有问题而造成高等侍的表现

这是3月份某客户的情况,原因是服务器硬件故障后进行更换之后,业务翻译偶尔出现提交缓慢的情况.我们先来看下awr的情况.                                               我们可以看到,该系统的load profile信息其实并不高,每秒才21个transaction.先来看看top5events: 从top 5event,我们可以发现,log file sync的avg wait非常之高,高达124ms.大家应该知道,对于绝大多数情况 下,log fil

Statspack之十四-"log file sync" 等待事件

原文出处: http://www.eygle.com/statspack/statspack14-LogFileSync.htm 当一个用户提交(commits)或者回滚(rollback),session的redo信息需要写出到redo logfile中.用户进程将通知LGWR执行写出操作,LGWR完成任务以后会通知用户进程.这个等待事件就是指用户进程等待LGWR的写完成通知. 对于回滚操作,该事件记录从用户发出rollback命令到回滚完成的时间. 如果该等待过多,可能说明LGWR的写出效率

【Oracle】 检查log fie sysnc 等待事件的脚本

-- NAME: LFSDIAG.SQL  -- ------------------------------------------------------------------------  -- AUTHOR: Michael Polaski - Oracle Support Services  -- ------------------------------------------------------------------------  -- PURPOSE:  -- This

【等待事件之二】log 相关的等待

SQL> select * from v$version; BANNER                                                                           -------------------------------------------------------------------------------- Oracle Database 11g Enterprise Edition Release 11.1.0.6.0

Oracle中常见的33个等待事件小结

在Oracle 10g中的等待事件有872个,11g中等待事件1116个. 我们可以通过v$event_name 视图来查看等待事件的相关信息   一. 等待事件的相关知识 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件. 1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候,不用过多注意这部分事件. 2). 非空闲等待事件专门针对ORACLE的活动,指数据库任务或应用运行过程中发生的等待,这些等待事件 是在调整数据库的时候