Kaya 发表于 os2ora.com
写了Linux上的监控与分析工具 之后,写写Oracle上相应的监控与分析工具还是挺有意思的,一方面可以更加完整,一方面可以进行横向对比。
Linux上的性能数据一般都来自于/proc文件系统,而Oracle则是来自于V$视图。因此,所有的Oracle监控工具的实现都万变不离 V$ 视图。而这些个视图里面,最重要的应推v$sysstat。里面记录着Instance一级的各个统计数据的当前值,例如CPU利用情况,逻辑 读,Redo Size等等。10g后有了另一个重要的视图,叫v$active_session_history,通过它可以容易地得知当前Instance的活动状 态,主要是各个时刻系统都在等待哪些事件,通过对这些等待事件和相应等待次数的统计,就可以清晰地了解系统的历史工作负载特征和压力情况。如果想获取当前 正在执行的SQL,则可查询v$sql视图。如果想获取当前SQL的执行计划,则可调用dbms_xplan.display_cursor。从这方面 讲,每一个DBA都具备着写一个Oracle的监控工具的能力。它应该比写一个Linux的监控工具来得容易简单得多。
如果对监控工具做下分类的话,可以分成两类,一类是基于文本模式的,一类是基于GUI模式的。大部分DBA都自己收集了一些很常见的监控脚本,我想 可以把这一类归为基于文本模式的工具。文本模式的好处在于轻量级,反应速度快,比较适合在shell模式下和sqlplus协同工作。大部分DBA可能也 比较习惯这个模式,包括我在内。
GUI模式用得较多的工具应该是Toad。很不错的一个工具,用它来监控sessions,session正在执行的语句,session的等待事件是我最常用的一个功能。
也有一些后起之秀,有个工具也许值得一提,叫做DB Optimizer 。最主要的是这个产品的主要参与者:参与了10g EM里的Performance Page的重新设计的Kyle Hailey 。以一个截图做为结尾吧: