zoukankan      html  css  js  c++  java
  • 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));

    结果如下:

    wpsD41A.tmp

    将以上结果复制出来,赞贴到txt文档下保存退出后,修改文本文档扩展名为html:

    wpsD41B.tmp

    wpsD41C.tmp保存后,双击打开即得到awr报告。

    wpsD41D.tmp

    附加:

    dbms_workload_repository.awr_report_text函数生成的报告直接粘贴到txt文档即可,不需要修改扩展名。

  • 相关阅读:
    sujection重构
    serialize存入数组
    migration integer limit option
    FineReport——FS
    Oracle事务处理
    FineReport——发送邮件
    FineReport——登录不到决策系统
    FineReport——JS二次开发(复选框全选)
    FineReport——JS二次开发(局部刷新)
    FineReport——JS二次开发(工具栏按钮事件及说明)
  • 原文地址:https://www.cnblogs.com/wcwen1990/p/6656714.html
Copyright © 2011-2022 走看看