㈠ oracle awr收集是否开启
双击桌面plsql运行程序,启动软件。因为生成报告需要dba权限,所以在登录的时候角色选择sysdba。在命令窗口中先创建快照。然后执行@直接回车,在弹出的窗口中找到数据库安装目录找到相应要生成的awr报考脚本。然后在弹出的窗口中填写导出报告的格式。然后接着在弹出的窗口中填写需要导出报告的日期范围,填写1代表当天的。然后在接下来的窗口中输入开始快照id与结束快照id。然后填写导出报告的名称,完成导出即可
㈡ oracle数据库的awr报告怎么做,需要安装oracle吗
AWR是需要在运行Oracle的环境上,获取数据库的相关信息。
通过运行 $ORACLE_HOME/rdbms/admin 目录中的 awrrpt.sql 脚本,AWR 的功能可以立即通过它从采集的统计数据和量度中生成的报表得到最好的说明。这个脚本从外观和感觉上类似于 Statspack,它显示所有的现有 AWR 快照并请求两个特定的快照作为时间间隔边界。它产生两种类型的输出:文本格式(类似于 Statspack 报表的文本格式但来自于 AWR 信息库)和默认的 HTML 格式(拥有到部分和子部分的所有超链接),从而提供了非常用户友好的报表。现在运行该脚本以查看报表,从而对 AWR 的功能有一个了解。
手动生成AWR快照号:
exec dbms_workload_repository.create_snapshot
用CRT软件,使用Oracle登录到服务器上:
sqlplus /nolog
conn system/system
@$ORACLE_HOME/rdbms/admin/awrrpt.sql
选择生成HTML格式。
然后会看到时间段和数字,选择两个数字及生产两个数字之间的AWR报告
㈢ 如何生成 AWR 报告
AWR报告的原理是基于oracle数据库的定时镜像功能。默认情况下,Oracle数据库后台进程会以一定间隔(一小时)收集系统当前状态镜像,并且保存在数据库中。生成AWR报告时,只需要指定进行分析的时间段(开始镜像编号和结束镜像编号),就可以生成该时间段的性能分析情况。AWR镜像保存在数据库中的时间为一个月左右。
㈣ oracle数据库生成某一时段的awr报告,以下哪个语句是正确的
方法如下:
1、运行,cmd。然后进入到 oracle的安装目录,这里以我的电脑为例: E:\app\Administrator\proct\11.2.0\dbhome_1\
2、再进入到下面的目录 RDBMS\ADMIN。确保E:\app\Administrator\proct\11.2.0\dbhome_1\RDBMS\ADMIN 下面有 awrrpt.sql这个文件
3、输入 sqlplus ,然后以管理员身份登录。
4、输入命名:@awrrpt
5、开始按提示操作,首先是选择要生成的awr报告的类型,可以选择text或html类型。这里我们以 html类型为例。输入 html,回画
6、选择要生成的报告的日期是在多少天以前记录,输入1,则表示要生成今天0点开始到现在之内的某个时间段的报告,输入2,则表示满意生成昨天0点开始到现在的某个时间段的报告。以此类推。缺省记录最近7天,这里输入法为示例。
7、输入天数后,界面会输出一个时间段的表格,每个时间点都对应一个snapId,间隔时间为oracle默认是1个小时,接下来,输入要生成报告的时间开始点应的snap id,这里我输入3318, 然后再输入结束点对应的snap id,这里输入 3320.
8、接着要求输入生成报告的名字,系统会自动生成一个输入的名字并会提示信息中显示出来。如果使用输入名称。则不用输入任何内容。直接回画即可。到此。系统就会自动生成一张awr的报告。
㈤ 如何看懂Oracle数据库AWR报告
如何看懂Oracle数据库AWR报告
先看数据库环境,版本,压力大小等
然后分析命中率,首先你要懂命中率什么意思然后定一个阀值,达到这个阀值有可能会有哪些问题,然后向下找出证据
最后也是最重要的是 等待事件,弄清楚每个等待事件的意义,然后向下找证据
事件下面基本可以看作证据,来证明你对命中率和等待事件的分析。
所以第一:你要会分析出问题。
第二:要知道AWR都收集哪些数据,对你的分析来佐证!
㈥ Oracle里的两个工具RDA和AWR,这两个东东我有些分不清。请你解释一下,谢谢你。
RDA是Remote Diagnostic Agent 的简称,是oracle用来收集、分析数据库的工具,运行该工具不会改变系统的任何参数,RDA收集的相关数据非常全面,可以简化我们日常监控、分析数据库的工作,Oracle Support也建议我们在反馈相关问题时,提供RDA收集的数据,这样可以为快速解决问题提供一个有力的保证。
AWR是Oracle Database 10g 提供的一个新工具:(AWR:Automatic Workload Repository)。Oracle 建议用户用这个取代 Statspack。AWR 实质上是一个 Oracle 的内置工具,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。
与 Statspack 不同,快照由一个称为 MMON 的新的后台进程及其从进程自动地每小时采集一次。为了节省空间,采集的数据在 7 天后自动清除。快照频率和保留时间都可以由用户修改。它产生两种类型的输出:文本格式(类似于 Statspack 报表的文本格式但来自于 AWR 信息库)和默认的 HTML 格式(拥有到部分和子部分的所有超链接),从而提供了非常用户友好的报表。
㈦ 如何生成远程数据库的awr报告
* 定义:awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,这就像一个人全面的体检报告。
如何分析:
* 在看awr报告的时候,我们并不需要知道所有性能指标的含义,就可以判断出问题的所在,这些性能指标其实代表了oracle内部实现,对oracle理解的越深,在看awr报告的时候,对数据库性能的判断也会越准确
* 在看性能指标的时候,心里先要明白,数据库出现性能问题,一般都在三个地方,io,内存,cpu,这三个又是息息相关的(ps:我们先假设这个三个地方都没有物理上的故障),当io负载增大时,肯定需要更多的内存来存放,同时也需要cpu花费更多的时间来过滤这些数据,相反,cpu时间花费多的话,有可能是解析sql语句,也可能是过滤太多的数据,到不一定是和io或内存有关系了
* 当我们把一条sql送到数据库去执行的时候,我们要知道,什么时候用到cpu,什么时候用到内存,什么时候用到io
1. cpu:解析sql语句,尝试多个执行计划,最后生成一个数据库认为是比较好的执行计划,不一定是最优的,因为关联表太多的时候,数据库并不会穷举所有的执行计划,这会消耗太多的时间,oracle怎么就知道这条数据时你要,另一个就不是你要的呢,这是需要cpu来过滤的
2. 内存:sql语句和执行计划都需要在内存保留一段时间,还有取到的数据,根据lru算法也会尽量在内存中保留,在执行sql语句过程中,各种表之间的连接,排序等操作也要占用内存
3. io:如果需要的数据在内存中没有,则需要到磁盘中去取,就会用到物理io了,还有表之间的连接数据太多,以及排序等操作内存放不下的时候,也需要用到临时表空间,也就用到物理io了
这里有一点说明的是,虽然oracle占用了8G的内存,但pga一般只占8G的20%,对于专用服务器模式,每次执行sql语句,表数据的运算等操作,都在pga中进行的,也就是说只能用1.6G左右的内存,如果多个用户都执行
多表关联,而且表数据又多,再加上关联不当的话,内存就成为瓶颈了,所有优化sql很重要的一点就是,减少逻辑读和物理读
如何生成awr报告:
* 1:登陆对应的数据库服务器
2:找到oracle磁盘空间(d:oracle\proct\10.2.0\db_1\RDBMS\Admin)
3:执行cmd-cd d:回车
4: cd d:oracle\proct\10.2.0\db_1\RDBMS\Admin 回车
5:sqlplus 用户名/密码@服务连接名(例:sqlplus carmot_esz_1/carmot@igrp)
6:执行@awrrpt.sql 回车
第一步输入类型: html
第二步输入天数: 天数自定义(如1,代表当天,如果2,代表今天和昨天。。。)
第三步输入开始值与结束值:(你可以看到上面列出的数据,snap值)
这个值输入开始,与结束
第四步输入导出表的名称:名称自定义 回车
第五步,由程序自动导完。
第六:到d:oracle\proct\10.2.0\db_1\RDBMS\Admin 目录下。找到刚才生成的文件。 XXXX.LST文件
具体分析过程:
* 在分析awr报告之前,首先要确定我们的系统是属于oltp,还是olap(数据库在安装的时候,选择的时候,会有一个选项,是选择oltp,还是olap)
对于不同的系统,性能指标的侧重点是不一样的,比如,library hit和buffer hit,在olap系统中几乎可以忽略这俩个性能指标,而在oltp系统中,这俩个指标就非常关键了
* 首先要看俩个时间
Elapsed: 240.00 (mins) 表明采样时间是240分钟,任何数据都要通过这个时间来衡量,离开了这个采样时间,任何数据都毫无疑义
DB Time: 92,537.95 (mins) 表明用户操作花费的时候,包括cpu时间喝等待时间,也许有人会觉得奇怪,为什么在采样的240分钟过程中,用户操作时间竟然有92537分钟呢,远远超过了
采样时间,原因是awr报告是一个数据的集合,比如在一分钟之内,一个用户等待了30秒,那么10个用户就等待了300秒,对于cpu的话,一个cpu处理了30秒,16个cpu就是4800秒,这些时间都是以累积的方式记录在awr报告中的。
再看sessions,可以看出连接数非常多
* 为了对数据库有个整体的认识,先看下面的性能指标
1. Buffer Nowait 说明在从内存取数据的时候,没有经历等待的比例,期望值是100%
2. Buffer Hit 说明从内存取数据的时候,buffer的命中率的比例,期望值是100%,但100%并不代表性能就好,因为这只是一个比例而已,举个例子,执行一条 sql语句,# 执行计划是需要取10000个数据块,结果内存中还真有这10000个数据块,那么比例是100%,表面上看是性能最高的,还有一个执行计划是需要500 个数据块,内存中有250个,另外250个需要在物理磁盘中取,
这种情况下,buffer hit是50%,结果呢,第二个执行计划性能才是最高的,所以说100%并不代表性能最好
3. Library Hit 说明sql在Shared Pool的命中率,期望值是100%
4. Execute to Parse 说明解析sql和执行sql之间的比例,越高越好,说明一次解析,到处执行,如果parse多,execute少的话,还会出现负数,因为计算公式是100*(1-parse/execute)
5. Parse CPU to Parse Elapsd 说明在解析sql语句过程中,cpu占整个的解析时间比例,,期望值是100%,说明没有产生等待,需要说明的是,即使有硬解析,只要cpu没有出现性能问题,也是可以容忍的,比较硬解析也有它的好处的
6. Redo NoWait 说明在产生日志的时候,没有产生等待,期望值是100%
7. Soft Parse 说明软解析的比例,期望值是100%,有一点要说明的是,不要单方面的追求软解析的高比例,而去绑定变量,要看性能的瓶颈在哪里
8. Latch Hit 说明latch的命中率,期望值是100%,latch类似锁,是一种内存锁,但只会产生等待,不会产生阻塞,和lock还是有区别的,latch是在并发的情况下产生的
9. Non-Parse CPU 说明非解析cpu的比例,越高越好,用100减去这个比例,可以看出解析sql所花费的cpu,100-99.30=0.7,说明花费在解析sql上的cpu很少
* 结合Time Model Statistics
可以看出,在整个sql执行时间(sql execute elapsed time)时间为5552019秒中,解析时间(parse time elapsed)用了36秒,硬解析时间(hard parse elapsed time)用了34秒虽然硬解析时间占了整个解析时间的绝大部分,但解析时间是花的很少的,所以可以判断出,sql的解析没有成为性能的瓶颈,进一步推测,sql在获取数据的过程中遇到了瓶 颈
* 继续看Top 5 Timed Events,从这里可以看出等待时间在前五位的是什么事件,基本上就可以判断出性能瓶颈在什么地方
1. buffer busy waits 说明在获取数据的过程中,频繁的产生等待事件,很有可能产生了热点块,也就是说,很多会话都去读取同样的数据块,这一事件等待了5627394次,总共等待了5322924秒,平均等待时间为946毫秒,而且频率也是最高的,有95.9%,等待类别是并发
这里有一个概念:oracle操作的最小单位是块,当一个会话要修改这个块中的一条记录,会读取整个块,如果另一个会话要修改的数据也正好在这个块中,虽然这俩个
2. 会话修改的记录不一样,也会产生等待direct path write temp和direct path read temp 说明用到了临时表空间,那我们再看一下Tablespace IO Stats
各项指标都是非常高的,再根据上面的In-memory Sort是100%,没有产生磁盘排序,也就在排序的时候没有用到临时表空间,进一步推测,多个session,每个session执行的sql语句中多表关联,产生了很多中间数据,pga内存中放不下,
用到了临时表空间,也有可能是用到了lob字段,在用lob字段的时候,也会用到临时表
* 继续看SQL Statistics
根据buffer busy waits等待次数,时间,频率都是最高的,我们重点看逻辑读,物理读,和执行时间最长的sql,把排在前几位的拿出来优化
优化的原则为降低物理读,逻辑读,sql语句中的子操作执行次数尽量少,在看oracle估计出来的执行计划是看不出子操作的执行次数的,要看运行时的执行计划
* 有兴趣的话还可以看一下Segment Statistics
列出了用到的索引和表的使用情况,从这里也能看出索引和表的使用频率
* 也可以看一下Load Profile
里面列出了每秒,每个事务所产生的日志,逻辑读和物理读等指标
㈧ 如何生成 AWR 报告
1.生成单实例 AWR 报告: @$ORACLE_HOME/rdbms/admin/awrrpt.sql 2.生成 Oracle RAC AWR 报告: @$ORACLE_HOME/rdbms/admin/awrgrpt.sql 3.生成 RAC 环境中特定数据库实例的 AWR 报告: @$ORACLE_HOME/rdbms/admin/awrrpti.sql 4.生成 Oracle RAC 环境中多个数据库实例的 AWR 报告的方法: @$ORACLE_HOME/rdbms/admin/awrgrpti.sql 5.生成 SQL 语句的 AWR 报告: @$ORACLE_HOME/rdbms/admin/awrsqrpt.sql 6.生成特定数据库实例上某个 SQL 语句的 AWR 报告: @$ORACLE_HOME/rdbms/admin/awrsqrpi.sql --生成 AWR 时段对比报告 7.生成单实例 AWR 时段对比报告 @$ORACLE_HOME/rdbms/admin/awrddrpt.sql 9.生成 Oracle RAC AWR 时段对比报告 @$ORACLE_HOME/rdbms/admin/awrgdrpt.sql 10.生成特定数据库实例的 AWR 时段对比报告 11.生成 Oracle RAC 环境下特定(多个)数据库实例的 AWR 时段对比报告
㈨ 如何禁用Oracle AWR自动采样功能
在Oracle 10g中,AWR采样缺省部署于数据库中,那么如何禁用这个功能呢?
在Metalink Note: 436386.1中,Oracle提供了一个增强脚本,称为: dbmsnoawr.plb 通过这个脚本可以启用和禁用AWR采样功能,从原则上,为未购买该部分功能授权的用户提供了一个退出途径。
在Oracle Database 11g中,可以通过参数CONTROL_MANAGEMENT_PACK_ACCESS 控制组件包的访问。
该脚本的内容如下:
Rem Rem dbmsnoawr.sql Rem Rem Copyright (c) 2006, Oracle. All rights reserved. Rem Rem NAME Rem dbmsnoawr.sql - Declaration of the DBMS_AWR package Rem Rem DESCRIPTION Rem Utilities for disabling and getting status of AWR Rem Rem NOTES Rem Rem MODIFIED (MM/DD/YY) Rem gwood 04/13/07 - created Rem create or replace package dbms_awr as -- PACKAGE dbms_awr -- This package allows users to disable AWR functionality in a Oracle 10g+ database. -- The use of this package is not resticted by licencing of the Diagnostic Pack. -- Additionally this package contains two functions that can be used to determine -- if AWR is currently enabled. -- -- PROCEDURE dbms_awr.disable_awr -- PURPOSE: turns off collections into Automatic Workload Repository -- PARAMETERS: none procere disable_awr; -- PROCEDURE dbms_awr.enable_awr -- PURPOSE: turns on collections into Automatic Workload Repository. The capture interval -- is set to the default of 60 minutes. -- PARAMETERS: none procere enable_awr; -- FUNCTION dbms_awr.awr_enabled -- PURPOSE: Returns TRUE if Automatic Workload Repository is performing periodic capture. -- Returns FALSE if Automatic Workload Repository periodic capture is disabled. -- PARAMETERS: none function awr_enabled return boolean; -- FUNCTION dbms_awr.awr_status -- PURPOSE: Returns 'ENABLED' if Automatic Workload Repository is performing periodic capture. -- Returns 'DISABLED' if Automatic Workload Repository periodic capture is disabled. -- PARAMETERS: none function awr_status return varchar2; end dbms_awr; / create or replace package body dbms_awr wrapped a000000 b2 abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd abcd b 27b 1de XeDco+ GGfYVnyl/+joOTKYe 4TyFpXVqzVWS+/ePGAQzUKwvS 3L8/hKgjdK9Fgw8bb7v1HTq22OJlAv+R/DYCSK57rPmAkyx/XLuXcPo3hcYs8fvUUAO33szW /0tk3BW0W/GVo3XfdSzUpGN5aKa1xF2Yh trcMV3KuK/FfIpy0bNDxSQ3LFuOsB8i5xzhj/ u+Z6US/LtRISXt2I8zFq6/aDSuOXTor9KQ1jYA== /
该脚本包含两个过程和两个函数,通过disable_awr / enable_awr 就可以禁用或者启用AWR采样功能:
SQL> @D:dbmsnoawr.plb
Package created.
Package body created.
SQL> desc dbms_awr
FUNCTION AWR_ENABLED RETURNS BOOLEAN
FUNCTION AWR_STATUS RETURNS VARCHAR2
PROCEDURE DISABLE_AWR
PROCEDURE ENABLE_AWR
SQL> exec dbms_awr.disable_awr
PL/SQL procere successfully completed.
SQL> select dbms_awr.awr_status from al;
AWR_STATUS
------------------------------------------------------- DISABLED
SQL> exec dbms_awr.enable_awr
PL/SQL procere successfully completed.
SQL> select dbms_awr.awr_status from al;
AWR_STATUS
------------------------------------------------------- ENABLED
这个脚本本质上非常简单,就是通过将快照采样价格设置为0和60来控制禁用和启用的。
PROCEDURE DISABLE_AWR
IS
BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(INTERVAL => 0);
END;
PROCEDURE ENABLE_AWR IS
BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(INTERVAL => 60);
END;
记录供参考。
㈩ 数据库:Oracle 11g AWR 系列五:如何生成 AWR 报告
1.生成单实例 AWR 报告: @$ORACLE_HOME/rdbms/admin/awrrpt.sql 2.生成 Oracle RAC AWR 报告: @$ORACLE_HOME/rdbms/admin/awrgrpt.sql 3.生成 RAC 环境中特定数据库实例的 AWR 报告: @$ORACLE_HOME/rdbms/admin/awrrpti.sql 4.生成 Oracle RAC 环境中多个数据库实例的 AWR 报告的方法: @$ORACLE_HOME/rdbms/admin/awrgrpti.sql 5.生成 SQL 语句的 AWR 报告: @$ORACLE_HOME/rdbms/admin/awrsqrpt.sql 6.生成特定数据库实例上某个 SQL 语句的 AWR 报告: @$ORACLE_HOME/rdbms/admin/awrsqrpi.sql --生成 AWR 时段对比报告 7.生成单实例 AWR 时段对比报告 @$ORACLE_HOME/rdbms/admin/awrddrpt.sql 9.生成 Oracle RAC AWR 时段对比报告 @$ORACLE_HOME/rdbms/admin/awrgdrpt.sql 10.生成特定数据库实例的 AWR 时段对比报告 11.生成 Oracle RAC 环境下特定(多个)数据库实例的 AWR 时段对比报告