Oracle AWR指南:配置与报告解读

版权申诉
0 下载量 63 浏览量 更新于2024-07-07 收藏 981KB PDF 举报
"Oracle AWR 教程" Oracle的Automatic Workload Repository (AWR) 是一个强大的性能监控工具,用于收集数据库的统计信息,并生成详细的性能报告。AWR 提供了对数据库工作负载的深入洞察,帮助DBA识别性能瓶颈和优化数据库性能。 1. AWR 的保存策略 AWR 快照(Snapshot)是其核心组成部分,它记录了数据库在特定时间点的统计信息。默认情况下,Oracle 每小时创建一个快照,并保留7天的数据。这可以通过查询 `dba_hist_wr_control` 表来查看,例如: ```sql select * from dba_hist_wr_control; ``` 结果显示 DBID、SNAP_INTERVAL(快照间隔)、RETENTION(保留时间)和 TOPNSQL 等信息。 2. 调整 AWR 配置 AWR 的配置可通过 `dbms_workload_repository` 包进行修改。例如,你可以调整快照的收集频率和保留时间,如将快照间隔改为30分钟,保留时间为5天: ```sql exec(dbms_workload_repository.interval => 30, retention => 5*24*60); ``` 若要关闭 AWR,可以将 interval 设置为0,停止自动捕捉快照。手动创建快照: ```sql exec(dbms_workload_repository.dbms_workload_repository_awr_start_snap()); ``` 查看快照信息: ```sql select * from $_active_session_history; ``` 删除指定范围的快照: ```sql exec(dbms_workload_repository.awr_delete_snap(low_snap_id => 22, high_snap_id => 32, dbid => 47)); ``` 创建和删除基线(Baseline)以比较不同时间段的性能: ```sql exec(dbms_workload_repository.awr_create_baseline(56, 59, 'apply_interest_1')); exec(dbms_workload_repository.awr_drop_baseline(baseline_name => 'apply_interest_1', cascade => FALSE)); ``` 3. 生成 AWR 报告 AWR 报告提供了丰富的数据库性能分析信息。你可以通过 `$ORACLE_HOME/rdbms/admin` 目录下的脚本 `awrrpt.sql` 或 `awrrpti.sql` 来生成报告。报告包括数据库 ID(DBId)、实例信息、版本、是否为RAC环境、主机名、CPU信息等。例如,报告中会显示开始和结束快照的ID、时间、会话数、游标/会话比率以及 `DBTime` 和 `Elapsed` 时间,后者用于分析数据库活动与空闲时间的比例。 `DBTime` 是数据库实际处理用户和后台进程工作的时间,不包括Oracle后台进程消耗的时间。如果 `DBTime` 明显小于 `Elapsed` 时间,可能意味着数据库在大部分时间处于空闲状态。此外,报告还会提供关于系统逻辑CPU和物理CPU的细节,帮助分析系统资源的使用情况。 总结来说,Oracle AWR 是一个强大的性能诊断工具,通过调整其配置、收集和分析快照,以及生成报告,DBA 可以有效地监控和优化数据库性能,确保系统的稳定运行。