ORACLE AWR(AWR、SNAPSHOT、BASELINE)
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,1. AWR是什么?AWR(Automatic Workload Repository)是存放oracle数据库历史性能数据的信息库,包含系统、session、SQL等大量的统计数据,存放在SYSAU
千家信息网最后更新 2025年01月20日ORACLE AWR(AWR、SNAPSHOT、BASELINE)
最新的AWR信息存放在SGA中,默认MMON进程每隔一小时启动slave进程m00x创建AWR snapshot,将数据保存在SYSAUX表空间。
2. 如何管理AWR?
2.1 启用AWR
设置STATISTICS_LEVEL为TYPICAL或者ALL。
如果STATISTICS_LEVEL为BASIC,AWR功能不会启用,但是可以通过使用DBMS_WORKLOAD_REPOSITORY包手工抓取AWR统计数据。
2.2 管理snapshot
2.2.1 关于snapshot
AWR的数据是通过snapshot获取的。快照就是某一时刻系统的状态。默认情况,数据库1小时收集一次snapshot,并在WR(Workload Repository)中保留8天(11g之后)。当然也可以手动创建和删除snapshot,主要使用DBMS_WORKLOAD_REPOSITORY包实现。
2.2.2 创建snapshot
执行DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT()生成新的snapshot,通过DBA_HIST_SNAPSHOT视图可以查看已经存在的snapshot。
2. moving window baselines 移动窗口基线包含AWR retention内的所有AWR数据,即由保留期内的所有快照生成。这对于自适应阈值有用,因为这样数据库可以使用AWR保留期内的所有数据来计算阈值。 oracle自动维护移动窗口基线,默认窗口大小为当前AWR保留期。窗口大小可以重置,但必须小于等于AWR保留期,如果要增大移动窗口,AWR保留期也必须相应增大。所以,在使用自适应阈值时,可以设置为30天,以获得更准确的阈值。
3. baseline templates 所谓基线模板,就是以后的基线都根据模板的配置生成,比如指定未来某个时间段,或者未来某个时期内的每周一的10:00-11:00。基线模板又分为单一基线模板(产生一次基线)、重复基线模板(产生多次基线)。 单一基线模板的例子:下周六09:00-11:00做测试,创建单一基线模板,到时自动收集AWR数据。 重复基线模板的例子:未来3个月每周周一上午09:00-11:00创建1个baseline。
1. AWR是什么?
AWR(Automatic Workload Repository)是存放oracle数据库历史性能数据的信息库,包含系统、session、SQL等大量的统计数据,存放在SYSAUX表空间里,信息库包含很多表,都是以"WR"开头:WR元数据(WRM$),历史、可变数据(WRH$、WRR$和WRI$),顾问(advisor)功能相关的AWR表(WRI$)。另外,还可以通过DBA_HIST开头的视图访问AWR数据。最新的AWR信息存放在SGA中,默认MMON进程每隔一小时启动slave进程m00x创建AWR snapshot,将数据保存在SYSAUX表空间。
2. 如何管理AWR?
2.1 启用AWR
设置STATISTICS_LEVEL为TYPICAL或者ALL。如果STATISTICS_LEVEL为BASIC,AWR功能不会启用,但是可以通过使用DBMS_WORKLOAD_REPOSITORY包手工抓取AWR统计数据。
2.2 管理snapshot
2.2.1 关于snapshot
AWR的数据是通过snapshot获取的。快照就是某一时刻系统的状态。默认情况,数据库1小时收集一次snapshot,并在WR(Workload Repository)中保留8天(11g之后)。当然也可以手动创建和删除snapshot,主要使用DBMS_WORKLOAD_REPOSITORY包实现。2.2.2 创建snapshot
执行DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT()生成新的snapshot,通过DBA_HIST_SNAPSHOT视图可以查看已经存在的snapshot。- BEGIN
- DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
- END;
- /
2.2.3 删除snapshot
默认情况,AWR中的snapshot超过8天后会自动删除,但也可以手动删除,如下:- BEGIN
- DBMS_WORKLOAD_REPOSITORY.DROP_SNAPSHOT_RANGE(
- low_snap_id => 22,
- high_snap_id => 32,
- dbid => 3310949047);
- END;
- /
2.2.4 修改snapshot设置
可以修改产生快照的时间间隔、保留期限、Top Sql的数量(interval、retention、topnsql),同时注意,修改后会影响oracle诊断工具的精度。如果要设置保留30天(43200分钟)、间隔30分钟、topsql取前100,如下所示:- BEGIN
- DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
- retention => 43200,
- interval => 30,
- topnsql => 100,
- dbid => 3310949047);
- END;
- /
- SQL> select snap_interval, retention from DBA_HIST_WR_CONTROL;
- SNAP_INTERVAL RETENTION
- ---------------------------------------
- +00000 01:00:00.0 +00008 00:00:00.0
2.3 管理baseline
2.3.1 关于baseline
baseline是一段特定时间内的snapshot的集合,当异常发生时,使用异常时间段的snapshot和baseline进行对比。baseline中的snapshot不受AWR retention的限制。2.3.2 三类baseline
1.fixed baselines
固定基线就是由一段连续的固定的时间段内的快照生成的基线,所以选取的时间段应该是系统最优时段,代表系统最优水平,来作为性能对比的基准。2. moving window baselines 移动窗口基线包含AWR retention内的所有AWR数据,即由保留期内的所有快照生成。这对于自适应阈值有用,因为这样数据库可以使用AWR保留期内的所有数据来计算阈值。 oracle自动维护移动窗口基线,默认窗口大小为当前AWR保留期。窗口大小可以重置,但必须小于等于AWR保留期,如果要增大移动窗口,AWR保留期也必须相应增大。所以,在使用自适应阈值时,可以设置为30天,以获得更准确的阈值。
3. baseline templates 所谓基线模板,就是以后的基线都根据模板的配置生成,比如指定未来某个时间段,或者未来某个时期内的每周一的10:00-11:00。基线模板又分为单一基线模板(产生一次基线)、重复基线模板(产生多次基线)。 单一基线模板的例子:下周六09:00-11:00做测试,创建单一基线模板,到时自动收集AWR数据。 重复基线模板的例子:未来3个月每周周一上午09:00-11:00创建1个baseline。
2.3.3 创建baseline
默认情况,oracle自动维护移动窗口基线,我们可以手工创建固定基线。如下。snap_id可以从DBA_HIST_SNAPSHOT视图中选取。- BEGIN
- DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE (
- start_snap_id => 270,
- end_snap_id => 280,
- baseline_name => 'peak baseline',
- dbid => 3310949047,
- expiration => 30);
- END;
- /
2.3.4 删除baseline
为了节约磁盘空间,可以手工删除baseline,已经生成的baseline可以通过DBA_HIST_BASELINE视图查看。下面例子中删除peak baseline,保留相应的snapshot,如果要删除相关的snapshot,设置cascade为true。- BEGIN
- DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE (baseline_name => 'peak baseline',
- cascade => FALSE,
- dbid => 3310949047);
- END;
- /
2.3.5 重命名baseline
- BEGIN
- DBMS_WORKLOAD_REPOSITORY.RENAME_BASELINE (old_baseline_name => 'peak baseline',
- new_baseline_name => 'peak mondays',
- dbid => 3310949047);
- END;
- /
2.3.6 重置移动窗口基线窗口大小
移动窗口基线默认窗口大小与AWR保留期限相同,但也可以修改,但是不能超过AWR保留期限。下面例子将窗口设置为30天。- BEGIN
- DBMS_WORKLOAD_REPOSITORY.MODIFY_BASELINE_WINDOW_SIZE (window_size => 30,
- dbid => 3310949047);
- END;
- /
2.3.7 创建单一基线模板
下面的例子比较简单,不做说明了。- BEGIN
- DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (
- start_time => to_date('2018-07-02 17:00:00','yyyy-mm-dd hh34:mi:ss'),
- end_time => to_date('2018-07-02 20:00:00','yyyy-mm-dd hh34:mi:ss'),
- baseline_name => 'baseline_180702',
- template_name => 'template_180702',
- expiration => 30,
- dbid => 3310949047);
- END;
- /
2.3.8 创建重复基线模板
下面的例子是从2018年7月2日17点开始,每周周一的17点至20点(duration=3)创建一个baseline,2018年12月02日20点template结束,不再创建以此为模板的baseline,创建的baseline失效期为30天。- BEGIN
- DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE_TEMPLATE (
- day_of_week => 'monday',
- hour_in_day => 17,
- duration => 3, expiration => 30,
- start_time => to_date('2018-07-02 17:00:00','yyyy-mm-dd hh34:mi:ss'),
- end_time => to_date('2018-12-02 20:00:00','yyyy-mm-dd hh34:mi:ss'),
- baseline_name_prefix => 'baseline_2018_mondays_',
- template_name => 'template_2018_mondays',
- dbid => 3310949047);
- END;
- /
2.3.9 删除基线模板
基线模板名字可以冲DBA_HIST_BASELINE_TEMPLATE视图中选取。- BEGIN
- DBMS_WORKLOAD_REPOSITORY.DROP_BASELINE_TEMPLATE (
- template_name => 'template_180702',
- dbid => 3310949047);
- END;
- /
3. AWR报告是什么?
AWR报告就是利用两个snapshot来生成的一份数据库性能报告,包含的时两个snapshot之间的统计数据。当数据库出现性能问题时,可以用AWR报告进行分析定位。 生成不同AWR报告的脚本:本实例AWR报告 | @?/rdbms/admin/awrrpt |
RAC中选择实例号 | @?/rdbms/admin/awrrpti |
AWR 比对报告 | @?/rdbms/admin/awrddrpt |
RAC全局AWR报告 | @?/rdbms/admin/awrgrpt |
Reference:https://docs.oracle.com/en/database/oracle/oracle-database/18/tgdba/gathering-database-statistics.html#GUID-CBB1716F-2B20-4575-ADCE-94E33BEA53EF
基线
数据
模板
报告
生成
例子
时间
视图
移动
保留期
数据库
大小
快照
性能
时间段
系统
阈值
信息
可以通过
就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
界网络技术有限公司
上海童颜网络技术有限公司
数据库技术的俩大发展方向
软件开发技术文档背景图
江西物速达网络技术有限公司
qq怎么找回删除的数据库
深圳银河证券软件开发
计算机网络技术专接本考多少
去向助手window服务器
购物车订单退出数据库
网络安全建设新思路
赣州网络技术推广
服务器cpu有哪些品牌
网络安全管理办法编制背景
天涯网络安全教育
应届生软件开发与咨询顾问
性能数据库隔多久更新一次
运用数据库集群技术
slb可以设置数据库吗
国税局贯彻网络安全法
365网络安全知识
河南虢安网络技术服务
腾讯云轻量服务器登陆密码
计算机网络技术是学编程
App软件开发原理
网络安全管理办法编制背景
服务器认证失败后怎么办
txt文件写入数据库实时更新
涿州软件开发工资
数据库升迁什么意思