⑴ oracle数据库awr报告何时更新
你还是系统的看一下关于AWR报告的资料吧,系统默认是一小时自己创建一次快照,但是根据快照来取某个时间段的报告,则需要DBA介入。通过你提问问题的方式,建议你系统查找awr的资料,不然即使给你提供了包,你也不会用。
⑵ AWR报告W/A MB processed较大是什么问题
AWR(Automatic Workload Repository)报告是我们进行日常数据库性能评定、问题sql发现的重要手段。熟练掌握AWR报告,是做好开发、运维DBA工作的重要基本功。
AWR报告的原理是基于Oracle数据库的定时镜像功能。默认情况下,Oracle数据库后台进程会以一定间隔(一小时)收集系统当前状态镜像,并且保存在数据库中。生成AWR报告时,只需要指定进行分析的时间段(开始镜像编号和结束镜像编号),就可以生成该时间段的性能分析情况。AWR镜像保存在数据库中的时间为一个月左右。
目前Oracle10g之后,AWR报告取代了原先的Statspack报告成为一个主流性能分析报告。通常可以从OEM(Oracle Enterprise Manager Console)平台上生成查看AWR报告。在OEM中,使用图形化方法更加容易。本篇中介绍使用手工脚本方式生成AWR的方法,脱离OEM的限制。
1、 运行脚本
首先,准备一个目录作为AWR生成报告的路径。
[oracle@bspdev /]$ ls -l | grep test
drwxr-xr-x. 2 oracle oinstall 4096 Jun 21 13:01 test
[oracle@bspdev /]$ cd test
启动sqlplus等开发工具,调用生成脚本。程序脚本一般保存在$ORACLE_HOME下的rdbms/admin中,名称为awrrpt.sql。
[oracle@bspdev test]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Proction on Tue Jun 21 13:04:44 2011
Copyright (c) 1982, 2009, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected.
--调用脚本,生成文件
SQL> @?/rdbms/admin/awrrpt.sql
之后进入报告参数输入模块。
2、输入报告参数
之后,要持续输入一系列的报告参数。
ü 输入生成报告类型,目前AWR提供txt和html两种格式。需要确认生成格式,默认是html格式。
Current Instance
~~~~~~~~~~~~~~~~
DB Id DB Name Inst Num Instance
----------- ------------ -------- ------------
4143510747 ORA11G 1 ora11g
Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
Would you like an HTML report, or a plain text report?
Enter 'html' for an HTML report, or 'text' for plain text
Defaults to 'html'
ü 报告涉及天数范围
启动报告后,会显示生成实例的名称等基本信息。
默认情况下,AWR会将镜像信息保留一个月。手工生成的时候,需要确认生成AWR报告的时间范围。一般情况下,特别是生产环境下,我们通常设置1-7天也就够用了。
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
DB Id Inst Num DB Name Instance Host
------------ -------- ------------ ------------ ------------
* 4143510747 1 ORA11G ora11g bspdev.local
domain
Using 4143510747 for database Id
Using 1 for instance number
Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed. Pressing <return> without
specifying a number lists all completed snapshots.
Enter value for num_days: 3
ü 输入开始和结束的snapshot编号
输入天数信息后,AWR生成代码会将天数范围内的snapshot镜像点列出,供输入选择。
Listing the last 3 days of Completed Snapshots
Snap
Instance DB Name Snap Id Snap Started Level
------------ ------------ --------- ------------------ -----
ora11g ORA11G 1789 20 Jun 2011 13:01 1
1790 20 Jun 2011 14:00 1
1791 20 Jun 2011 15:00 1
1792 20 Jun 2011 16:00 1
(篇幅原因,有省略……)
1811 21 Jun 2011 11:00 1
1812 21 Jun 2011 12:00 1
1813 21 Jun 2011 13:00 1
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
之后,我们需要根据列出的时间范围,输入开始和结束的snap编号。
Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 1796
Begin Snapshot Id specified: 1796
Enter value for end_snap: 1813
ü 确定报告名称
最后就是确定生成报告的名称。一般采用默认的名称就可以了。
Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is awrrpt_1_1796_1813.html. To use this name,
press <return> to continue, otherwise enter an alternative.
Enter value for report_name:
之后输出内容很多,此处不加以累述。最后提示报告生成成功。
Report written to awrrpt_1_1796_1813.html
于是,指定目录上可以看到相应的报告文件。
[oracle@bspdev test]$ ls -l
total 508
-rw-r--r--. 1 oracle oinstall 515262 Jun 21 13:10 awrrpt_1_1796_1813.html
3、说明两个问题
首先,此处生成的html格式的报表。如果要求生成txt格式,就在生成过程中选择text格式报表。
Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
Would you like an HTML report, or a plain text report?
Enter 'html' for an HTML report, or 'text' for plain text
Defaults to 'html'
Enter value for report_type: text
Type Specified: text
End of Report
Report written to awrrpt_1_1789_1800.txt
[oracle@bspdev test]$ ls -l
total 692
-rw-r--r--. 1 oracle oinstall 180601 Jun 21 13:27 awrrpt_1_1789_1800.txt
-rw-r--r--. 1 oracle oinstall 515262 Jun 21 13:10 awrrpt_1_1796_1813.html
第二个就是调用脚本的方式问题。调用时使用的sqlplus客户端可以在Oracle服务器本机上(远程登录),也可以在客户端机器本机上。笔者建议是在客户端本机上进行生成,这样可以避免报告文件来回拷贝的工作。但是最好要保证客户端版本与服务器版本相匹配。
4、结论
手工生成AWR报告,可以避免受到OEM的限制约束,而且灵活度高。本篇记录,权当备忘。
⑶ 如何生成awr报告
1.生成单实例 AWR 报告:@$ORACLE_HOME/rdbms/admin/awrrpt.sql2.生成 Oracle RAC AWR 报告:@$ORACLE_HOME/rdbms/admin/awrgrpt.sql3.生成 RAC 环境中特定数据库实例的 AWR 报告:@$ORACLE_HOME/rdbms/admin/awrrpti.sql4.生成 Oracle RAC 环境中多个数据库实例的 AWR 报告的方法:@$ORACLE_HOME/rdbms/admin/awrgrpti.sql5.生成 SQL 语句的 AWR 报告:@$ORACLE_HOME/rdbms/admin/awrsqrpt.sql6.生成特定数据库实例上某个 SQL 语句的 AWR 报告:@$ORACLE_HOME/rdbms/admin/awrsqrpi.sql--生成 AWR 时段对比报告7.生成单实例 AWR 时段对比报告@$ORACLE_HOME/rdbms/admin/awrddrpt.sql8.生成 Oracle RAC AWR 时段对比报告@$ORACLE_HOME/rdbms/admin/awrgdrpt.sql9.生成特定数据库实例的 AWR 时段对比报告@$ORACLE_HOME/rdbms/admin/awrddrpi.sql10.生成 Oracle RAC 环境下特定(多个)数据库实例的 AWR 时段对比报告@$ORACLE_HOME/rdbms/admin/awrgdrpi.sql来源: 51cto 作者:Oracle小混子
⑷ 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报告
⑸ 如何看懂Oracle数据库AWR报告
如何看懂Oracle数据库AWR报告
先看数据库环境,版本,压力大小等
然后分析命中率,首先你要懂命中率什么意思然后定一个阀值,达到这个阀值有可能会有哪些问题,然后向下找出证据
最后也是最重要的是 等待事件,弄清楚每个等待事件的意义,然后向下找证据
事件下面基本可以看作证据,来证明你对命中率和等待事件的分析。
所以第一:你要会分析出问题。
第二:要知道AWR都收集哪些数据,对你的分析来佐证!
⑹ 数据库IO高,如何通过AWR报告进行定位
Redo size 单位bytes,redo size可以用来估量update/insert/delete的频率,大的redo size往往对lgwr写日志,和arch归档造成I/O压力,Per Transaction可以用来分辨是大量小事务,还是少量大事务如
上例每秒redo约420kb,每个事务4kb,符合OLTP特征;
Logical Read单位次数*块数,相当于 "人*次",如上例30434 * db_block_size=243M/S,逻辑读耗CPU,主频和CPU核数都很重要,逻辑读高则DB CPU往往高。
Block changes 单位次数*块数,描绘数据变化频率,上例260* 8k = 2MB/s;
Physical Read 单位次数*块数,描绘数据变化频率Physical Read 单位次数*块数,如上例 1827*8k = 14.5MB/s, 物理读消耗IO读,体现在IOPS和吞吐量等不同纬度上;但减少物理读可能意味着消耗更多CPU。好的存储 每秒物理读能力达到几GB;
Physical writes单位次数*块数,主要是DBWR写datafile,也有direct path write dbwr长期写出慢会导致定期log file switch(checkpoint no complete) 检查点无法完成的前台等待。
⑺ 生成oracle数据库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 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 时段对比报告
⑼ 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的报告。
⑽ 如何生成远程数据库的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
里面列出了每秒,每个事务所产生的日志,逻辑读和物理读等指标