Oracle数据库的AWR(Automatic Workload Repository)是一个关键特性,它负责收集和维护一系列的历史性能数据。这些数据存储在SYSAUX表空间中,而AWR和SYSAUX功能都是从Oracle 10g版本开始引入的。AWR的主要作用是为数据库性能调优提供支持,其历史可以追溯到大约1999年左右,至今已有15年的发展历程。AWR的默认快照间隔为1小时,而在Oracle 10g中可以保存7天的数据,在Oracle 11g中则可保存8天的数据。当然,这些参数可以通过执行DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS过程来自定义,进而修改DBA_HIST_WR_CONTROL视图中的设置。
AWR的核心功能是由dbms_workload_repository包提供的。通过AWR报告,管理员可以生成不同类型的性能报告,例如AWR报告(awrrpt)、AWR基线报告(awrddrpt)、AWR比较报告(awrgrpt)和RAC全局AWR报告。这些报告能够帮助用户了解数据库的性能状况和资源使用情况。AWR的报告可以通过多种工具生成,包括命令行和HTML报告。
维护AWR数据的工作主要由MMON(Manageability Monitor Process)进程完成,以及它的辅助进程m00x。MMON的主要职责包括:
1. 启动slave进程m00x去执行AWR快照。
2. 当达到某个度量阈值时,MMON会发出alert告警。
3. 对于最近变更过的SQL对象,MMON会捕获其指标信息。
在性能调优的过程中,正确理解和分析AWR报告是至关重要的。AWR报告包括许多详细的指标,例如Latch Activity、Undo和Dynamic Resource Master等。这些指标对于调优来说至关重要,理解它们的原理有助于更深入地掌握数据库性能的瓶颈所在。然而,要充分理解这些指标,并不是一件简单的事情,需要结合大量的原理知识,这也是为什么在教学视频中会提到第三讲需要对相关原理有更深入的理解。
为了方便用户生成AWR报告,Oracle提供了相应的脚本工具,比如用于生成多个AWR报告的SQL脚本。此外,通过手动执行AWR快照的过程,用户可以更加灵活地控制报告的生成时机。具体命令如下:
Exec dbms_workload_repository.create_snapshot;
而创建AWR基线的命令如下:
Exec DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(start_snap_id, end_snap_id, baseline_name);
AWR报告的生成和分析对于数据库管理员而言是一项重要技能,有助于他们对数据库的健康状况和性能瓶颈进行诊断。通过对AWR报告的深入学习和实践,DBA可以更有效地调整数据库的工作负载,优化资源分配,从而提升整个系统的运行效率。
2026-05-19 17:25:59
1.02MB
报告、指标
1