`
zhangpeng012310
  • 浏览: 61139 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Oracle AWR ASH

阅读更多


AWR基础知识
1、自动工作负荷仓库
Oracle收集了大量与性能和动作相关的统计信息。这些信息在内存中累加,并且有规律地写入磁盘(也就是写入构成AWR的表)。最终,这些信息会过期并被重写。
1.1、收集统计量
统计量收集的级别由实例参数STATISTICS_LEVEL控制。这个参数可能被设置为BASIC、TYPICAL或ALL。(默认TYPICAL)



•TYPICAL:允许收集正常调整所需的所有统计量,同时不会收集对性能有不良影响的统计量集合。

•BASIC:事实上禁止收集统计量,并且不存在可评估的性能优势。

•ALL:收集与SQL执行相关的、极其详细的统计量。进行高级的SQL语句调整,就可以使用ALL级别,不过在收集统计量时会导致性能稍有退化。

统计量在内存中(SGA内的数据结构中)累积。统计量只反映实例所作的动作,所以并不影响实例的性能。统计量被定时(默认每小时一次)写入磁盘,也就是写入AWR。这被称为一次“快照(snapshot)”。统计量被写入磁盘的操作由后台进程(可管理的监视器或MMON进程)完成。
MMON进程直接访问构成SGA的内存结构,从而也可以访问这些内存结构中的统计量。这个进程可以在不需要通过会话的情况下从SGA内抽取数据。此时唯一的系统开销是将数据实际写入AWR。在默认情况下,这个操作每小时执行一次,因此应当不会对运行时性能产生明显的影响。
1.2、AWR的大小与位置
AWR是位于SYSAUX表空间内的一组表。这些表不能被重新定位,并且存在于SYSMAN模式中。虽然我们可以作为用户SYSMAN登录数据库,但是无法查看AWR。访问AWR最简单的方式是Database Control。
快照默认在AWR中保存7天,这个时间周期是可配置的。作为一条用于分配存储空间大小的大致原则,如果每小时进行一次快照收集并且快照保留时间为7天,那么AWR在SYSAUX表空间内可能需要200~300的空间。不过,这个数据总是会变化,根据会话数会被大幅提高。
1.3、快照的保存
快照会在特定时间周期后被清除,在默认情况下,这个时间周期为7天。为了进行长期的调整,就必须在更长的时间周期内保存快照。在默认情况下,AWR快照保存7天,ADDM报告保存30天。
2、诊断与调整顾问程序
7个顾问程序:



•Automatic Database Diagnostic Monitor(数据库自动诊断监视程序,简写为ADDM)

•SQL Tuning Advisor(SQL调整顾问程序)

•SQL Access Advisor(SQL访问顾问程序)

•Memory Advisor(内存顾问程序)

•Mean Time to Recover(MTTR)Advisor(平均恢复时间顾问程序)

•Segment Advisor(段顾问程序)

•Undo Advisor(撤销顾问程序)

2.1、ADDM顾问程序
只要生成快照,MMON进程就会自动运行ADDM。
查看报告
[img=500,404 alt=em1 src=]http://www.itpub.net/[/img]
[img=500,266 alt=em2 src=]http://www.itpub.net/[/img] 
这里会显示所有顾问程序的最近运行情况。
2.2、SQL Tuning Advisor与SQL Access Advisor
SQL Tuning Advisor将一条或多条SQL语句作为输入,并且研究这些语句的结构与执行方式。这些SQL语句被称为SQL Tuning Set,这个顾问程序涉及下列内容:



•收集所涉及对象的优化器统计量

•使用与语句执行相关的统计量生成SQL配置文件

•修改代码,从而更有效地使用SQL构造

•重写代码,从而去除可能的设计错误

SQL Access Advisor也将SQL Tuning Set作为其输入。这个顾问程序研究通过添加索引或物化视图是否能够改善SQL执行性能,此外还研究某些索引与物化视图实际上是否会妨碍改善性能以及是否应当被删除。
2.3、Memory Advisor
内存顾问程序通常能实现:如果为SGA结构或PGA分配更多的内存,那么性能会得到进一步改善,不过效益会递减。如果可能因为交换系统而需要减少内存的使用,那么就能够节约内存。但是,如果节省的内存过多,那么性能将会退化。
2.4、 MTTR Advisor
某个实例在崩溃之后必须被恢复,因此可能耗费相当长的时间,这个时间就是平均恢复时间(Mean Time to Recover,简写为MTTR)。
以秒为单位进行设置的实例参数FAST_START_RECOVERY_TARGET能够控制MTTR。这个参数设置的时间越短,在实例崩溃后就越能更快地打开数据库,不过联机性能会更差。
2.5、Segment Advisor
Segment Advisor会查看段,并且能够确定为未被使用的段所分配的空间大小是否足够用于执行SHRINK SPACE操作。
2.6、Undo Advisor
所有DML命令都会生成撤销数据。撤销数据的保留时间至少是事务的时间长度,通常需要事务结束后相当长的时间内仍然存储撤销数据。
决定撤销表空间大小的算法基于下列方面:每秒钟生成撤销的速度,存储满足查询运行时间最长需求的数据的秒数,并且可能使用闪回查询。
3、服务器生成的告警
3.1、告警系统体系结构
10G版本的Oracle数据库能够监视自身。MMON后台进程是一个易管理的监视器,该进程可以观察实例与数据库。如果某种指标过于偏离期望值,那么MMON进程就会生成一个告警。MMON进程生成的所有告警都被置入SYS模式中的队列ALERT_QUE。
告警有两种形式:阈值(有状态的)或无阈值(无状态的)。配置阈值告警时,必须设置某些要监视的指示值(例如表空间中所用空间的百分比)。当越过阈值时,就会引发一个告警,并且这个告警在采用使指标值低于触发值的某些动作(例如为表空间添加更多的空间)之前会一直持续。无阈值告警由某个发生后并不持久的事件触发,例如一个“ORA-1555:snapshot too old”错误。
3.2、设置阈值
某些告警被预配置了阈值,其他告警则必须在启用之前进行设置。例如,对于“Tablespace percent full”告警来说,默认是在85%的表空间被填满时发送一个警告告警以及在97%的表空间被填满时发送一个临界告警。但是,“Average File Read Time”告警没有默认的配置。
3.3、使用基线
在不比较指标值与手动选定值的情况下,允许Oracle在性能上可接受的性能产生偏差时引发告警,这样可以不必计算出准确的阈值。为了完成上述操作,需要创建一个“基线”。



ASH 基础知识
作者:eygle

性能调整和问题诊断是任何数据库管理人员必须面临的最大挑战和必须完成的重要管理任务。基于管理上的简化和易用性的努力,Oracle推出了Autometic Database Diagnostic Monitor (ADDM) ,通过ADDM,Oracle试图使数据库的维护工作变得更简单更容易。

AWR是新的管理体系结构的中心元素,它为了发现问题和自我调整,为oracle内部服务组件提供了采集,处理,维护和访问性能统计数据.
AWR每60分钟就进行一次快照,所以最近的一次快照可能在一小时之前,这样AWR就没有足够的信息来进行当前的分析.典型的情况下,当前的分析需要最近的五到十分钟的详细信息.ASH(Active Session History)因此被引入用以保留最近的会话活动的历史信息.

因为记录会话的活动是非常昂贵的,ASH每秒采样V$session,记录会话等待的事件.不活动的会话不会被采样.这个采样工具是非常有效的,因为它直接访问oracle10g内部结构.
ASH设计为在内存中的滚动的,在需要的时候早期的信息是会被覆盖的.ASH可以通过v$active_session_history视图来访问.这个实例每个样本的每个活动会话有一行.
由于数据量巨大,把所有的ASH数据写到磁盘上是不可接受的。一般是在写到磁盘的时候过滤这个数据。这是通过MMON和MMNL自动完成的。
SQL> select * from v$sgastat where name like '%ASH%';POOL         NAME                            BYTES------------ -------------------------- ----------shared pool  ASH buffers                   6291456

注意,ASH buffers的大小按照以下算法分配:
Min(shared_pool_size*5%,2M*cpu_count)
SQL> select name,value,display_value from v$parameter  2  where name in ('shared_pool_size','cpu_count');NAME                           VALUE                DISPLAY_VALUE------------------------------ -------------------- --------------------cpu_count                      4                    4shared_pool_size               125829120            120M

根据这个算法,系统分配的ASH Buffers为6M. 这些历史信息记录在数据库中,可以通过v$session_wait_history进行查询:
SQL> desc v$session_wait_historyName       Type         Nullable Default Comments ---------- ------------ -------- ------- -------- SID        NUMBER       Y                         SEQ#       NUMBER       Y                         EVENT#     NUMBER       Y                         EVENT      VARCHAR2(64) Y                         P1TEXT     VARCHAR2(64) Y                         P1         NUMBER       Y                         P2TEXT     VARCHAR2(64) Y                         P2         NUMBER       Y                         P3TEXT     VARCHAR2(64) Y                         P3         NUMBER       Y                         WAIT_TIME  NUMBER       Y                         WAIT_COUNT NUMBER       Y   

显然ASH/ADDM是Oracle在管理上的又一巨大提高




生成AWR ASH报告

@?rdbms/admin/awrrpt.sql是以前statspack的扩展,收集信息更详细,查看长期的数据库情况,相对ash而言。

@?rdbms/admin/ashrpt.sql查看当前的数据库情况,因为ash是每秒从v$session进行进行取样,awr收集的数据要比ash多得多。
一般收集数据库信息的话要结合awr和ash。
@?rdbms/admin/addmrpt .sql相当于是驻留在oracle里的一位专家,是一个自我诊断引擎。产生symptom,problem,infomation,提供解决问题的建议,并自动修复一些具体的故障。 @?rdbms/admin/awrinfo.sql显示的都是awr的相关信息,包括快照信息、sysaux空间使用、awr组件、ash等信息。 
分享到:
评论

相关推荐

    学用ORACLE AWR和ASH特性

    学用ORACLE AWR 和 ASH 特性

    Oracle AWR与ASH性能报告深入解析

    Oracle AWR与ASH性能报告深入解析 Oracle AWR与ASH性能报告深入解析 Oracle AWR与ASH性能报告深入解析 Oracle AWR与ASH性能报告深入解析

    Oracle 导出某时间段AWR与ASH性能报告操作日志

    Oracle数据库,导出某时间段AWR与ASH性能报告操作日志,用于对oracle数据库进行性能分析。

    oracle报表生成器,生成AWR,ASH等报告

    oracle报表生成器,自动生成AWR,ASH等报告

    awr_ash 详解

    详细说明awr和ash的使用,oracle调优时用。

    Oracle AWR报告深入分析

    此文档目的帮助更加深入理解 AWR 报表,为 oracle 从业者与技术爱好做性能分析与性 能监控提供参考资料。 文档编写依据: 文档基于 oracle 包源码分析得出。 dbms_swrf_report_internal,test_dbms_workload_...

    awr addm ash 相关脚本功能分析

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

    oracle sqlserver 监控

    从会话状态和等待事件的角度,了解数据库的运行情况,供DBA和... 等待事件是基于“事实”和“数据”的,而非“推测”,结合Oracle AWR、ASH(Sqlserver DMV、Windows计数器),我们可以把性能分析变为可能的方法论。

    Oracle DBA性能优化实践

    Hint.pdf Oracle中rowid与rownum的使用.pdf Oracle优化 之 索引.pdf Oracle优化器.pdf STATSPACK详解.pdf 学用ORACLE_AWR和ASH特性.pdf 执行计划.pdf

    Oracle常用技术资料合集.zip

    一、Oracle+Database+11g+DBA手册(中文) 二、《Oracle数据库SQL执行计划的取得和解析》PPT(附SQL文件) 三、Oracle 常用脚本 2pc_clean.txt ash_sql_line_id.txt ash_top_sql_event.txt ash_used awr_db_time.txt...

    Oracle入门教程.三思笔记.一步一步学Oracle

    2012.9.Oracle三思笔记合集,供大家下载学习。压缩包里共32个PDF或DOC...[三思笔记]学用ORACLE AWR和ASH特性.pdf [三思笔记]一步一步学DataGuard.pdf [三思笔记]一步一步学RMAN.pdf [三思笔记]一步一步学Streams.pdf

    awr 报告详解

    AWR每小时对v$active_session_history视图(内存中的ASH采集信息,理论为1小时)进行采样一次,并将信息保存到磁盘中,并且保留7天,7天后旧的记录才会被覆盖。这些采样信息被保存在wrh$_active_session_history视图...

    2021 云和恩墨大讲堂PPT汇总(50份).zip

    Oracle 基于AWR ASH的性能分析 Oracle DataGuard备份恢复最佳实践-姚远 Oracle Nologging全面总结 Oracle RAC 集群安装部署 Oracle RMAN 单实例异机迁移恢复(版本:11GR2) Oracle存储过程性能分析案例 Oracle技术...

    ORACLE性能优化工具整理

    关于Oracle性能优化的相关工具的介绍,如AWR,ASH,ADDM等的详细原理介绍及实践使用,非常有用

    Oracle DBA突击帮你赢得一份DBA职位(完全高清版)1

    第5章至第9章是中级篇,专门讨论性能调整,包括性能优化原理、Oracle性能调整发展历程、AWR、ASH、ADDM、Auto SQL Tunning等最新的助手工具,并通过大量实例展示技术的综合应用。第10章至第13章是高级篇,主要面向...

    让Oracle跑得更快 Oracle 10g性能分析与优化思路.part2.rar

    13.1.1 生成awr性能报告 337 13.1.2 awr性能报告分析 342 13.2 statspack性能报告 386 13.2.1 statspack的安装 386 13.2.2 statspack性能采集 391 13.3 ash性能报告 394 13.3.1 生成ash性能报告 395 13.3.2 ash性能...

    深入解析Oracle.DBA入门进阶与诊断案例

    9.3.2 ASH新特性 419 9.3.3 自动负载信息库:AWR的引入 425 9.3.4 自动数据库诊断监控:ADDM的引入 436 9.4 顶级等待事件 436 9.5 重要等待事件 439 9.5.1 db file sequential read(数据文件顺序读取) ...

    AWR数据库优化案例分享(OLAP)

     想起来刚接触Oracle的时候别人问我会不会优化,我说会呀,在高峰时段跑个AWR,然后分析TOP 10 SQL,现在想来,很是汗颜!  经过一段时间的学习,又有了一些不成熟的想法,写了下来,也许再过两年来看得时候,会...

    让Oracle跑得更快 Oracle 10g性能分析与优化思路.part1.rar

    13.1.1 生成awr性能报告 337 13.1.2 awr性能报告分析 342 13.2 statspack性能报告 386 13.2.1 statspack的安装 386 13.2.2 statspack性能采集 391 13.3 ash性能报告 394 13.3.1 生成ash性能报告 395 13.3.2 ash性能...

Global site tag (gtag.js) - Google Analytics