如何用Linux快速生成AWR报告?

在Linux环境下进行数据库性能调优时,AWR(Automatic Workload Repository)报告是不可或缺的工具,AWR报告由Oracle数据库自动生成,提供了详细的系统性能数据,包括负载概况、SQL执行统计、等待事件分析等,帮助DBA快速定位性能瓶颈,本文将详细介绍在Linux系统中生成AWR报告的完整流程、关键步骤及注意事项,并辅以实例说明,确保内容清晰易懂且实用。

awr报告生成linux

AWR报告生成的前提条件

在Linux系统中生成AWR报告前,需满足以下基本条件:

  1. 数据库版本:Oracle Database 10g Release 2(10.2)或更高版本。
  2. 权限配置:用户需具有DBA角色或SELECT_CATALOG_ROLE角色权限,否则无法访问AWR数据字典视图。
  3. AWR数据保留:确保数据库的retention参数设置合理,默认为7天,可通过DBA_HIST_WR_CONTROL视图检查。

生成AWR报告的两种方式

使用Oracle SQL*Plus直接生成

通过SQL*Plus连接数据库后,调用DBMS_WORKLOAD_REPOSITORY包中的AWR_REPORT_HTML或AWR_REPORT_TEXT函数生成报告,以下是HTML格式报告的示例脚本:

SET LONG 1000000
SET PAGESIZE 0
SET LINESIZE 1000
SELECT 
    DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(
        l_dbid => 1234567890,
        l_inst_num => 1,
        l_bid => 1000,
        l_eid => 2000
    ) AS awr_report
FROM dual;

执行后,将输出结果保存为.html文件,用浏览器打开即可查看。

使用Oracle Enterprise Manager(OEM)

对于不熟悉SQL的用户,可通过OEM图形化界面生成AWR报告:

awr报告生成linux

  1. 登录OEM控制台,进入“性能”菜单。
  2. 选择“AWR报告”选项,指定报告的起始和结束时间。
  3. 点击“生成报告”,系统将自动生成并下载HTML或PDF格式文件。

自动化AWR报告生成的脚本实践

在Linux环境中,可通过Shell脚本结合SQL*Plus实现自动化报告生成,以下是一个示例脚本:

#!/bin/bash
# 定义数据库连接信息
ORACLE_SID="ORCL"
ORACLE_USER="sys/oracle as sysdba"
OUTPUT_DIR="/home/oracle/awr_reports"
DATE=$(date +%Y%m%d_%H%M%S)
# 创建输出目录
mkdir -p $OUTPUT_DIR
# 生成AWR报告
sqlplus -s $ORACLE_USER <<EOF
SET LONG 1000000
SET PAGESIZE 0
SET LINESIZE 1000
SPOOL $OUTPUT_DIR/awr_report_${DATE}.html
SELECT DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(
    l_dbid => (SELECT dbid FROM v$database),
    l_inst_num => 1,
    l_bid => (SELECT MIN(snap_id) FROM dba_hist_snapshot WHERE end_time >= SYSDATE-1),
    l_eid => (SELECT MAX(snap_id) FROM dba_hist_snapshot WHERE end_time <= SYSDATE)
) FROM dual;
SPOOL OFF
EXIT;
EOF
echo "AWR report generated at $OUTPUT_DIR/awr_report_${DATE}.html"

将脚本保存为generate_awr.sh,赋予执行权限后运行即可。

AWR报告关键指标解读

AWR报告包含多个章节,以下为常见核心指标及分析要点:

指标类别 关键指标 分析要点
负载概况 DB Time 若接近或超过数据库运行时间,表明存在严重性能瓶颈。
SQL执行统计 Executions/s 高频执行的SQL需重点关注,尤其是逻辑读较高的语句。
等待事件 Top 5 Wait Events 关注“db file sequential read”等I/O相关事件,可能涉及索引优化问题。
实例效率 Soft Parse % 若低于95%,需减少硬解析,绑定变量或增加共享池大小。

常见问题及解决方案

  1. 问题:生成AWR报告时提示“insufficient privileges”。
    解决:确保用户具有DBA角色,或授予SELECT ANY DICTIONARY权限。

    awr报告生成linux

  2. 问题:AWR报告显示“no data found”。
    解决:检查retention参数是否过短,或指定的时间范围内无快照数据。

相关问答FAQs

Q1:如何调整AWR报告的保留时间?
A1:可通过DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS包修改,例如将保留期设置为30天:

EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(
    retention => 30*24*60  -- 30天(分钟)
);

Q2:能否将AWR报告导出为CSV格式?
A2:AWR报告本身不直接支持CSV,但可通过解析HTML中的表格或使用DBA_HIST_*视图导出数据,再借助外部工具(如Python的Pandas库)转换为CSV格式。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/62030.html

赞 (0)
酷番叔酷番叔
上一篇 2025年11月28日 22:12
下一篇 2025年11月28日 22:19

相关推荐

  • 国内云计算教育应用,哪家平台更胜一筹?

    阿里云凭借完善的教育生态和广泛的校企合作,在国内云计算教育应用领域处于领先地位。

    2026年2月6日
    24800
  • 国内CDN双十一促销,哪些优惠活动最划算?

    阿里云、腾讯云的新用户特惠流量包最划算,通常几十元可购数百GB,老用户也有折扣。

    2026年2月26日
    16300
  • 如何查看当前 PS1 定义?

    问题现象描述:当您在 CentOS 7 系统的终端中,发现命令行提示符末尾出现异常的 后 字符(如 [user@host ~]后),这通常是由于 环境变量 PS1(主提示符字符串)被意外修改 导致的,PS1 控制着命令行的显示格式,错误配置会引发此类显示异常,原因分析PS1 变量污染:用户或程序修改了 PS1……

    2025年8月9日
    28400
  • 安全态势感知平台哪个好?

    在数字化时代,网络安全威胁日益复杂多变,企业亟需通过安全态势感知平台实现对全网安全风险的实时监控、智能分析和主动预警,面对市场上琳琅满目的产品,如何选择适合自身需求的安全态势感知平台成为关键,本文将从核心能力、技术架构、适配场景等维度,分析优质安全态势感知平台应具备的特质,并对比主流产品的特点,为企业提供选型参……

    2025年11月24日
    36600
  • 如何快速提升网站流量?

    在Linux系统中,su命令(全称”Switch User”)是管理员和高级用户进行账户切换的核心工具,它允许在不注销当前会话的情况下临时或长期切换到其他用户身份,尤其在多用户环境或系统维护中至关重要,以下是详细操作指南:su – 目标用户名示例:切换到用户johnsu – john关键参数: 或 -l:加载目……

    2025年7月12日
    25700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信