通过案例学调优之--AWR基本概念

简介:

一、Automatic Workload Repository 概念详解

      Automatic Workload Repository (AWR) 收集、处理和维护用于问题诊断的性能统计信息。该数据既存在于数据块中,也存在于内存中。AWR 收集的数据可以通过报告和视图进行查看。

wKiom1ShCS2xgM_XAALQjpCgQ78570.jpg

AWR 处理和收集的统计信息包括:

1.确定数据块 segment 访问路径和使用情况的对象统计信息

2.基于数据库活动的时间使用情况的时间模型统计信息,可在 V$SYS_TIME_MODEL 和 V$SESS_TIME_MODEL 视图中查看

3.V$SYSSTAT 和 V$SESSTAT 视图中收集的一些 sytem 和 session 的统计信息

4.按照 Elapsed time 和 CPU time 等条件在系统上筛选出的产生较高负载的 SQL 语句

5.ASH 统计信息——最近的 session 活动的历史记录

      数据库默认情况下已启用 AWR 收集统计信息,它 STATISTICS_LEVEL 初始化参数来控制。STATISTICS_LEVEL 参数必须设置为 TYPICAL 或 ALL 才能启用 AWR 统计信息收集。默认的设置为 TYPICAL。将 STATISTICS_LEVEL 设置为 BASIC 将禁用许多 Oracle Database 功能,包括 AWR,所以不推荐这么设置。当 STATISTICS_LEVEL 设置为 BASIC 时,仍然可以使用 DBMS_WORKLOAD_REPOSITORY 包手动捕获 AWR 统计信息。但是许多在内存中收集的系统统计信息,如 segment 统计信息和 memory advisor 信息都将被禁用,这种情况下的手动快照捕获的统计信息可能不是完整的。

1、Snapshot

     快照是 ADDM 用于性能比较的特定时期内的历史数据集合。在 11g 中,Oracle Database 每小时会自动生成性能数据的快照,并将这些统计信息在工作负载信息库中保留 8 天。您也可以手动创建快照,其实没必要这么做。快照间隔内的统计信息由 Automatic Database Diagnostic Monitor (ADDM) 进行分析。

     AWR 通过比较各个快照之间的差异,根据对系统负载的影响来确定要捕获的 SQL 语句,随着时间的发展,必须捕获的 SQL 语句将逐渐减少。

2、Baseline

     Baseline 是指一个特定时间段内的性能数据,保留这些数据是为了在性能问题产生时与其他类似的工作负载时间段进行比较。Baseline 中包含的快照将从自动 AWR 清理进程中排除,并无限期的保留。

在 Oracle Database 中存在多种类型的 baseline;

     Fixed Baseline:fixed baseline 表示的是您指定的一个固定的、连续的时间段。在创建 fixed baseline 之前,请认真考虑您选作 baseline 的时间段,因为该 baseline 应该代表系统处于良好的性能下运行。您可以在将来将该 baseline 与在性能较差的时间段捕获的其他 baseline 或 snapshot 进行比较分析。 

     Moving Window Baseline:表示的是 AWR 保留期内存在的所有 AWR 数据。在使用自适应阈值时,它非常有用,因为数据库可以使用整个 AWR 保留期内的 AWR 数据来计算指标值。

     Oracle Database 会自动维护系统定义的 moving window baseline。系统定义的 moving window baseline 的默认窗口大小就是当前的 AWR 保留期,即默认为 8 天。如果您打算使用自适应阈值,请考虑使用更长的移动窗口——如30天,以便精确地计算阈值。您可以重新调整 moving window baseline,将移动窗口的大小调整为小于或等于 AWR 的保留天数。因此,要增加移动窗口的大小,必须要先增加相应的 AWR 保留期限。

     Baseline Template:您可以使用 baseline template 创建将来某个连续时间段的 baseline。Oracle 中有两种 baseline 模板:single 和 repeating

     利用 single baseline template,您可以为将来某个单独的连续时间段创建 baseline。该技术在某些情况下非常有用。例如,如果您想捕获下周计划的系统测试期间的 AWR 数据,您可以创建一个 single baseline template 来自动捕获测试发生的时间段的统计数据。

     利用 repeating baseline template ,可以根据重复的时间计划创建和删除 baseline。当您希望 Oracle Database 自动持续地捕获连续时间段的统计数据时,这非常有用。例如,您可能需要在长达一个月内捕获每周一早上的 AWR 数据。在这种情况下,您可以创建一个 repeating baseline template ,以在每周一自动创建 baseline,在指定的过期期限内自动删除过时的 baseline。

案例:

AWR可以在OEM图形界面或者在sqlplus界面下应用

1、在OEM下启用

启动listener:
[oracle@RH6 admin]$ lsnrctl start
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 31-OCT-2014 17:14:31
Copyright (c) 1991, 2009, Oracle.  All rights reserved.
Starting /u01/app/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/RH6/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=RH6)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=RH6)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                31-OCT-2014 17:14:31
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/RH6/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=RH6)(PORT=1521)))
The listener supports no services
The command completed successfully

启动OEM Service:
[oracle@RH6 admin]$ emctl start dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0
Copyright (c) 1996, 2009 Oracle Corporation.  All rights reserved.
https://RH6:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control ........... started.
------------------------------------------------------------------
Logs are generated in directory /u01/app/oracle/product/11.2.0/db_1/RH6_prod/sysman/log

[oracle@RH6 admin]$ netstat -an |grep 1158
tcp        0      0 :::1158                     :::*                        LISTEN

[oracle@RH6 admin]$ emctl status dbconsole
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0
Copyright (c) 1996, 2009 Oracle Corporation.  All rights reserved.
https://RH6:1158/em/console/aboutApplication
Oracle Enterprise Manager 11g is running.
------------------------------------------------------------------
Logs are generated in directory /u01/app/oracle/product/11.2.0/db_1/RH6_prod/sysman/log

wKiom1RXMcrxtoBJAAPUPEDBgo4710.jpg


通过OEM管理Database

wKiom1RXMcvQ9Zb1AAQUwFCMe98447.jpg


在性能页面查看snapshot

wKioL1RXMinDrm4xAAL94qyHTMg680.jpg


建立AWR Report

wKioL1RXMirztesgAAK5q4wOxm0693.jpg

wKiom1RXMcvAxSZwAAI3ln4IQBY109.jpg


查看awr report


2、通过sqlplus创建awr report

1)、查看snapshot
02:33:25 SYS@ prod >desc dba_hist_snapshot;
 Name                                                              Null?    Type
 ----------------------------------------------------------------- -------- --------------------------------------------
 SNAP_ID                                                           NOT NULL NUMBER
 DBID                                                              NOT NULL NUMBER
 INSTANCE_NUMBER                                                   NOT NULL NUMBER
 STARTUP_TIME                                                      NOT NULL TIMESTAMP(3)
 BEGIN_INTERVAL_TIME                                               NOT NULL TIMESTAMP(3)
 END_INTERVAL_TIME                                                 NOT NULL TIMESTAMP(3)
 FLUSH_ELAPSED                                                              INTERVAL DAY(5) TO SECOND(1)
 SNAP_LEVEL                                                                 NUMBER
 ERROR_COUNT                                                                NUMBER
 SNAP_FLAG                                                                  NUMBER
 
02:22:53 SYS@ prod >col  BEGIN_INTERVAL_TIME for a40
02:23:04 SYS@ prod >col END_INTERVAL_TIME for a40
02:23:13 SYS@ prod >select SNAP_ID,dbid,SNAP_LEVEL,BEGIN_INTERVAL_TIME,END_INTERVAL_TIME from dba_hist_snapshot
   SNAP_ID       DBID SNAP_LEVEL BEGIN_INTERVAL_TIME                      END_INTERVAL_TIME
---------- ---------- ---------- ---------------------------------------- ----------------------------------------
       114  219724276          1 04-NOV-14 01.29.48.000 AM                04-NOV-14 01.41.01.518 AM
       115  219724276          1 04-NOV-14 01.41.01.518 AM                04-NOV-14 02.01.49.722 AM
       116  219724276          1 04-NOV-14 02.01.49.722 AM                04-NOV-14 02.02.31.757 AM
       
2)、生成awr report
02:23:13 SYS@ prod >@?/rdbms/admin/awrrpt
Current Instance
~~~~~~~~~~~~~~~~
   DB Id    DB Name      Inst Num Instance
----------- ------------ -------- ------------
  219724276 PROD                1 prod
Elapsed: 00:00:00.05
Elapsed: 00:00:00.00
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: html
Type Specified:  html
Elapsed: 00:00:00.00
Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   DB Id     Inst Num DB Name      Instance     Host
------------ -------- ------------ ------------ ------------
  219724276         1 PROD         prod         RH6.51CTO提醒您,请勿滥发广告!
  219724276         1 PROD         prod         rh6.cuug.net
* 219724276         1 PROD         prod         RH6
Using  219724276 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: 1
Listing the last day's Completed Snapshots
                                                        Snap
Instance     DB Name        Snap Id    Snap Started    Level
------------ ------------ --------- ------------------ -----
prod         PROD               114 04 Nov 2014 01:41      1
                                115 04 Nov 2014 02:01      1
                                116 04 Nov 2014 02:02      1

  3)查看report

wKiom1RXNmbxPCZDAAOqoCflCIE332.jpg










本文转自 客居天涯 51CTO博客,原文链接:http://blog.51cto.com/tiany/1571286,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
域名解析 缓存 网络协议
域名系统DNS_基础知识
域名系统(DNS)使我们能够通过易记的域名访问互联网资源,而非直接使用IP地址。DNS采用层次树状结构,由多个分量组成,如顶级域名(如.com或.cn)位于最右侧。域名长度限制为255个字符,各级域名由相应管理机构监管,顶级域名由ICANN管理。DNS分为国家顶级域名、通用顶级域名和反向域等。域名解析涉及根域名、顶级域名及权限域名服务器,通过递归和迭代查询完成。为提高效率,DNS使用分布式服务器和高速缓存技术。
140 8
|
3月前
|
运维 关系型数据库 MySQL
在Linux中,如何使用strace进行故障排查?
在Linux中,如何使用strace进行故障排查?
|
5月前
|
机器学习/深度学习 存储 监控
基于YOLOv8深度学习的智能车牌检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
基于YOLOv8深度学习的智能车牌检测与识别系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
|
SQL 存储 关系型数据库
SQL调优指南—调优基本概念
分布式数据库相对单机数据库架构有差异,所有在单机数据库的调优经验上分布式数据库又有着自身特点的调优手段。在使用PolarDB-X的过程中,我们会基于统计信息、执行计划和并发策略和执行之后反馈的运行时长等信息,找出导致SQL执行慢的原因,针对性调优。
101 0
SQL调优指南—调优基本概念
|
5月前
|
监控 Java Android开发
AMS图解
以下是内容的摘要,以Markdown格式呈现: ```markdown - Android体系结构、系统启动流程和Binder机制的图表展示了Android操作系统的核心组件交互。 - Binder启动涉及Zygote进程,它通过反射调用ActivityThread.main来初始化Binder线程池。 - AMS通过Binder通信管理应用进程,如启动Activity,与Zygote通过socket通信fork新进程。 ``` 请注意,由于限制在240个字符内,摘要只能提供高层次的概念和流程,而无法包含详细步骤或具体图片的描述。
|
SQL 存储 关系型数据库
【笔记】SQL调优指南—调优方法论
找出需调优的慢SQL后,先通过EXPLAIN查看执行计划,然后通过如下方法优化SQL:下推更多计算至存储层MySQL,适当增加索引,优化执行计划。
|
6月前
|
缓存 负载均衡 算法
【Nginx】Nginx 负载均衡
【1月更文挑战第25天】【Nginx】Nginx 负载均衡
|
SQL 关系型数据库
[翻译]利用pg_stat_statments分析业务瓶颈
[翻译]利用pg_stat_statments分析业务瓶颈
108 0
|
SQL 固态存储 数据库
【中亦安图】Systemstate Dump分析经典案例(7)
第一章 技术人生系列 · 我和数据中心的故事(第七期)Systemstate Dump分析经典案例(上) 中亦安图 | 2016-03-03 21:42 前言 本期我们邀请中亦科技的另外一位Oracle专家老K来给大家分享systemstate dump分析的经典案例。
1385 0

相关实验场景

更多
下一篇
无影云桌面