Oracle AWR 之 通过dbms_workload_repository.awr_report_text(html)函数在客户端生成AWR报告
1、概述
一般情况下,awr报告都是通过在oracle服务器的sqlplus窗口调用$ORACLE_HOME/rdbms/admin/awrrpt.sql脚本生成报告。方法如下:
[oracle@localhost ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Tue Mar 15 17:21:54 2016 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> @?/rdbms/admin/awrrpt.sql --其中?为ORACLE_HOME目录简写 |
2、条件
在客户端通过dbms_workload_repository.awr_report_text/html函数来生成awr报告一般适用于无法通过操作系统远程登录到oracle服务器的情况下,生成awr报告需要登录用户具有dba权限或相应权限并且可以通过客户端登录到远程oracle服务器。
3、dbms_workload_repository.awr_report_text/html方法介绍
1)dbms_workload_repository.awr_report_html(l_dbid => 1431923185, --数据库dbid
l_inst_num => 1, --数据库实例id(单实例一般为1)
l_bid => 623, --开始快照号
l_eid => 624 ) --结束快照号
2)dbms_workload_repository.awr_report_text(l_dbid => 1431923185, --数据库dbid
l_inst_num => 1, --数据库实例id(单实例一般为1)
l_bid => 623, --开始快照号
l_eid => 624 ) --结束快照号
4、pl/sql developer上生成awr报告的实现方法
1)根据步骤3的方法说明,在相应权限满足条件下,我们要在pl/sql developer上生成awr报告需要取得如下几个参数值:dbid、instance_number、开始快照号,结束快照号。
2)取得数据库dbid值,可以通过v$database视图取得,如下:
SQL> select dbid from v$database;
DBID
----------
1431923185
3)取得instance_number可以通过v$instance视图获得,如下:
SQL> select instance_number from v$instance;
INSTANCE_NUMBER
---------------------------------
1
4)取得“开始快照号”和“结束快照号”可以通过dba_hist_snatshop视图获得,如下:
select t.snap_id as 快照id,
t.dbid as dbid,
t.instance_number as instance_number,
to_char(t.begin_interval_time, 'yyyy-mm-dd hh24:mi:ss') "快照开始时间",
to_char(t.end_interval_time, 'yyyy-mm-dd hh24:mi:ss') as "快照结束时间"
from dba_hist_snapshot t
order by snap_id;
快照id dbid instance_number 快照开始时间 快照结束时间
------------- ------------- --------------------------- -------------------------- ---------------------------
416 1431923185 1 2016-03-06 22:00:11 2016-03-06 23:00:13
417 1431923185 1 2016-03-06 23:00:13 2016-03-07 00:00:16
418 1431923185 1 2016-03-07 00:00:16 2016-03-07 01:00:18
419 1431923185 1 2016-03-07 01:00:18 2016-03-07 02:00:21
420 1431923185 1 2016-03-07 02:00:21 2016-03-07 03:00:23
421 1431923185 1 2016-03-07 03:00:23 2016-03-07 04:00:25
422 1431923185 1 2016-03-07 04:00:25 2016-03-07 05:00:28
423 1431923185 1 2016-03-07 05:00:28 2016-03-07 06:00:30
424 1431923185 1 2016-03-07 06:00:30 2016-03-07 07:00:32
425 1431923185 1 2016-03-07 07:00:32 2016-03-07 08:00:35
至此,我们已经取得了客户端生成awr报告的所有参数值,接下来我们就可以通过运行函数生成awr报告了。
5)执行存储过程生成awr报告(取快照号418为开始快照号,419为结束快照号):
脚本:
select output
from table(dbms_workload_repository.awr_report_html(l_dbid => 1431923185,
l_inst_num => 1,
l_bid => 418,
l_eid => 419));
结果如下:
将以上结果复制出来,赞贴到txt文档下保存退出后,修改文本文档扩展名为html:
附加:
dbms_workload_repository.awr_report_text函数生成的报告直接粘贴到txt文档即可,不需要修改扩展名。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了