`

自动诊断工具ADDM

 
阅读更多

ADDM是 Automatic Database Diagnostic Monitor的缩写,字面上看出是一个自动诊断工具。利用这个工具可以发现潜在的性能问题和瓶颈,并提供了解决问题的建议和方案,要使用这个工具必须设置参数STATISTICS_LEVEL为TYPICAL(默认)或者ALL。
使用ADDM可以获得如下的这些数据:
CPU负载、内存使用情况、I/O使用情况、高耗费资源的SQL\PLSQL等等、应用程序问题、数据库配置问题、连接性问题、对象问题和RAC问题等等。
好了,下面来说下如何使用这个工具吧。
0. addmrpt.sql脚本
这个脚本的位置在rdbms/admin/addmrpt.sql,使用很简单,直接调用这个脚本即可。
[oracle@gtlions ~]$ sqlplus "/as sysdba"

SQL*Plus: Release 10.2.0.5.0 - Production on Wed Mar 7 01:19:09 2012

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

sys@GT10G> show parameter satistics_level;
sys@GT10G> show parameter statistics_level;

NAME                     TYPE     VALUE
------------------------------------ -------- ------------------------------
statistics_level             string   TYPICAL
sys@GT10G> @?/rdbms/admin/addmrpt.sql
。。。。。。
。。。。。。
在列出最近的快照列表中选择你要生成报告的起始和结束的快照号,默认的是列出最近3天的快照,如果需要列出更长时间的,需要自行修改脚本,注意的是选择的起始和结束快照之间不能有实例中断的情况,生成的报告的文件名称,生成的报告默认保存在当前路径下,
1. 使用DBMS_ADVISOR工具包
如果你无法登录到服务器进行操作的话,可以使用这个包在sqlplus里面进行操作:设置任务、设置快照起始值、设置快照结束值、运行任务、获得报告。
可以参考官方的一个函数来执行以上任务:
CREATE OR REPLACE FUNCTION run_addm(start_time IN DATE, end_time IN DATE )
  RETURN VARCHAR2
IS
  begin_snap          NUMBER;
  end_snap            NUMBER;
  tid                 NUMBER;          -- Task ID
  tname               VARCHAR2(30);    -- Task Name
  tdesc               VARCHAR2(256);   -- Task Description
BEGIN
  -- Find the snapshot IDs corresponding to the given input parameters.
  SELECT max(snap_id)INTO begin_snap
    FROM DBA_HIST_SNAPSHOT
   WHERE trunc(end_interval_time, 'MI') <= start_time;
  SELECT min(snap_id) INTO end_snap
    FROM DBA_HIST_SNAPSHOT
   WHERE  end_interval_time >= end_time;
  --
  -- set Task Name (tname) to NULL and let create_task return a
  -- unique name for the task.
  tname := '';
  tdesc := 'run_addm( ' || begin_snap || ', ' || end_snap || ' )';
  --
  -- Create a task, set task parameters and execute it
  DBMS_ADVISOR.CREATE_TASK( 'ADDM', tid, tname, tdesc );
  DBMS_ADVISOR.SET_TASK_PARAMETER( tname, 'START_SNAPSHOT', begin_snap );
  DBMS_ADVISOR.SET_TASK_PARAMETER( tname, 'END_SNAPSHOT' , end_snap );
  DBMS_ADVISOR.EXECUTE_TASK( tname );
  RETURN tname;
END;
/
-- set SQL*Plus variables and column formats for the report
SET PAGESIZE 0 LONG 1000000 LONGCHUNKSIZE 1000;
COLUMN get_clob FORMAT a80;
-- execute run_addm() with 7pm and 9pm as input
VARIABLE task_name VARCHAR2(30);
BEGIN
  :task_name := run_addm( TO_DATE('20120311 12:00:00', 'YYYYMMDD HH24:MI:SS'),
                          TO_DATE('20120312 12:00:00', 'YYYYMMDD HH24:MI:SS') );
END;
/
-- execute GET_TASK_REPORT to get the textual ADDM report.
SELECT DBMS_ADVISOR.GET_TASK_REPORT(:task_name)
  FROM DBA_ADVISOR_TASKS t
 WHERE t.task_name = :task_name
  AND t.owner = SYS_CONTEXT( 'userenv', 'session_user' );
可以看到实际上是调用了几个过程和函数来实现:创建任务,设置任务参数、执行任务;最后通过任务视图来获取报告。
也可以单独来执行处理:
BEGIN
  -- Create an ADDM task.
  DBMS_ADVISOR.create_task (
    advisor_name      => 'ADDM',
    task_name         => 'MYADDM',
    task_desc         => 'MYADDM');

  -- Set the start and end snapshots.
  DBMS_ADVISOR.set_task_parameter (
    task_name => 'MYADDM',
    parameter => 'START_SNAPSHOT',
    value     => 101);

  DBMS_ADVISOR.set_task_parameter (
    task_name => 'MYADDM',
    parameter => 'END_SNAPSHOT',
    value     => 130);

  -- Execute the task.
  DBMS_ADVISOR.execute_task(task_name => 'MYADDM');
END;
/

-- Display the report.
SET LONG 100000
SET PAGESIZE 50000
SELECT DBMS_ADVISOR.get_task_report('MYADDM') AS report
FROM   dual;
2. Enterprise Manager
这个就不多做说明了。
3. 相关视图
DBA_HIST_SNAPSHOT --存放的是快照信息
DBA_ADVISOR_TASKS --存放的是addm任务 Basic information about existing tasks.
DBA_ADVISOR_LOG --addm执行日志
DBA_ADVISOR_FINDINGS ---addm诊断结果概述 不同模块存放
DBA_ADVISOR_RECOMMENDATIONS ---addm诊断结果建议 不同模块存放
-The End-

----例子

create table t_test_subtemplate
(
  rec_type         varchar2(10),
  capture_time  varchar2(30),
  uuid                 varchar2(30)
)
partition by range(capture_time)
subpartition by list(uuid)
subpartition template
(
  subpartition sp00 values('1'),
  subpartition sp01 values('2')
)
(
  partition part_201101 values less than(20130130),
  partition part_201102 values less than(20130230)
);

alter table t_test_subtemplate add partition part_201104 values less than(20130330);

分享到:
评论

相关推荐

    oracle ADDM自动诊断监视工具

    oracle ADDM自动诊断监视工具 oracle ADDM自动诊断监视工具

    oracle ADDM 自动诊断监视工具

    oracle ADDM 自动诊断 监视 工具

    Oracle ADDM报告指标分析

    ADDM:automatic database diannose management ,自动数据库诊断管理。

    oracle 生成ADDM和AWR的脚本

    Linux下生成oracle awr和addm的数据库脚本。通过生产环境测试。

    Oracle常用分析诊断工具.pdf

    本文介绍了Oracle常用分析诊断工具。在测试通过的基础上,采用讲解结合实例的方式,对分析诊断工具方法、命令、步骤和关键点进行了说明和讲解,读者只需按照本文进行学习,即可完成Oracle常用分析诊断工具的初步学习...

    ORACLE数据库(11g或10g)AWR与ADDM报告收集方法

    ORACLE数据库(11g或10g)AWR与ADDM报告收集方法ORACLE数据库(11g或10g)AWR与ADDM报告收集方法

    Oracle数据库10g自我管理功能之自动性能诊断

    本白皮书介绍的主要组件包括自动工作负载信息库 (AWR)、自动数据库诊断监控程序 (ADDM) 和 Oracle Enterprise Manager (EM)。所有这些组件均建立在 Oracle 数据库代码中代码规范的基础上,该代码规范生成大量来自 ...

    sql学习 addm体验.sql

    sql学习 addm体验.sql

    awr addm ash 相关脚本功能分析

    $ORACLE_HOME/rdbms/admin目录下awr,addm,ash相关脚本功能分析

    DiscoEnhancements:此扩展为BMC发现(ADDM)UI提供了一些简单的增强

    BMC发现的DiscoEnhancements版本1.5traversys.io 此适度的扩展旨在为发现UI带来一些有用的增强支持BMC ADDM / Discovery的11+版本新的更新了RAW编辑器,以允许复制文本和快速编辑。 全局仪表板下拉列表。 CMDB同步和...

    Oracle的自动数据库诊断监控程序剖析

    有了 Oracle 数据库 10g,您就有了一位自动数据库诊断监控程序 (ADDM) 形式的助理 DBA,这种机器人式的 DBA 会不知疲倦地反复搜索数据库性能统计,以标识瓶颈、分析 SQL 语句、并据此提供多种改进性能的建议,本文对...

    使用shell定制addm脚本

    在10g开始推出的addm对于工作中的调优能够提供很多的帮助,而且建议也更加客观和全面。但是使用addmrpt.sql的时候还是有些慢,  可以使用如下的脚本来定制addm,能够根据快照生成指定的addm报告。  脚本的内容...

    Oracle+10G+最佳20位新特性:SQL+Advisor+和+ADDM_IT168文库

    Oracle+10G+最佳20位新特性:SQL+Advisor+和+ADDM

    Oracle 10g自动工作负载信息库剖析

    AWR 实质上是一个 Oracle 的内置工具,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。与 Statspack 不同,快照由一个称为 MMON 的新的后台进程及其从进程自动地每小时采集一次。...

    Oracle自带性能分析报告工具-awr介绍和分析报告.docx

    ADDM 工具可以帮助数据库管理员和开发者快速诊断和解决性能问题,例如查看集群中 Oracle 服务器的硬件配置、CPU 的瓶颈、存结构上的瓶颈、存参数 SGA、PGA 查看和分析、I/O 是否存在性能瓶颈、高负载的 SQL 语句等。...

    oracle 10g ocp 043解析(185题).

    Advisor 来确定其大小,自动数据库诊断监视器 (ADDM):执行自上而下的实例分析,确定问 题和潜在的原因,并提供修复问题的建议案。ADDM 可潜在地调用其他指导。SGA 指导(Memory Advisor):根据系统全局区(SGA) 中...

    oracle 学习资料

    CMI的自动数据库诊断监控程序(ADDM)特性提供了远多于其前身OEM Expert工具的功能。ADDM由内置在Oracle内核中的功能组成,用于帮助用户更为直观地调整Oracle实例

    官方资料:ORACLE数据库增值组件.pdf

    官方资料:ORACLE数据库增值组件 ORACLE数据库增值组件:•数据库真正应用集群(RAC)•有效管理海量数据(Partitioning) •数据库管理的DBA2.0时代(OEM) •业务数据的安全...自动数据库诊断监视器(ADDM);Oracle 性能调优

    Oracle11gR2数据库新特性

    自动内存管理 ADDM for RAC 数据卫士( Dataguard )技术革新 闪回技术 闪回存档 RAC和ASM RAC One Node ASM 数据安全 Database Vault Audit Vault 高级压缩 OLAP表压缩 LOB字段压缩 Expdp导出文件压缩 Rman备份压缩

    oracle 10gADDM 和 SQL Tuning Advisor

    oracle 10gADDM 和 SQL Tuning Advisor

Global site tag (gtag.js) - Google Analytics