暂无图片
暂无图片
2
暂无图片
暂无图片
暂无图片

【每日一练 077】数据库维护-AWR

原创 李美静 恩墨学院 2020-11-11
1587

1 AWR概览

image.png
AWR是向Oracle数据库组件提供服务的基础设施,用于收集、维护和使用统计信息来检测问题和自调优。可以将其视为一个用于数据库统计、度量等的数据仓库。
默认情况下,数据库每隔60分钟自动从SGA捕获统计信息,并将其以快照的形式存储在AWR中。这些快照由一个名为可管理性监视器(MMON)的后台进程存储在磁盘上。默认情况下,快照将保留8天。可以同时修改快照间隔和保留间隔。
AWR包含数百个表,它们都属于SYS模式并存储在SYSAUX表空间中。Oracle建议仅通过Enterprise Manager或DBMS_WORKLOAD_REPOSITORY包访问存储库,以便使用AWR。不支持针对存储库表的直接数据操作语言(DML)命令。

2 AWR工作原理

image.png
AWR基础设施主要由两部分组成:
内存中的统计信息收集工具,由Oracle数据库组件用于收集统计信息。由于性能原因,这些统计信息存储在内存中。可以通过动态性能(V$)视图访问存储在内存中的统计信息。
持久存储起来生成AWR快照。可以通过数据字典视图和企业管理器访问AWR快照。
统计数据持久性存储有以下几个原因:
统计数据需要在实例崩溃时仍然存在。
有些分析需要历史数据进行基线比较。
可能会发生内存溢出。当由于内存不足而将旧的统计数据替换为新的统计数据时,可以存储被替换了的数据供以后使用。
统计信息的内存信息由MMON后台进程定期传输到磁盘。通过使用AWR, Oracle数据库服务器提供了一种无需DBA干预而自动捕获历史统计数据的方法。

3 AWR生成规则及内容

image.png
自动工作负载存储库(AWR)是SYS拥有的持久系统性能统计数据的集合。AWR位于SYSAUX表空间中。
快照是在特定时间捕获并存储在AWR中的一组性能统计信息。每个快照由一个快照序列号(SNAP_ID)标识,该序列号在AWR中是惟一的。默认情况下,快照每60分钟生成一次。可以通过更改快照间隔参数来调整此频率。由于数据库顾问依赖于这些快照,因此请注意,调整时间间隔设置可能会影响诊断精度。例如,如果将间隔设置为4小时,可能会错过在60分钟间隔中可以注意到的瞬态事件。
可以使用DBMS_WORKLOAD_REPOSITORY。MODIFY_SNAPSHOT_SETTINGS存储过程或企业管理器来更改控制快照收集的设置。
可以使用Enterprise Manager或DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT存储过程。支持手动快照与系统生成的自动快照结合使用。当想要捕获与自动计划不一致的两个特定时间点上的系统行为时,需要使用手动快照。
Statspack是一个绑定的实用程序,它提供了AWR的集合和报告功能的一个子集。但是,不支持将Statspack数据迁移到工作负载存储库中的路径。另外,工作负载存储库与Statspack模式不兼容。Statspack不能通过企业管理器访问,它需要设置,没有自动保留设置或自动清除。Statspack实用程序确实提供了用于设置、自动快照收集和报告的脚本。Statspack快照可以标记为保留,作为Statspack基线的一部分,或者使用提供的脚本清除。
Statspack记录在$ORACLE_HOME/rdbms/admin/spdoc.txt文件中。

4 AWR基线

AWR基线是一组AWR快照。这通常是在某个重要时期保留的一组快照数据。基线是在一对快照上定义的;快照由它们的快照序号(SNAP_IDs)或开始和结束时间标识。每个快照集都有开始快照和结束快照,并包括两者之间的所有快照。快照集用于保留快照数据。因此,默认情况下,属于快照集的快照将被保留,直到删除快照集为止。可以指定过期值来指示快照将保留的天数。
基线由用户提供的名称标识。执行CREATE_BASELINE过程,从一组快照创建基线,并指定名称和一对快照标识符,并且在一个在数据库生命周期中将基线标识符分配给新创建的基线。通常,可以根据过去的代表性时期设置基线,以便与当前系统行为进行比较。还可以使用Enterprise Manager的基线来设置基于阈值的警报。可以使用此过程的expiration参数设置过期时间(以天数为单位)。默认值为NULL,表示“永不过期”。
可以直接从DBA_HIST_SNAPSHOT或从Enterprise Manager获得SNAP_IDs。具体信息可以查看DBMS_WORKLOAD_REPOSITORY 包。

5 AWR的管理

AWR设置包括保留期、收集间隔和收集级别。减少这些设置会影响依赖于AWR的组件(包括顾问器)的功能。
增加设置可以提供改进的advisor建议——但代价是存储快照所需的空间和收集快照信息所消耗的性能。
在调优新应用程序时,考虑将收集级别设置为ALL。ALL设置收集SQL执行计划和时间统计信息,以增强SQL advisor的建议。当调优完成时,该设置应该返回到典型设置。

6 统计信息的级别

STATISTICS_LEVEL初始化参数控制各种统计信息和各种顾问的捕获,包括自动维护任务。自动维护任务包括收集优化器统计信息。STATISTICS_LEVEL参数可以设置为以下级别:
BASIC:关闭了AWR统计和度量的计算。禁用了自动优化器统计任务,以及所有顾问和服务器生成的警报。
TYPICAL:收集数据库自我管理所需的主要统计信息。它们表示监视Oracle数据库行为通常需要的内容。这包括自动收集统计信息,以减少由于过时或无效的统计信息而导致SQL语句性能不佳的可能性。
ALL:捕获所有可能的统计数据。此级别的捕获添加了定时操作系统统计信息和计划执行统计信息。这些统计信息在大多数情况下是不需要的,不应该启用以获得最佳性能;它们有时需要用于特定的诊断测试。
Oracle建议为STATISTICS_LEVEL初始化参数设置TYPICAL的默认值。将该值设置为BASIC将禁用优化器统计信息的自动收集。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论