在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问题,而且给出初步的分析,这要比我们使用脚本一步步查来的快捷多了。