您的位置:首页 > 其它

2013-04-11 log file sync等待造成系统不可用

2013-04-12 09:35 537 查看
        反馈:4月11日9点钟上班时,发现系统很慢,你使用脚本查到有锁表的问题,然后你对session进行kill,系统恢复正常。

       原因分析:

       下面4:00-6:00的数据库报告的TOP5的等待事件,数据库版本是10g,cpu是4个。

EventWaitsTime(s)Avg Wait(ms)% Total Call TimeWait Class
log file sync192,15618,7439846.9Commit
RMAN backup & recovery I/O7,0777,9151,11819.8System I/O
db file sequential read40,5577,42418318.6User I/O
read by other session15,3067,02545917.6User I/O
SQL*Net more data to client37,8192,595696.5Network
同时伴随着log file parallel write的等待事件:

log file parallel write883 2,39827160.
        分析了11日0:00-10:00的数据库报告。发现凌晨4点钟开始数据库就有问题了。等待事件log file sync在4:00-6:00等待总时间为18,743s,等待192,156次,平均等待时间98ms。log file sync这个等待事件十分关键,我们日常做数据库维护的时候,应该对此指标建立基线,一旦这个指标有异常变化,一定要尽快进行分析并解决问题。一旦这个指标恶化,可能导致系统性能急剧下降,甚至导致短暂的HANG住。当log
file sync平均等待时间超过20ms就要开始预警,可以看到4:00-8:00之前的报告,log file sync平均等待时间远大于这个值,说明数据库写redo log的磁盘读写速度达到了极限。现场反馈的表被锁只是表象,log
file sync等待时间变长会导致系统所有的事务提交变慢,锁释放变慢;你后续的处理使系统恢复正常,属于巧合,其实是数据库的redo写的能力变恢复正常了。
       还有rman备份的时间过长,rman是要反复读取数据块的,防止块裂,所以它会严重的占用磁盘读资源,也就是影响磁盘的吞吐量,从user commit和user rollback来看,事务量比起上一个时间点有所增加,这也符合一般系统的规律,8点以后开始上班,所以事务量增加,系统响应开始出现问题。
       解决方案:
       第一:调整rman备份策略。rman在8点前一定要备份完成,可以采用增量备份的方式,
       第二:提升的磁盘读写能力,写redo log换用更快的raid来解决这个问题。据我猜测,redo的磁盘很可能用的是文件系统,也许是单个磁盘,才导致了这么差的性能,或者是redo和rman的磁盘放在一起了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: