在Oracle Enterprise Manager 12c中引入了Real-Time addm的新特性。 DBA可以直接从EM界面上启动实时ADDM(Automatic Database Diagnostic Monitor )信息收集, 也叫做Emergency ADDM。
“Emergency ADDM adds performance diagnostics for databases suffering from severe performance problems. Real-time ADDM. You can connect to the database and investigate what is going on when you cannot connect to the database because it is hanging on“
登录EM 12c后Target -> Database -> 选择指定的数据库 -> Performance -> Real-Time Addm:
进入”Real-Time ADDM”后点选start按钮,第一次使用会出现”Required PL/SQL package not installed. Use the link below to deploy the package. The error message from the server is:Package dbsnmp.prvt_eaddm is not found” 的错误:
使用Real-Time Addm要求预安装dbsnmp.prvt_eaddm包,点选下方的PL/SQL Package Deployment链接,进入Package Deployment页面,选择合适的身份认证,并install。
进入Job Run: DATABASE MANAGEMENT PL/SQL DEPLOYMENT JOB页面等待作业完成。
以测试为目的登录数据库并运行以下消耗CPU的SQL语句(不要用在生产库!):
select count(1) from obj$,obj$,obj$;
回到”Real-Time ADDM”页面再次点击start , 等待一段时间后会自动stop,如下图:
Real-Time Addm有所发现,这里的Number of finding =1 ,点击Findings 可以看到Prority、Performance Impact、Finding Details等信息:
当出现服务进程hang的情况,例如进程因”enq: TM contention” 队列锁而长久等待,则可以从hang data栏获取hang analysis Final Blocker 和 blocking session的信息, 找出阻塞的源头:
上图中列出了Blocker chains ,一定程度上可以替代hanganalyze dump。
statistics栏给出了实例的一些属性和近期的系统度量system metrics:
Real-Time Addm可以帮助我们快速定位性能和挂起hang问题,而且给出初步的分析,这要比我们使用脚本一步步查来的快捷多了。
前几天跟Thomas.zhang 聊天,他提起这个功能,推荐了一下,让去他的网页看看界面。今天居然在你这里也看到了,你这里比他那边介绍的跟详细。这个功能确实不错,帮忙DBA 在数据库出现紧急问题时,快速、及时的定位问题。
但这个功能好像只做OEM里才有,不知道什么时候能在DB CONTROL里加入这个功能,毕竟OEM 12C太庞大了。在管理少量数据库时,一般不会安装。我们要承认oracle 在数据库管理,易用性上是做的越来越好了。
的确在遇到紧急性能问题时 可以大大缩短诊断的时间,很不错的一个特性。相信在12c 的DB control中会出现的。
我试了一下,发现只有在管理11g的数据库才会出现实时addm选项,管理10g的数据库时没有,即使我已经按照要求安装了dbsnmp.prvt_eaddm包,不知道你试过没有,有没有解决办法?
目前还没有机会测试
经测试,12.1.0.2 里,10204可以使用此特性!
没有for linux ia64 的agent,悲催啊