Oracle AWR的管理与维护详解

awr是automatic workload repository的简称,中文叫着自动工作量资料档案库。对于awr的管理,主要是针对快照和基线的管理而言。比如设定快照的间隔,删除快照,设定快照的保留时间。那对于基线而言则是基线的创建,删除,自动创建等。本文主要描述这2部分的内容。本文主要给大家介绍了关于oracle awr(自动工作量资料档案库)管理与维护的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

一、快照管理

  默认情况下,Oracle数据库每小时生成一次快照,并在工作负载库中保留8天的统计信息。必要时,你可以使用dbms_workload_repository程序手动创建,删除或者修改快照等。可以使用OEM以及dbms_workload_repository包管理快照。

1. 手动创建快照

  使用以下过程手工创建快照,创建完成后可在数据字典DBA_HIST_SNAPSHOT查看所有快照相关信息。

乾坤圈新媒体矩阵管家 乾坤圈新媒体矩阵管家

新媒体账号、门店矩阵智能管理系统

乾坤圈新媒体矩阵管家 17 查看详情 乾坤圈新媒体矩阵管家

BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ();END;/SELECT snap_id,   dbid,   begin_interval_time,   end_interval_timeFROM  dba_hist_snapshotORDER BY end_interval_time DESC; SNAP_ID  DBID BEGIN_INTERVAL_TIME   END_INTERVAL_TIME---------- ---------- ---------------------------- --------------------------  164 41924548 14-APR-17 09.38.19.467 AM 14-APR-17 10.51.21.886 AM  163 41924548 14-APR-17 09.00.10.470 AM 14-APR-17 09.38.19.467 AM  162 41924548 14-APR-17 08.00.07.242 AM 14-APR-17 09.00.10.470 AM  161 41924548 14-APR-17 07.00.04.120 AM 14-APR-17 08.00.07.242 AM

2. 删除快照

  以下过程将删除snap_id从162到164的快照。在未指定41924548时,使用当前缺省的数据库

BEGIN DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE (low_snap_id => 162,       high_snap_id => 164, dbid => 41924548);END;/

3. 修改快照的保留间隔

--查看当前的保留策略,如下,为缺省值,采集间隔为1小时,保留8天SQL> select * from dba_hist_wr_control;  DBID SNAP_INTERVAL  RETENTION   TOPNSQL---------- -------------------- ------------------ ---------- 41924548 +00000 01:00:00.0 +00008 00:00:00.0 DEFAULT--下面将其修改为保留5天,采集间隔为30分钟,topnsql为50条BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention => 10*24*60,     interval => 30, topnsql => 50, dbid => 41924548);END;/--查看修改后的结果SQL> select * from dba_hist_wr_control;  DBID SNAP_INTERVAL  RETENTION   TOPNSQL---------- -------------------- ------------------ ---------- 41924548 +00000 00:30:00.0 +00010 00:00:00.0 50

二、基线管理

  AWR基线可以手工创建和删除,也可以自动创建和删除。对于自动创建基线则是首先要创建基线样本才能实现自动创建基线。主要描述如下。

1. 创建基线

  基线的创建依赖于快照,因此在创建之前应该得到所需时间范围的snap_id,可以通过查询数据字典DBA_HIST_SNAPSHOT获得,同时在基线创建完成后可以从数据字典DBA_HIST_BASELINE查询基线相关信息。

BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE (start_snap_id => 160,     end_snap_id => 161, baseline_name => 'peak_baseline',     dbid => 41924548, expiration => 10);END;/SQL> SELECT baseline_id, 2   baseline_name, 3   baseline_type, 4   expiration, 5   creation_time 6 FROM dba_hist_baseline;BASELINE_ID BASELINE_NAME   BASELINE_TYPE EXPIRATION CREATION_----------- ----------------------- ------------- ---------- ---------   1 peak_baseline   STATIC    10 14-APR-17   0 SYSTEM_MOVING_WINDOW MOVING_WINDOW   07-APR-17--基于特定时间创建基线,如下示例BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE (  start_time  => TO_DATE ('2017-04-14 6:00:00', 'yyyy-mm-dd hh24:mi:ss'),  end_time  => TO_DATE ('2017-04-14 8:00:00', 'yyyy-mm-dd hh24:mi:ss'),  baseline_name => 'peak_baseline2',  expiration  => 10);END;/

  在上面的示例中,创建了一个范围为160-161的,名字为peak_baseline的基线,保留时间为10天。在超过10天后,该基线会被删除,相应的快照也被删除。如果为指定失效期,则该基线以及相应的快照被永久保留。

2. 删除基线

BEGIN DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE (baseline_name => 'peak_baseline',     cascade => FALSE, dbid => 41924548);END;/

  在上面的示例中将删除名为peak_baseline的基线,同时指定了cascade为false,也就是说在删除基线的同时,不删除相应的快照。

3. 基线重命名

BEGIN DBMS_WORKLOAD_REPOSITORY.RENAME_BASELINE (     old_baseline_name => 'peak_baseline',     new_baseline_name => 'peak_mondays',     dbid => 41924548);END;/--验证结果SQL> SELECT baseline_id, 2   baseline_name, 3   baseline_type, 4   expiration, 5   creation_time 6 FROM dba_hist_baseline;BASELINE_ID BASELINE_NAME   BASELINE_TYPE EXPIRATION CREATION_----------- ----------------------- ------------- ---------- ---------   1 peak_mondays   STATIC    10 14-APR-17   0 SYSTEM_MOVING_WINDOW MOVING_WINDOW   07-APR-17

  在上面的示例中,将基线的名称由peak_baseline修改成peak_mondays。

4. 修改缺省移动窗口基线保留值

--查看缺省的window_sizeSELECT baseline_name, baseline_type, moving_window_sizeFROM dba_hist_baselineWHERE baseline_name = 'SYSTEM_MOVING_WINDOW';BASELINE_NAME   BASELINE_TYPE MOVING_WINDOW_SIZE------------------------ ------------- ------------------SYSTEM_MOVING_WINDOW  MOVING_WINDOW     8BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_BASELINE_WINDOW_SIZE (     window_size => 7,     dbid => 41924548);END;/--window_size为天,只能够小于等于当前快照保留时间,否则报错,如下:ERROR at line 1:ORA-13541: system moving window baseline size (864000)greater than retention (691200)ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 686ORA-06512: at line 2

5. 管理基线样本

创建单个基线模板

BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (  start_time  => TO_DATE ('2017-04-14 17:00:00', 'yyyy-mm-dd hh24:mi:ss'),  end_time  => TO_DATE ('2017-04-14 19:00:00', 'yyyy-mm-dd hh24:mi:ss'),  baseline_name => 'baseline_140414',  template_name => 'template_140414',  expiration  => 10,  dbid   => 41924548);END;/--如果创建基线样本时间小于当前时间,则收到如下错误ERROR at line 1:ORA-13537: invalid input for create baseline template (end_time, end_time is less than SYSDATE)ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 768ORA-06512: at "SYS.DBMS_WORKLOAD_REPOSITORY", line 818ORA-06512: at line 2

  在上面的示例中,我们创建了一个单一的基线样本,并且指定了相应的时间范围,基线的名称及保留期限等。那么在这个时间范围内的相应的快照会被保留,同时这个基线可以用于后续在发现性能问题的时候进行比对。

创建重复基线样本

  重复的基线样本指的是在将来某个特定的时间范围内,Oracle会参照这个设定的样本自动为我们创建基线。比如,可以创建一个重复的基线样本,使得在2017年每周一9:00-11:00自动生成基线。

SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (  day_of_week   => 'monday',  hour_in_day   => 9,  duration    => 2,  expiration    => 30,  start_time    => '2017-04-14 09:00:00',  end_time    => '2017-12-31 11:00:00',  baseline_name_prefix => 'baseline_2017_mondays_',  template_name   => 'template_2017_mondays',  dbid     => 41924548);END;/-- Author  : Leshami-- Blog  : http://blog.csdn.net/leshami-- QQ(Weixin) : 645746311--查看已经创建的基线样本SQL> select t.template_name, 2  t.template_type, 3  t.start_time, 4  t.end_time, 5  t.day_of_week, 6  t.hour_in_day, 7  t.duration 8 from dba_hist_baseline_template t;TEMPLATE_NAME   TEMPLATE_ START_TIME   END_TIME   DAY_OF_WE HOUR_IN_DAY DURATION--------------------- --------- ------------------- ------------------- --------- ----------- --------template_140414  SINGLE 2017-04-14 17:00:00 2017-04-14 19:00:00template_2017_mondays REPEATING 2017-04-14 09:00:00 2017-12-31 11:00:00 MONDAY    17  3

  在上面的示例中我们创建了一个重复从2017年4月14日起的每周一(day_of_week)会自动生成一个基线,其开始时间为9点(hour_in_day),其持续时间为2小时(duration),有效期为30天(expiration),整个基线的起止时间范围为:2017-04-14 09:00:00至2017-12-31 11:00:00,同时也指定了基线样本的名称以及基线前缀名称。

基线样本的删除

BEGIN DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE_TEMPLATE (     template_name => 'template_140414',     dbid => 41924548);END;/

  在上面的示例中我们删除之前创建的基线样本,通过指定样本名称即可。

三、AWR空间占用

  AWR快照的数据全部填充在SYSAUX表空间。因此如果要保留的快照越久,意味着需要占用的SYSAUX空间越大。同时可以通过awrinfo.sql查看各个对象占用SYSAUX的详细信息。

SQL> @?/rdbms/admin/awrinfo.sqlThis script will report general AWR information~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Specify the Report File Name~~~~~~~~~~~~~~~~~~~~~~~~~~~~The default report file name is awrinfo.txt. To use this name,press  to continue, otherwise enter an alternative.Enter value for report_name:Using the report name awrinfo.txtNo errors.     -- Author : LeshamiNo errors.     -- Blog : http://blog.csdn.net/leshami~~~~~~~~~~~~~~~   -- QQ  : 645746311 AWR INFO Report~~~~~~~~~~~~~~~Report generated at19:48:53 on Apr 14, 2017 ( Friday ) in Timezone +08:00Warning: Non Default AWR Setting!--------------------------------------------------------------------------------Snapshot interval is 60 minutes and Retention is 8 days  DB_ID DB Name HOST_PLATFORM   INST STARTUP_TIME  LAST_ASH_SID PAR------------ ------- ----------------------- ---- ----------------- ------------ ---* 41924548 ORA11G ydq - Linux x86 64-bit  1 15:18:26 (04/07)  617410 NO########################################################(I) AWR Snapshots Information########################################################*****************************************************(1a) SYSAUX usage - Schema breakdown (dba_segments)*****************************************************|| Total SYSAUX size      617.4 MB ( 2% of 32,768.0 MB MAX with AUTOEXTEND ON )|| Schema SYS   occupies   206.6 MB ( 33.5% )| Schema XDB   occupies   157.7 MB ( 25.5% )| Schema APEX_030200 occupies    85.4 MB ( 13.8% )| Schema MDSYS  occupies    73.9 MB ( 12.0% )

## 四、生成AWR报告

–单实例下生成AWR报告

SQL> @?/rdbms/admin/awrrpt.sql

–RAC环境下生成AWR报告

SQL> @$ORACLE_HOME/rdbms/admin/awrgrpt.sql

–指定数据库实例生成AWR报告

SQL> @$ORACLE_HOME/rdbms/admin/awrrpti.sql

–生成SQL语句AWR报告

SQL> @$ORACLE_HOME/rdbms/admin/awrsqrpt.sql

–指定实例生成SQL语句AWR报告

SQL> @$ORACLE_HOME/rdbms/admin/awrsqrpi.sql

–生成比较的AWR报告

SQL> @$ORACLE_HOME/rdbms/admin/awrddrpt.sql

–RAC环境下生成比较的AWR报告

@$ORACLE_HOME/rdbms/admin/awrgdrpt.sql

五、AWR相关的重要视图和数据字典

v$active_session_history : 显示活跃的数据库会话的活动,每秒采样一次

v$metric和v$metric_history:

   提供度量数据来跟踪系统性能。视图被组织成好几个组,这些组定义在v$metricgroup视图中

DBA_HIST_ACTIVE_SESS_HISTORY

   展示内存中活动会话历史信息

DBA_HIST_BASELINE
   展示捕获的基线的信息

DBA_HIST_BASELINE_DETAILS

  展示特定基线的明细信息

DBA_HIST_BASELINE_TEMPLATE

   基线模板相关信息

DBA_HIST_DATABASE_INSTANCE

  数据库环境

DBA_HIST_DB_CACHE_ADVICE

   根据历史数据预测在不同的cache size下的物理读

DBA_HIST_DISPATCHER

   每个snapshot下调度进程的信息

DBA_HIST_DYN_REMASTER_STATS

   动态remastering进程的统计信息

DBA_HIST_IOSTAT_DETAIL
   按未见类型和功能来统计的历史I/O信息

DBA_HIST_SHARED_SERVER_SUMMARY

   共享服务器的统计信息

DBA_HIST_SNAPSHOT

   快照信息

DBA_HIST_SQL_PLAN

   执行计划

DBA_HIST_WR_CONTROL

   AWR控制信息

相关推荐:

mysql与oracle数据库停止与启动的批处理文件

php如何利用PDO访问oracle数据库的方法详解

Oracle字符串中包含数字、特殊符号的排序问题解决方法

以上就是Oracle AWR的管理与维护详解的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/387100.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月6日 14:05:31
下一篇 2025年11月6日 14:09:53

相关推荐

  • 深入理解CSS属性选择器并举例说明

    CSS属性选择器详解及应用示例 在CSS中,我们经常需要通过选择器来选取并修改特定的元素样式。除了常见的标签选择器(如div、p等),CSS还提供了属性选择器,可以根据元素的属性值来选择并修改样式。 本文将详细介绍CSS的属性选择器,并给出一些实际应用的示例。 一、属性选择器类型 立即学习“前端免费…

    2025年12月24日
    000
  • 动态加载css详解

    这次给大家带来动态加载css详解,动态加载css的注意事项有哪些,下面就是实战案例,一起来看一下。 一、方法引用来源和应用 此动态加载css方法 loadCss,剥离自Sea.js,并做了进一步的优化(优化代码后续会进行分析)。 因为公司项目需要用到懒加载来提高网站加载速度,所以将非首屏渲染必需的c…

    好文分享 2025年12月24日
    000
  • css中px、em和rem使用详解

    相信每位前端工程师们都有这么一个体会,国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢?下面这篇文章小编就来给大家详细介绍关于css中px、em和rem的区别,需要的朋友可以参考借鉴,下面来一起看看吧。 前言 em 和 rem 都是灵活可扩展的单…

    好文分享 2025年12月24日
    000
  • CSS双飞翼布局的详解

    这次给大家带来CSS双飞翼布局的详解,实现CSS双飞翼布局的注意事项有哪些,下面就是实战案例,一起来看一下。 双飞翼布局,就是两端固定宽高,中间自适应的三栏布局 先来张图,左边和右边的灰色块是固定宽高的,中间绿色的区域是宽高自适应 方式一:通过flex弹性布局来实现 看代码 //HTML结构,p2是…

    2025年12月24日
    000
  • CSS的三栏布局详解

    这次给大家带来CSS的三栏布局详解,CSS的三栏布局的注意事项有哪些,下面就是实战案例,一起来看一下。 本文介绍了CSS经典三栏布局方案,分享给大家,也给自己做个笔记,具体如下: 三栏布局,顾名思义就是两边固定,中间自适应。三栏布局在开发十分常见 1. float布局 最简单的三栏布局就是利用flo…

    2025年12月24日 好文分享
    000
  • CSS的定位属性详解

    这次给大家带来CSS的定位属性详解,使用CSS定位属性的注意事项有哪些,下面就是实战案例,一起来看一下。 CSS的定位属性有三种,分别是绝对定位、相对定位、固定定位。 position: absolute; position: relative; position: fixed; 下面逐一介绍。 相…

    2025年12月24日 好文分享
    000
  • px单位html5响应式方案详解

    移动端h5响应式方案最近这几年用得最多的最多的就是rem方案了。这个需要计算根元素的font-size来实现响应式。本文主要和大家介绍了px单位html5响应式方案的相关资料,希望能帮助到大家。 但这种方案也有一个缺点,那就是font-size不为整数的时候一些字体使用rem单位会导致字体显示的大小…

    好文分享 2025年12月24日
    000
  • Css多行字符截取方法详解

    相信有很多同学在写前端页面的时候,都会遇到字符长了需要截取的问题,最简单的方法就是手动去截取,可这样又感觉太low了,今天晚上就来讲讲利用css进行字符的截取,不了解css是如何截取的同学可以和我们一起看看哦! 前言 最近在做响应式系统设计的时候遇到需要对标题进行多行文字截取的效果,如下图: 看似十…

    2025年12月24日 好文分享
    000
  • CSS内边距外边距代码详解

    本文主要和大家分享css之内边距与外边距,本文运用了多个实例与代码,希望能帮助到大家。 外边距: margin 左边距 margin-left:数值 | autoauto:即距离这个边最远的距离右边距: margin-right:数值 | auto上边距: margin-top:数值 这里不能用au…

    2025年12月24日 好文分享
    000
  • CSS常用的一些属性详解

    text-align: center”>CSS常用属性 ☛关于css属性个人建议查看手册更加详细方便,我这里就几种常用属性进行分类并简单取几个常用属性值,仅供跟我一样刚学习前端的人作为入门而用。  1.字体样式 字体的缩写,写法是font:font-style|| font-var…

    好文分享 2025年12月23日
    000
  • CSS如何实现两端对齐详解

    前面的话   两端对齐在导航nav的制作中非常常用。本文将详细介绍css两端对齐的3种实现方式 flex   弹性盒模型flex作为强大的弹性布局方式,可以hold住大部分的布局效果,当然也包括两端对齐。可以使用主轴对齐justify-content的两端对齐属性space-between just…

    好文分享 2025年12月23日
    000
  • css样式之border-radius详解

    border-radius 属性设置边框的园角     可能的值:像素,百分比 扩展延伸 html代码 css代码 p { height: 200px; width: 200px; border: 2px solid #a72525; border-radius: 10px;} 结果 立即学习“前端…

    好文分享 2025年12月23日
    000
  • 详解CSS属性值用法

    万维网联盟(w3c) 使用了一套特别的语法来定义 css 的属性值,能让所有的 css 属性都用。如果你曾看过 css 规范,你可能已经见过这套语法了。就像  border-image-slice  的语法 ,让我们看看: = [ | ]{1,4} && fill?如果你不知道这些符…

    2025年12月23日 好文分享
    000
  • 详解css中border-image的使用方法

    border-image-source 属性设置边框的图片的路径[none | ] p { border: 20px solid #000; border-image-source: url(border.png);} border-image-slice 属性图片边框向内偏移[ | ](1,4) …

    2025年12月23日
    000
  • java怎么编译运行.html_java编译运行.html方法【教程】

    Java程序的编译运行与HTML无关,需使用JDK。1. 编写HelloWorld.java文件;2. 命令行执行javac HelloWorld.java生成.class文件;3. 执行java HelloWorld运行程序。注意:HTML是网页标记语言,不能直接运行Java代码,勿将二者混淆。确…

    2025年12月23日
    000
  • html文档中含有java怎么运行_html含java运行方法【教程】

    现代浏览器不支持Java Applet,推荐通过JavaScript调用Java后端服务或使用WebAssembly运行Java代码。 如果您在HTML文档中嵌入了Java代码,但发现无法正常运行,这通常是因为现代浏览器不再支持Java小程序(Applet)或相关插件。以下是几种实现HTML中Jav…

    2025年12月23日
    000
  • 怎么运行html的applet小程序_运行html applet小程序步骤【指南】

    现代浏览器已不再默认支持Java Applet,需通过安装JRE、启用插件、使用支持NPAPI的旧版浏览器(如Firefox 52.9 ESR)、调整Java安全级别至中,并将网站添加到例外站点列表方可运行。 如果您在尝试运行HTML中的Applet小程序时遇到问题,可能是因为现代浏览器已不再默认支…

    2025年12月23日
    000
  • 使用BeautifulSoup和JSON有效抓取动态加载的网页表格数据

    本教程旨在解决使用BeautifulSoup抓取网页表格时,因数据动态加载导致部分内容缺失的问题。通过分析网页背后的API请求,直接获取并解析JSON数据源,再结合BeautifulSoup提取的HTML结构信息,最终实现完整且准确的数据抓取。文章将提供详细的代码示例和实现步骤。 理解网页动态内容与…

    2025年12月23日
    400
  • 解决BeautifulSoup爬取网页表格中动态内容缺失问题

    本文旨在解决使用BeautifulSoup爬取网页表格时,因部分数据通过JavaScript动态加载导致内容缺失的问题。通过详细分析Oracle云定价页面的案例,教程将指导读者如何识别并获取隐藏在JSON API中的动态数据,并将其与BeautifulSoup解析的静态HTML内容有效整合,最终构建…

    2025年12月23日
    000
  • Java GUI在Web部署中的挑战与现代解决方案

    本文旨在澄清Java Web Start(JWS)在Web页面内运行GUI的常见误解,指出JWS用于本地应用启动而非嵌入式Web GUI。文章将探讨JWS的局限性及其被Oracle弃用的原因,介绍OpenWebStart作为其开源替代方案,并重点推荐Vaadin Flow作为使用纯Java构建真正W…

    2025年12月22日
    000

发表回复

登录后才能评论
关注微信