AWR 深入分析( Automatic Workload Repository )
Automatic Workload Repository 是 10g 引入的一个重要组件
存贮着近期一段时间内数据库活动状态的详细信息、信息保留默认是7天
AWR 的前身是 Statspack、而 Statspack 是公开源代码的
因此,关于Statspack的资料,还有Statspack的源代码,都是理解AWR的一个有用的辅助
AWR 者、乃 sys 拥有、粒度为快照、存于 sysaux 表空间也
什么是快照?
快照是在特定时间捕获并存储在 AWR 中的一组性能统计信息
快照用于计算统计信息的更改率
如何标识快照?
每个快照都用一个快照序列号 (snap_id) 进行标识,该序列号在 AWR 中是唯一的
如何修改快照?
默认情况下,快照每 60 分钟生成一次
通过更改快照 INTERVAL 参数可以调整此频率
但调整间隔设置可能会影响诊断精确度
例如,如果将 INTERVAL 设置为 4 小时,则可能会遗漏在 60 分钟间隔内出现的峰值
用 DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS 存储过程或 Database Control 来更改控制快照收集的设置
在 Database Control 中:
“Administration”→“Statistics Management”→“Automatic Workload Repository”→“Edit”
怎样创建快照?
使用 Database Control 或 DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT
支持手动获取快照的同时,也支持系统生成的自动快照
如果希望在与自动计划不一致的两个特定时间点捕获系统行为,则需要使用手动快照
什么是基线?
Baseline、简言之、便是参照标准
一个快照集定义为一对快照、每条基线对应于一对(且仅对应于一对)快照
基线用于保留快照数据、因此、属于基线的快照在删除基线之前一直保留
如何标识一条基线?
基线既可通过用户提供的名称进行标识,也可用系统生成的标识符进行区分
基线标识符在数据库的生命周期中是唯一的
怎样创建一条基线?
使用 Database Control 或执行 DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE
什么时候创建一条基线?
通常,在过去某些有代表性的时段中设置快照集,以用于与当前系统行为进行比较
AWR 报告所有的数据来源于 AWR 视图,即以 DBA_HIST_ 开头的所有系统表
而如何有效地去分析 AWR 报告,这可能更需要 DBA 经验的日积月累