Oracle数据库服务器系统I/O 100%案例分析
Oracle数据库服务器系统I/O 100%案例分析
环境:
oracle 10.2.0.5 rac+aix 平台
问题描述:
客户数据库服务器I/O在业务高峰期非常繁忙,达到100%,cpu和内存有剩余。
分析过程:
1:检查操作系统日志,没有什么异常
2:检查数据库日志,也没发现什么异常
3:查看数据库等待事件,发现db file scattered read及db file sequential read 事件居多
4:根据等待事件查找sql 为以下相关sql
SELECT COUNT(1) FROM table T WHERE T.R = :1 AND t.d = '01'
都是访问跟T有关的sql
5: 生成awr和addm报告
6:根据awr和addm报告,查看物理读最多的sql,也是和T表有关
RECOMMENDATION 1: Segment Tuning, 79% benefit (231286 seconds)
ACTION: Investigate application logic involving I/O on TABLE
"owner.T" with object id 198667.
RELEVANT OBJECT: database object with id 198667
addm报告建议对这个表重建,产生的碎片太多
7:把这个表提供给业务开发人员分析,开发人员给出答案,这是业务新上线的一个模块,前期对这个表经常加载数据和删除数据,所以产生碎片太多。
经过开发人员重建后,相关索引建议,I/O 100的问题消失。
总结:
业务上线前要在测试环境做好足够的测试,没问题后,才可以在生产发布,业务流程上要加强。
本文标签:
网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!