前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【DB笔试面试819】在Oracle中,什么是AWR?

【DB笔试面试819】在Oracle中,什么是AWR?

作者头像
AiDBA宝典
发布2020-06-17 15:17:12
1.6K0
发布2020-06-17 15:17:12
举报
文章被收录于专栏:小麦苗的DB宝专栏

题目部分

【DB笔试面试819】在Oracle中,什么是AWR?

答案部分

ASH(Active Session History,活动会话历史信息)、AWR(Automatic Workload Repository,自动负载信息库)、ADDM(Automatic Database Diagnostic Monitor,数据库自动诊断监视工具)是Oracle性能调整的三把利剑,需要深入地了解,但是面试一般都问得比较简单,主要问到的是AWR。

Oracle性能调整最重要的就是对最影响性能的SQL的调整。在一个应用中,能够影响到数据库的只有SQL,也只能是SQL。系统不能一味地依靠增强硬件、修改系统、数据库参数来提高数据库的性能,更多的应该关注那些最影响性能的SQL语句。ASH报告、AWR报告和ADDM报告都是能够找出影响性能SQL的工具。在分析ASH报告、AWR报告和ADDM报告的时候,最重要的工作就是找出对性能影响最大的SQL语句,并对其进行优化。

AWR(Automatic Workload Repository,自动负载信息库)是Oracle 10g引入的一个重要组件。在AWR里面存储着近一段时间内(Oracle 10g默认是7天,Oracle 11g及其之后的版本默认是8天)数据库活动状态的详细信息。

AWR报告是对AWR视图进行查询而得到的一份自动生成的报告,它用于显示两个快照或者两个时间点之间捕捉到的数据。AWR报告其实就是一张数据库健康体检表,它显示了数据库健康的各项指标。通过AWR报告,DBA可以容易地获知数据库最近的活动状态,数据库的各种性能指标的变化趋势曲线,数据库最近可能存在的异常,分析数据库可能存在的性能瓶颈,从而对数据库进行优化。AWR使用几个表来存储采集的统计数据,所有的表都存储在新的名称为SYSAUX的特定表空间中的SYS模式下,并且以WRM_*和WRH_*的格式命名。前一种类型存储元数据信息(如检查的数据库和采集的快照),后一种类型保存实际采集的统计数据。H代表“历史数据(Historical)”,M代表“元数据(Metadata)”。在这些表上构建了几种带前缀DBA_HIST_*的视图,这些视图可以用来编写自己的性能诊断工具。视图的名称直接与表相关;例如,视图DBA_HIST_SYSMETRIC_SUMMARY是在WRH

AWR的前身是Statspack,Statspack在Oracle 10g和Oracle 11g中也有提供,同时和AWR一起做了同步更新,而且Statspack是公开源代码的,因此,关于Statspack的资料和源代码,都是理解AWR的一个有用的辅助工具。

AWR主要是由MMON(Manageability Monitor Process,可管理性监视器进程)和它的slave进程(Mnnn)来维护的。MMON执行很多关于AWR的任务,和各种与可管理性相关的后台任务,具体包括以下功能:

(1)启动slave进程Mnnn去做AWR快照。

(2)当某个测量值(metrics)超过了其度量阀值(threshold value)时发出alert告警。

(3)为最近改变过的SQL对象捕获指标信息。

若系统不能自动生成AWR快照,则可以从以下几个方面去检查:

① 参数STATISTICS_LEVEL的值必须设置为TYPICAL或者ALL。

② 在“SELECT SNAP_INTERVAL FROM DBA_HIST_WR_CONTROL;”的查询结果中,SNAP_INTERVAL的值不能无穷大,一般为1小时,可以通过执行如下的SQL语句来修改自动生成AWR快照的时间间隔:EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(INTERVAL => 60);。

③ 在SQL语句“SELECT D.INSTANCE_NUMBER, (SYSDATE - D.END_INTERVAL_TIME) INTERVAL FROM DBA_HIST_SNAPSHOT D WHERE D.SNAP_ID = (SELECT MAX(SNAP_ID) FROM DBA_HIST_SNAPSHOT);”的查询结果中,INTERVAL列的值需大于0,若小于0,则可以手动生成几次快照来解决这个问题,SQL语句为:EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();。需要注意的是,在RAC环境下该命令会对数据库的所有节点都生成一次快照。

④ 检查MMON进程是否HANG住,若MMON进程HANG住,则AWR不可用。

真题1、You have set Tablespace Full Metrics Threshold values for the USERS tablespace as follows:

Warning (%):90

Critical (%):95

Which background process is responsible for issuing alerts when the threshold is crossed?

A、System monitor (SMON)

B、Process monitor (PMON)

C、Memory manager process (MMAN)

D、Manageability Monitor process (MMON)

答案:D。

题目说为USERS表空间设置了阀值,问的是当到达阀值之后哪个后台进程会发出alert告警。

本题中,对于选项A,SMON的作用是检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复。所以,选项A错误。

对于选项B,PMON的作用是负责在一个Oracle进程失败时清理资源。所以,选项B错误。

对于选项C,MMAN的作用是协调内存各组成部分的大小。所以,选项C错误。

对于选项D,MMON的作用有:(1)启动slave进程Mnnn去做AWR快照;(2)当某个测量值(metrics)超过了其度量阀值(threshold value)时发出alert告警;(3)为最近改变过的SQL对象捕获指标信息。所以,选项D正确。

所以,本题的答案为D。

本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档