`

自动诊断工具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自动诊断监视工具详解 #### 一、ADDM概述与背景 ADDM,全称Automatic Database Diagnostic Monitor,是Oracle数据库系统中内置的一种自动诊断引擎,旨在帮助数据库管理员(DBA)更有效地识别和解决...

    Oracle ADDM报告指标分析

    ADDM(Automatic Database Diagnostic Monitor,自动数据库诊断管理)是Oracle 10g引入的一种强大的数据库自我诊断工具。它通过对AWR(Automatic Workload Repository,自动工作负载资料库)收集的数据进行分析,...

    Oracle常用分析诊断工具.pdf

    然后逐步深入到ASH和ADDM,了解会话行为和自动诊断过程。随着经验的积累,可以更加熟练地运用这些工具,提高数据库的运维效率和性能优化能力。同时,不断学习Oracle官方文档和其他专业资料,将有助于深入理解和掌握...

    Oracle10g数据库自动诊断监视工具

    Oracle10g数据库自动诊断监视工具(ADDM)是Oracle数据库10g版本引入的一个重要特性,用于自动化数据库性能问题的诊断和优化建议。ADDM与SQL优化建议工具(SQL Tuning Advisor, STA)共同工作,极大地减轻了DBA的...

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

    AWR(自动工作负载仓库)能够收集并报告数据库的性能数据,而ADDM(自动数据库诊断监视器)则基于AWR的数据提供深入的诊断建议。以下是收集AWR与ADDM报告的方法以及在不同操作系统下命令的变体。 1. 收集AWR与ADDM...

    数据库自动性能诊断.rar

    数据库自动性能诊断是数据库管理中的一个重要领域,它涉及到如何通过自动化工具...通过深入理解和应用相关的理论知识,结合实际的监控和诊断工具,我们可以有效地提升数据库系统的性能,为企业的数据处理提供强大支持。

    自动性能诊断技术.pdf

    这项技术的核心组件包括自动工作负载信息库(Automatic Workload Repository, AWR)、自动数据库诊断监控程序(Automatic Database Diagnostic Monitor, ADDM)以及Oracle企业管理器(Enterprise Manager, EM)。...

    Oracle_数据库_10g:自动性能诊断.pdf

    - **自我诊断引擎**:集成到核心数据库内核中的自我诊断引擎,以及自动数据库诊断监视器(ADDM),可以自动识别和报告潜在的性能问题。 - **自动工作负载捕获和历史性能分析**:自动捕获并存储工作负载数据,如系统...

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

    6. ADDM:自动数据库诊断监视器是一种诊断工具,用于监控数据库的性能问题。ADDM可以在数据库出现性能问题时自动运行,分析相关数据,并提供详细的诊断报告,包括问题的根本原因及推荐的解决方案。ADDM的报告可以...

    最新一代数据库技术的极限数据库管理.pdf

    Oracle引入了自动性能诊断工具ADDM(Automatic Diagnostic Repository Manager),它持续革新数据库性能管理。ADDM能自动检测和诊断性能问题,包括实时ADDM,每3秒进行一次轻量级检查,预测性能问题,并在问题影响...

    oracle_admm

    Oracle ADMM,全称为Automatic Database Diagnostic Monitor,是Oracle数据库10g及后续版本中的一个核心性能诊断工具。ADDM利用Automatic Workload Repository (AWR)收集的性能数据,定期进行数据库性能分析,寻找并...

    oracle性能诊断

    - **简介**:ADDM是Oracle提供的一个高级诊断工具,它基于AWR收集的数据进行深层次分析,提供具体的性能优化建议。 - **应用场景**:当遇到复杂的性能问题时,ADDM能够帮助快速定位问题所在,并给出针对性的解决方案...

    oracle优化工具

    - **ADDM(Automatic Database Diagnostic Monitor)**:这是Oracle 10g引入的一项新技术,它是一种自动化性能诊断工具,能够根据收集到的数据自动生成诊断报告。与Statspack相比,ADDM更加智能,它可以自动识别性能...

    oracle 学习资料

    在Oracle的学习过程中,理解并掌握自动数据库诊断监控程序(ADDM)是至关重要的一步。ADDM是Oracle企业管理器(OEM)的一个关键组件,它在Oracle 10g版本中首次引入,以替代旧有的OEM Expert工具,提供了更为全面和...

    精彩讲解:数据库性能诊断的七种武器

    6. **飞燕银针 - 自动诊断**:ADDM可以自动分析性能问题并提出改进建议。 7. **金丝软甲 - Enterprise Manager**:Oracle的图形化管理工具,提供全面的监控、诊断和优化功能。 了解并熟练运用这些“武器”,DBA们...

    Oracle 数据库 11g:可管理性概述

    Oracle Database 11g使用自动诊断数据仓库(ADR)来收集和存储诊断数据。ADR为管理员提供了一个集中化的存储,方便他们进行故障诊断和性能分析。 八、事件打包服务(IPS) 事件打包服务(IPS)允许管理员将相关的...

    数据库性能诊断的七种武器.ppt

    本文将深入探讨在数据库管理中所面临的挑战、调优工具的发展历程,以及核心的诊断工具——“七种武器”。 首先,性能优化是数据库管理中的一大难题。在日益复杂的业务需求和庞大的系统规模下,DBA 需要处理多种问题...

Global site tag (gtag.js) - Google Analytics