ADDM(Automatic Database Diagnostic Monitor)是Oracle数据库中的一个自诊断引擎,ADDM通过检查和分析AWR获取的数据来判断Oracle数据库中可能的问题。
默认情况下,ADDM为启用状态。可以通过指定初始化参数control_management_pack_access和statistics_level来控制ADDM,要想启用ADDM,必须设置control_management_pack_access为DIAGNOSTIC+TUNING(默认值)或DIAGNOSTIC。如果要禁用ADDM,需要将control_management_pack_access设置为NONE或者将statistics_level设置为basic。
为了诊断数据库性能,ADDM分析可以跨越任意两个snapshots,只要它们满足下面两个条件:
Ø 快照在创建过程中没有错误而且没有被删除
Ø 两个快照期间数据库没有发生关闭事件
1) 使用addmrpt.sql来创建ADDM报告
Oracle提供了一个脚本addmrpt.sql(位于$ORACLE_HOME/rdbms/admin目录中)来生成ADDM报告。
SQL>@$ORACLE_HOME/rdbms/admin/addmrpt.sql
Ø 指定要使用的start_snap:
Enter value for begin_snap: 108
Ø 指定要使用的end_snap:
Enter value for end_snap: 109
Ø 指定AWR报告的报告名。
Enter value for report_name: /tmp/addmrpt_1_108_109.txt
2) 使用DBMS_ADVISOR程序包来创建ADDM报告
DBMS_ADVISOR程序包可以帮助用户管理ADDM属性,通过SQL语句执行像创建人物和检索ADDM报告这样的工作。非DBA用户需要具有ADVISOR权限才可以使用DBMS_ADVISOR程序包。
下面为DBMS_ADVISOR程序包的主要过程和函数,不仅仅是在ADDM中使用,还可以用于其他的数据库顾问程序。
CREATE_TASK:创建一个新的顾问任务。
SET_DEFAULT_TASK:帮助修改任务中参数的默认值
DELETE_TASK:从信息库中删除一个特定的任务
EXECUTE_TASK:执行一个特定的任务
GET_TASK_REPORT:显示最近的ADDM报告
SET_DEFAULT_TASK_PARAMETER:修改默认的任务参数
通过使用DBMS_ADVISOR程序包的GET_TASK_REPORT过程,可以得到与前面使用addmrpt.sql脚本获得的相同的ADDM报告。下面是取得一个文本报告的示例:
SQL> set long 1000000
SQL> select dbms_advisor.get_task_report(
task_name,'TEXT','ALL')
from dba_advisor_tasks
where
task_id=(
select max(t.task_id)
from dba_advisor_tasks t,dba_advisor_log l
where t.task_id = l.task_id
and t.advisor_name='ADDM'
and l.status='COMPLETED');
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29302187/viewspace-2058091/ ,如需转载,请注明出处,否则将追究法律责任。