ORACLE AWR简介(经典)包括常用语句.doc_第1页
ORACLE AWR简介(经典)包括常用语句.doc_第2页
ORACLE AWR简介(经典)包括常用语句.doc_第3页
ORACLE AWR简介(经典)包括常用语句.doc_第4页
ORACLE AWR简介(经典)包括常用语句.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ORACLE AWR简介 Automatic Workload Repository(AWR)收集、处理和维护性能系统信息,为性能调优的问题检测提供了有力的帮助。AWR收集和处理的统计信息包括:1. 段的统计信息;2. 时间模型统计信息(在v$sys_time_model和v$sess_time_model视图中查看);3. 一些在v$sysstat和v$sesstat视图中收集的系统和会话的统计信息;4. 系统中负载最高的一些sql语句,分别按执行时间、cpu时间、执行次数等标准来统计5. ASH统计信息,包含近期会话活动的历史记录若系统参数STATISTICS_LEVEL设置为TYPICAL或ALL将默认启用AWR来采集数据库统计信息。这个参数的默认值是TYPICAL,若将其设置为BASIC,将禁用很多oracle数据库功能,包括 AWR,但你仍可以通过DBMS_WORKLOAD_REPOSITORY包来手动获得AWR统计信息。但是,由于许多内存中的统计信息(比如段统计信息和内存顾问信息)会被禁用,快照中获得的统计信息可能不完整。快照(snapshots)快照是特定时间范围内的历史数据集合,再由ADDM进行性能比较。默认情况下,数据库每个小时产生一次快照,并将这些统计信息在工作量仓库中保留8天。你也可以手动创建快照,但这通常是不必要的。然后这些快照之间的信息将交给Automatic Database Diagnostic Monitor (ADDM) 进行分析。AWR比较快照间信息的差异,然后获取对系统负载影响最大的一些sql语句,而不是获取所有sql语句,降低了统计的时间。基线(Baselines)基线包含了一个特定时间范围的性能数据,用来在性能问题发生时,与其他类似的时间段进行比较。基线中的快照会被自动AWR清除进程排除,并无限期保留。oracle数据库中包含了三种类型的基线:固定基线(Fixed Baselines)固定基线相当于被指定的过去的一个固定的、连续的时间范围。在创建固定基线以前,要慎重考虑这个时间段,因为基线代表了一个理想状态的系统状态。之后,你可以用这个基线和其他基线或者某个时间范围内的快照来分析性能上的退化情况。移动窗口基线(Moving Window Baseline)移动窗口基线相当于AWR保留期间内存在的所有AWR数据。在使用自适应阈值时,这将很有用处,因为数据库可以使用AWR保留期间的所有AWR数据来计算出度量阈值。oracle数据库自动维护一个系统定义的移动窗口基线。系统定义的移动窗口基线的默认窗口大小等于当前AWR保留的时间,默认为8天。如果你要使用自适应阈值,可以考虑使用更大的移动窗口,例如30天,可以更精确地计算出阈值。你可以改变移动窗口的大小,这个值要等于或小于AWR保留天数。因此若你需要增大移动窗口的大小,首先需要增加AWR的保留时间。基线模板(Baseline Templates)你可以创建一个基线,作为未来一个时间连续的时间段可以使用的基线模板。有两种类型的基线模板:单一的和重复的。你可以为未来一个单独的连续时间段的基线创建单一基线模板。如果你要提前准备获取一个未来的时间段,这个技术会很有用处。例如,你安排好要在周末进行一个系统测试,并准备获取AWR数据,这种情况下,你可以创建一个单一基线模板,用以在测试时自动获取该时间范围内的数据。你也可以使用重复基线模板来创建或者删除一个重复的时间计划,当你想自动获取一个连续的时间范围,这将很有用。例如,你可能希望在一个月里的每周一早晨获取AWR数据,这种情况下,你可以创建一个重复基线模板来自动为每个周一创建基线,并且在设置了过期时间(例如一个月)后,自动删除过期的基线。自适应阈值(Adaptive Thresholds)自适应阈值可以帮你以最低的开销监控和检测出性能问题。自适应阈值能够从在移动窗口基线捕获到的度量值里得到的统计信息中,为系统度量自动设置警告和关键报警(warning and critical alert)的阈值。这些统计信息每周会重新生成,并可能由于系统性能随着时间变化改变,而产生新的阈值。打个比方,很多数据库白天是一个OLTP系统,而到晚上需要执行一些批量进程(例如生成报表)。每个事务响应时间的性能度量对检测OLTP的性能退化问题在白天可能很有用,但是这个阈值常常对于批量工作来说会太低,而频繁触发报警。自适应阈值能检测到这样的工作量模式,并自动为白天和夜里设置不同的阈值。自适应阈值的类型有两种:最大值的百分比:阈值以最大值的百分比倍数的方式来计,重要性级别:阈值被设为一个统计学中的百分位来观察基于移动窗口基线数据的阈值以上的值,来体现异常程度。百分位能指定为以下几种:高(0.95),100个中只有5个能超过这个值;非常高(0.99):100个中只有1个能超过这个值;严重的(0.999):1000个钟只有1个能超过这个值;极端的(0.9999):10000个钟只有1个能超过这个值。当一个系统以高峰期工作量来设计的,并且你希望在当前工作量接近或超过先前的高值时触发报警,最大值百分比阈值将非常有用。例如,每秒产生redo量的度量就是个典型的例子。重要性级别阈值在以下情况很有用:当系统运行正常时表现得很稳定,但当性能变差时可能会在一个大范围内波动。例如,每个事务的响应时间的度量在一个优化过的OLTP系统上将表现平稳,但当性能问题凸显时,可能会波动很大。采用重要性级别阈值,当环境产生不正常的度量值和系统性能时触发报警。空间消耗(Space Consumption)以下因素可以被用来判断AWR的空间消耗:在任一给定时间系统中的活动会话数;快照时间间隔,时间间隔越小,快照产生越频繁,增加AWR采集的数据的占用空间;历史数据保留时间默认情况下,快照每小时捕获一次,并在数据库中保存8天。使用这些默认设置,一个典型的并发量为10个会话数的系统大约需要200-300M的空间来存放AWR数据。但是在降低保留时间的时间,请注意,若AWR中的数据不足,可能会影响一些组件和功能的准确性和精确度:ADDM、SQL Tuning Advisor、Undo Advisor、Segment Advisor。可能的话,Oracle建议将AWR保留时间设得足够来,至少能捕获一个完整的工作量周期。当你的系统工作量周期为1周,比如工作日是OLTP的工作负荷,而在周末运行批量工作,则默认的8天保留时间不需要去修改。当如果你的系统的高峰期在每个月的月末,那么你可能需要将这个保留时间更改到1个月。例外情况下,你可以将快照时间间隔改成0来关闭自动收集快照。在这种情况下,工作量和统计数据的自动收集将被停止,且许多Oracle数据库的自动管理功能将不能使用。另外,你不能手动创建快照,因此Oracle强烈建议不要关闭snapshot的自动收集。管理工作量仓库管理快照创建快照:DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();删除快照:DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE (low_snap_id = 22,high_snap_id = 32, dbid = 3310949047); 属于这个时间范围内的ASH数据也将被清除修改快照设置:DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention = 43200,interval = 30, topnsql = 100, dbid = 3310949047); 相关时间的单位为分钟。管理基线创建基线DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE (start_snap_id = 270,end_snap_id = 280, baseline_name = peak baseline,dbid = 3310949047, expiration = 30); 删除基线DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE (baseline_name = peak baseline,cascade = FALSE, dbid = 3310949047); -若cascade指定为true,将同时删除关联的快照重命名基线DBMS_WORKLOAD_REPOSITORY.RENAME_BASELINE (old_baseline_name = peak baseline,new_baseline_name = peak mondays,dbid = 3310949047);显示基线度量select * from table(DBMS_WORKLOAD_REPOSITORY.SELECT_BASELINE_METRICS (baseline_name = peak baseline,dbid = 3310949047,instance_num = 1);修改默认移动窗口基线的窗口大小DBMS_WORKLOAD_REPOSITORY.MODIFY_BASELINE_WINDOW_SIZE (window_size = 30,dbid = 3310949047); -window_size单位是天,这个参数值必须小于等于当前AWR的保留时间管理基线模板创建单一基线模板DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (start_time = 2009-04-02 17:00:00 PST,end_time = 2009-04-02 20:00:00 PST,baseline_name = baseline_090402,template_name = template_090402, expiration = 30,dbid = 3310949047); -若不指定expiration参数,创建的基线将不会过期创建重复基线模板DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (day_of_week = monday, hour_in_day = 17,duration = 3, expiration = 30,start_time = 2009-04-02 17:00:00 PST,end_time = 2009-12-31 20:00:00 PST,baseline_name_prefix = baseline_2009_mondays_,template_name = template_2009_mondays,dbid = 3310949047); -duration参数单位为小时删除基线模板DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE_TEMPLATE (template_name = template_2009_mondays,dbid = 3310949047);传输AWR数据oracle数据库允许在不同的系统上传输AWR数据,若你想在单独的系统中来分析AWR数据,这个将会有用。从源库中抽取数据:$ORACLE_HOME/rdbms/admin/awrextr.sql导入到目标库中:$ORACLE_HOME/rdbms/admin/awrload.sql数据使用数据泵来导出导入,因此还需要创建一个directoryAWR相关视图v$active_session_history显示活跃的数据库会话的活动,每秒采样一次v$metric和v$metric_history提供度量数据来跟踪系统性能。视图被组织成好几个组,这些组定义在v$metricgroup视图中DBA_HIST视图Plain代码 1. DBA_HIST_ACTIVE_SESS_HISTORY展示内存中活动会话历史信息 2. DBA_HIST_BASELINE展示捕获的基线的信息 3. DBA_HIST_BASELINE_DETAILS展示特定基线的明细信息 4. DBA_HIST_BASELINE_TEMPLATE基线模板相关信息 5. DBA_HIST_DATABASE_INSTANCE数据库环境 6. DBA_HIST_DB_CACHE_ADVICE根据历史数据预测在不同的cachesize下的物理读 7. DBA_HIST_DISPATCHER每个snapshot下调度进程的信息 8. DBA_HIST_DYN_REMASTER_STATS动态remastering进程的统计信息 9. DBA_HIST_IOSTAT_DETAIL按未见类型和功能来统计的历史I/O信息 10. DBA_HIST_SHARED_SERVER_SUMMARY共享服务器的统计信息 11. DBA_HIST_SNAPSHOT快照信息 12. DBA_HIST_SQL_PLAN执行计划 13. DBA_HIST_WR_CONTROLAWR控制信息生成AWR报告生成一个典型的AWR报告:Plain代码 1. 1.AttheSQLprompt,enter: 2. $ORACLE_HOME/rdbms/admin/awrrpt.sql 3. 2.SpecifywhetheryouwantanHTMLoratextreport: 4. Entervalueforreport_type:text 5. Inthisexample,atextreportischosen. 6. 3.SpecifythenumberofdaysforwhichyouwanttolistsnapshotIDs. 7. Entervaluefornum_days:28. Alistofexistingsnapshotsforthespecifiedtimerangeisdisplayed.Inthis 9. example,snapshotscapturedinthelast2daysaredisplayed. 10. 4.SpecifyabeginningandendingsnapshotIDfortheworkloadrepositoryreport: 11. Entervalueforbegin_snap:15012. Entervalueforend_snap:16013. Inthisexample,thesnapshotwithasnapshotIDof150isselectedasthe 14. beginningsnapshot,andthesnapshotwithasnapshotIDof160isselectedasthe 15. endingsnapshot. 16. 5.Enterareportname,oracceptthedefaultreportname: 17. Entervalueforreport_name: 18. Usingthereportnameawrrpt_1_150_160 19. Inthisexample,thedefaultnameisacceptedandanAWRreportnamed 20. awrrpt_1_150_160isgenerated.生成RAC环境下的报告:$ORACLE_HOME/rdbms/admin/awrgrpt.sql生成指定实例的报告:$ORACLE_HOME/rdbms/admin/awrrpti.sql生成指定实例的RAC AWR报告$ORACLE_HOME/rdbms/admin/awrgrpti.sql生成一条sql语句的AWR报告$ORACLE_HOME/rdbms/admin/awrsqrpt.sql -需要指定sql_id生成指定实例中的sql语句的AWR报告$ORACLE_HOME/rdbms/admin/awrsqrpi.sql生成AWR对比报告我们还可以通过生成AWR对比报告,将出现性能问题的两个snapshot间的统计信息与前面比较正常的两个snapshot间的统计信息进行比较。生成AWR对比报告的过程如下:Plain代码 1. 1.AttheSQLprompt,enter: 2. $ORACLE_HOME/rdbms/admin/awrddrpt.sql 3. 2.SpecifywhetheryouwantanHTMLoratextreport: 4. Entervalueforreport_type:html 5. Inthisexample,anHTMLreportischosen. 6. 3.SpecifythenumberofdaysforwhichyouwanttolistsnapshotIDsinthefirst 7. timeperiod. 8. Entervaluefornum_days:29. Alistofexistingsnapshotsforthespecifiedtimerangeisdisplayed.Inthis 10. example,snapshotscapturedinthelast2daysaredisplayed. 11. 4.SpecifyabeginningandendingsnapshotIDforthefirsttimeperiod: 12. Entervalueforbegin_snap:10213. Entervalueforend_snap:10314. Inthisexample,thesnapshotwithasnapshotIDof102isselectedasthe 15. beginningsnapshot,andthesnapshotwithasnapshotID

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论