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

时间:2022-05-04
本文章向大家介绍使用shell定制addm脚本(r3笔记第88天),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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

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,就会报错。

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

可以这样执行脚本

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.

。。。。