直接了当获取系统负载报告(awr)

      以前获取系统报告时一直习惯了 以sys用户登录到数据库上,在sqlplus命令下使用awrrpt.sql ,获取系统负载报告,今天有同事请教这个问题,不巧的是他没有sys的用户的口令,于是乎,老兵遇到新问题:执行awrrpt时,输入数据库名,天数,begin_snapid,end_snapid后报错,无法找到DBMS_WORKLOAD_REPOSITORY.AWR_SQL_REPORT_HTML。这不由得让我思考两个问题:1、如何直接了当的获取到负责报告;2、要获取负载报告究竟需要什么样的特权(privillege)才可以。

      1、awrrpt.sql里查找找到最核心的部分就是

    -- call the table function to generate the report
select output from table(dbms_workload_repository.&fn_name( :dbid,
                                                            :inst_num,
                                                            :bid, :eid,
                                                            :rpt_options ));

     &fn_name是指调用的函数,再顺藤摸瓜,查看dbms_workload_repository的说明

生成报告的有两个函数

  AWR_REPORT_HTML:生成html格式的报表,个人建议使用这个,格式比较好看些

  AWR_REPORT_TEXT :生成文本格式的报表

这两个函数的参数是一样的

DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(
l_dbid IN NUMBER,
l_inst_num IN NUMBER,
l_bid IN NUMBER,
l_eid IN NUMBER,
l_options IN NUMBER DEFAULT 0)
RETURN awrrpt_text_type_table PIPELINED;

参数说明:

    l_dbid:数据库的id,可以查询v$database表的dbid

    l_inst_num :实例编号,一般是RAC架构下有用,查询v$instance可以得到,单实例的话这个值是1

    l_bid :快照起始编号

    l_eid :快照结束编号

    l_options:报表选项(0,8)默认是0,8的话报表里会多显示ADDM的建议信息。

示例:

  1、查找dbid,instance_number

     

2、查找begin_snapid,end_snapid

    

3、执行DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML

   

    这是由于用户没有包的执行权限,以sys用户登录,授权,再执行就可以了。

  

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值