如何创建 Oracle 自动工作负载信息库 (AWR) 报告?

Posted

技术标签:

【中文标题】如何创建 Oracle 自动工作负载信息库 (AWR) 报告?【英文标题】:How do you create an Oracle Automatic Workload Repository (AWR) report? 【发布时间】:2017-06-02 18:09:28 【问题描述】:

【问题讨论】:

【参考方案1】:

要生成 AWR 报告,请按照以下步骤操作:

    开始快照 id

    设置服务器输出; 宣布 v_snap_id 编号; 开始 v_snap_id := DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT; dbms_output.put_line(v_snap_id); 结尾; /

    运行您的批处理或您要监控的程序。

    获取结束快照 ID

    设置服务器输出; 宣布 v_snap_id 编号; 开始 v_snap_id := DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT; dbms_output.put_line(v_snap_id); 结尾; /

    转到 oracle 目录。例如就我而言

    cd C:\oracle\app\oracle\product\11.2.0\server\rdbms\admin

    转到 sqlplus 提示

    sqlplus dbusername/dbpassword@host:port/dbenv

    运行@awrrpt命令

    会询问报告的格式,默认为html

    如果您不记得自己的 snap id,请提供天数

    输入开始快照

    输入结束快照

    提供报告名称并按 Enter 键

您的报告将在“管理员”中生成,例如就我而言

C:\oracle\app\oracle\product\11.2.0\server\rdbms\admin

【讨论】:

【参考方案2】:

sqlplus 以 DBA 用户身份进入 Oracle。运行报表sql。回答报告提示的问题以缩小时间段

sqlplus / as sysdba
@$ORACLE_HOME/rdbms/admin/awrrpt.sql

脚本会询问您一些问题,以便您获得您感兴趣的时间段的报告。

【讨论】:

【参考方案3】:

您可以使用dbms_workload_repository 包而无需登录服务器本身。

对于文本报告,请使用例如:

select output 
from table(dbms_workload_repository.awr_report_text(1557521192, 1, 5390, 5392);

或者要获取 HTML 报告,请改用 awr_report_text()

第一个参数是DBID,可以使用:

select dbid from v$database

第二个是实例编号。仅与 RAC 环境相关。

最后两个参数是开始和结束快照的ID。可以使用以下方式获取可用的快照:

select snap_id,
       begin_interval_time
       end_interval_time
from dba_hist_snapshot
order by begin_interval_time desc;

特别是对于返回 CLOB 的 HTML 返回,您必须配置您的 SQL 客户端以正确显示输出。在 SQL*Plus 中,您将使用 set long

【讨论】:

以上是关于如何创建 Oracle 自动工作负载信息库 (AWR) 报告?的主要内容,如果未能解决你的问题,请参考以下文章

Oracle AWR管理与维护

自动化数据库负载测试

Oracle自动统计信息的收集原理及实验

当同一个实例组位于两个不同的负载均衡器后面时,速率限制将如何工作

如何对oracle数据库进行监控检查

AWR报告