AWR发现TOP Event log file switch (checkpoint incomplete)

一、问题

    客户反馈,业务hang死,创建问题时段awr,top event 是checkpoint incomplete

1.1、awr,top event 

    可以发现是log file switch(checkpoint incomplete)  这个等待事件是指current log file 写满,需要切换创建归档日志,但是需要覆盖的旧的日志文件里面对应的脏块并未写入磁盘,ckpt未完成导致日志无法切换,业务的dml操作就被hang住了。

    根据上面的理论知识,问题的可能性有2:

   1.日志文件日志组数量太少,在业务频繁的dml产生大量redo容易造成日志非常快速的写满,让IO的压力很大且很集中【方法就是增加日志组里面日志文件的大小,增加日志组数量,让IO的操作时间延长,达到分散的目的】;

   2.存储性能太差,导致ckpt检查点无法完成数据写入的动作;

1.2 日志切换,及日志组调整

total=3005是因为这个awr创建是00~16  16个小时!!!,但是即使如此,per Hour 每小时切换187次!!! 3分钟不到切换一次! Oracle Mos有建议无明确规定,建议是15~30分钟切换一次。

日志组3组,日志文件单个50M,属于数据库11.2.0.4 安装的默认大小,对其进行调整。

新增6组500M日志文件,删除原3组50M日志文件【单实例删除日志组并不会删除操作系统日志,但是为了安全可以不擅长日志文件,保留即可】

1.3 IO效率

 

 可以发现log file parallel write avg(ms)=5  不算太差,也不算太好的IO效率

db file sequentail read,db file single write  avg(ms)分别是3,2 不算差;

db file async i/o submit 业务的dml操作被log file swith(checkpoint incomplete)阻塞无法作为IO效率查询,log file switch(checkpoint incomplete)同样如此。

 

4ms <log file parallel write 51.8% <8ms  说明IO效率真的不高!!! 而且此awr还是00~16:00 存在空闲期见高效率io 稀释的情况。

二、总结 

 1.日志组3组,日志文件单个50M,属于数据库11.2.0.4 安装的默认大小,对其进行调整。

新增6组500M日志文件,删除原3组50M日志文件【单实例删除日志组并不会删除操作系统日志,但是为了安全可以不擅长日志文件,保留即可】

2.对Oracle 存储进行更换,使用更好更快的存储! 或者让日志文件放在更好的存储上!

原文地址:https://www.cnblogs.com/lvcha001/p/12804924.html