前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >与IO相关的等待事件troubleshooting-系列8

与IO相关的等待事件troubleshooting-系列8

作者头像
bisal
发布2022-12-01 15:28:47
4720
发布2022-12-01 15:28:47
举报
文章被收录于专栏:bisal的个人杂货铺

与Redo日志IO相关的等待事件

        Redo日志活动期间会有很多的等待事件,而且他们大多是和IO相关的。最重要的两个就是‘log file sync’和‘log file parallel write’。

        Oracle前台进程(或叫服务器进程)等待‘log file sync’事件,LGWR进程等待‘log file parallel write’。

        尽管我们通常会从Statspack报告的“Top 5 Wait/Timed Events”节中看到‘log file sync’等待事件,为了理解这个等待事件的原因,我们首先看下‘log file parallel write’等待事件。

'log file parallel write'

        当正在将日志记录从内存的日志缓冲区拷贝到当前磁盘的redo日志组成员的日志文件时,LGWR后台进程会等待这种等待事件。如果允许使用异步IO,那就可以并行执行写操作,否则这种写操作就不得不一个成员一个成员地按照顺序进行。

        然而,LGWR不得不一直等待,直到这个等待事件完成之前,所有成员日志文件的IO操作完成。因此,决定等待时间长度的因

素是IO子系统执行日志文件成员写操作的速度。

        为了减少这种等待事件的等待时间,一种方法就是降低数据库产生的redo日志量:

1. 充分使用UNRECOVERABLE/NOLOGGING选项。

2. 降低redo日志组成员的数量到最小,确保同一时刻不会丢失所有的日志文件组成员。

3. 不要不必要地让表空间处于BACKUP状态。

4. 若需要附加日志达到需要的功能,那么就使用最小等级,例如LogMiner,Logical Standby或Streams。

        其它调优IO的方法:

1. 将redo日志组成员分散到不同的存储空间,以便使用并行写不会互相争用。

2. 不用让redo日志文件使用RAID-5。

3. 让redo日志文件使用裸设备。

4. 让redo日志文件使用更快的磁盘。

5. 如果正在使用归档,对当前redo日志组成员的写操作不会和正在进行归档的日志文件组读操作互相争用。

'log file sync'

        当执行COMMIT或ROLLBACK操作时,Oracle前台进程会产生等待事件,等待操作的完成。部分(不是全部)这种等待事件会包含等待LGWR将session交易操作的redo日志内容从日志缓冲内存刷到磁盘。

        所以,当一个前台进程正在等待‘log file sync时,LGWR也会花费一部分时间在‘log file parallel write’上。

        理解‘log file syn’背后原理的关键就是对比‘log file syn’与‘log file parallel write’平均等待时间。

1. 如果这两个时间相差不多,那么redo日志文件IO就是造成这种延迟的原因,接下来需要对其进行调优。

2. 如果‘log file parallel write’显著地不同,例如比较小,那么延迟就是由产生于COMMIT/ROLLBACK(和IO无关)期间的Redo日志机制的其它部分导致。有时可能是redo闩的闩锁争用,这时会出现‘latch free’或‘LGWR wait for redo copy’等待事件。

'log file sequential read' and 'log file single write'

        这两种等待时间都是和IO相关的,当出现redo日志的IO争用时,一般他们都和‘log file parallel write’一起出现。

'switch logfile command' ,'log file switch completion'和'log file switch (clearing log file)'

        更多LGWR与IO相关的等待事件,可参考之前的方法调优。

'log file switch (checkpoint incomplete)'

        当检查点活动未足够快地产生时,会有这种等待事件的产生。

'log switch/archive'和'log file switch (archiving needed)'

当归档模式打开,这种等待事件的产生表名归档操作执行没有足够快。

(未完待续)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档