前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用shell定制addm脚本(r3笔记第88天)

使用shell定制addm脚本(r3笔记第88天)

作者头像
jeanron100
发布2018-03-15 11:50:56
5710
发布2018-03-15 11:50:56
举报
文章被收录于专栏:杨建荣的学习笔记

在10g开始推出的addm对于工作中的调优能够提供很多的帮助,而且建议也更加客观和全面。但是使用addmrpt.sql的时候还是有些慢, 可以使用如下的脚本来定制addm,能够根据快照生成指定的addm报告。 脚本的内容如下: 相比于定制awr,ash要略微有一些难度。对于addm目前只提供了文本格式的内容,所以格式的处理上没什么特别的地方,不用考虑html格式的兼容性。

代码语言:javascript
复制
TASK_NAME=`sqlplus  -silent $DB_CONN_STR@$SH_DB_SID <<END
set pagesize 0 feedback off  verify off heading on echo off 
select   'ADDM_TASK_'||i.instance_name||'_'||$1||'_'||$2   from  v\\$database d,
        v\\$instance i; 
exit; 
END` 


if [ -z "$TASK_NAME" ];  then 
 echo "no addm task exists, please check again" 
 exit  0 
else 
 echo '*******************************************'
 echo "  $TASK_NAME    " 
 echo  '*******************************************'
fi 

 
sqlplus -silent $DB_CONN_STR@$SH_DB_SID <<END      
declare        
task_name   varchar2(200);
begin
task_name:='$TASK_NAME';
dbms_output.put_line(task_name);         
dbms_advisor.create_task('ADDM',task_name);
dbms_advisor.set_task_parameter(task_name,  'START_SNAPSHOT', $1);
dbms_advisor.set_task_parameter(task_name,  'END_SNAPSHOT', $2);
--dbms_advisor.set_task_parameter(task_name, 'INSTANCE',  :inst_num);
--dbms_advisor.set_task_parameter(task_name, 'DB_ID',  :dbid);
dbms_advisor.execute_task(task_name);
end;
/
 
prompt
prompt Generating the ADDM report for this analysis  ...
prompt
prompt    
 
set long 1000000 pagesize 0 longchunksize  1000
column get_clob format a80    
select  dbms_advisor.get_task_report('$TASK_NAME', 'TEXT', 'TYPICAL')
from    sys.dual;  
END   

addm相比于awr,ash需要在数据库中创建一个task,使用dbms_advisor包来实现。 如果在备份库只读的情况下执行addm,就会报错。

代码语言:javascript
复制
begin
*
ERROR  at line 1:
ORA-16000: database open  for read-only access
ORA-06512: at "SYS.PRVT_ADVISOR", line  4869
ORA-06512: at "SYS.DBMS_ADVISOR", line 103
ORA-06512: at line  12

可以这样执行脚本

代码语言:javascript
复制
ksh genaddmrpt.sh 14807 14808
*******************************************
 ADDM_TASK_PETCUS1_14807_14808     
*******************************************
PL/SQL procedure  successfully completed.
Generating the ADDM report for this analysis ...
           ADDM Report for Task 'ADDM_TASK_XXXXX_14807_14808'
           ----------------------------------------------------
Analysis  Period
---------------
AWR snapshot range from 14807 to 14808.
Time  period starts at 18-DEC-14 03.00.52 PM
Time period ends at 18-DEC-14 04.00.54  PM

Analysis Target
---------------
Database 'XXXXX' with DB ID  1242335645.
Database version 11.2.0.2.0.
Analysis was requested for all  instances, but ADDM analyzed instance xxxx,
numbered 1 and hosted at  xxxxx.
See the "Additional Information" section for more information on the  requested
instances.

。。。。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2014-12-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 杨建荣的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档