12.Oracle杂记——Oracle等待事件性能监控脚本
12.Oracle杂记——Oracle等待事件性能监控脚本 在第10篇中,列了一个执行脚本但是感觉还是太粗,缺少针对性。对此又进行了一些优化和雕琢。雕琢算不上,只是进行了揣摩。 原型脚本集成的命令太多太散,不能精确分析问题,所以进行了分治。 脚本名字从原先的select_dbinfo.exe改为dbwaiteventmon.exe 更加形象,当然其中和wait无关的监控后续也会重新进行整理。 考虑到数值动态变化,会话与系统统计数据的差异,各类相关信息区别和联系;蛤蟆初步规划如下,当然此处只是个规划,后续可能会改变。如有改变后续再加以说明,很多在可以图形化OEM点击得到,而且非常直观,此处实现用于学习目的和给文本爱好者的朋友。 等待事件监控:dbwaiteventmon.exe 用于错误故障诊断监控:dberrfind.exe 诊断磁盘IO类:dbiomon.exe 诊断内存命中类:dbhitratiomon.exe 诊断表索引类:dbtableindexmon.exe 诊断表空间类:dbtbspacetmon.exe 诊断SQL类:dbsqlmon.exe 诊断进程类:dbprocessmon.exe 诊断会话类:dbsessionmon.exe 报告类:dbreport.exe 此篇主要是实现等待事件动态监控:dbwaiteventmon.exe 据说等待事件从ORACLE7.0.12开始的,对此不做任何评论,这种历史错了又何妨呢? 在12C 中共有等待事件:1650种,记住每个等待事件的可能性几乎是0. 如果能全记住,蛤蟆建议去参加最强大脑,但是生活中没记住可以查的,只要知道哪里可以查找即可。 主要分为IDLE和NON-IDLE的,我们关系NON-IDLE的等待。 当前实现的功能如下: $ sh dbwaiteventmon.sh Invalid Arguments! pls use like this : ./dbwaiteventmon.exe [NUMBER ] the NUMBER can be from 1 to 100 [1] show the wait event's parameters meaning [2] show the specified SESSION's current all wait,you should specify the SESSIONID [3] show the specified SESSION's history TOP 10 wait,you should specify theSESSION ID [4] show ALL SESSION's current wait [5] show SYSTEM's TOP 10 wait event (the statistical information begin withinstance started) [6] show SYSTEM's latch wait,gets,misses,sleeps,need latch name input [7] get the last Minuts's wait event,you can define how minutes [8] get the waitevent which waited more than ? seconds,you can control thesecond number [9] get database wait time ratio 共9个功能。 分别是: 1 显示等待事件的参数含义 2 显示指定会话的当前所有等待,需要输入会话ID 3 显示指定会话的TOP 10历史等待,需要输入会话ID 4显示所有会话的当前等待 5 显示系统TOP 10等待事件 6 显示SYSTEM LATCH的WAITS,GETS,MISSES,SLEEPS,需要输入LATCH名字 7 获取最后几分钟等待事件,可以定义多少分钟 8 获取 超过多少秒的等待事件,可以输入多少秒 9 获取数据库等待事件占总体的比例,这个颗粒度比较大。 后续蛤蟆会不断更新,如果有更新会直接传到CSDN上。 下载地址:http://download.csdn.net/detail/notbaron/9447082 后续几篇的小工具也已经一并打包到里面,大家可以直接下载尝试一下。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |