使用shell定制addm脚本
作者:网络转载 发布时间:[ 2014/12/22 11:58:11 ] 推荐标签:数据库 shell
在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
可以通过一个实例来说明。
在生产中我们查看系统负载,有个时间段负载很高。110分钟的时间内,负载高达5862%
23973 ** 18-DEC-14 01.00.10.807 AM 23984 ** 18-DEC-14 02.50.16.550 AM 110.096 1412.37 1282%
23979 ** 18-DEC-14 02.00.13.664 AM 23990 ** 18-DEC-14 03.50.19.853 AM 110.103 1362.54 1237%
23985 ** 18-DEC-14 03.00.17.345 AM 23996 ** 18-DEC-14 04.50.23.456 AM 110.102 1310.3 1190%
23991 ** 18-DEC-14 04.00.20.532 AM 24002 ** 18-DEC-14 05.50.27.041 AM 110.108 1392.96 1265%
23997 ** 18-DEC-14 05.00.24.104 AM 24008 ** 18-DEC-14 06.50.32.136 AM 110.134 1629.76 1479%
24003 ** 18-DEC-14 06.00.27.751 AM 24014 ** 18-DEC-14 07.50.36.151 AM 110.140 3341.5 3033%
24009 ** 18-DEC-14 07.00.33.002 AM 24020 ** 18-DEC-14 08.50.39.371 AM 110.106 2766.72 2512%
24015 ** 18-DEC-14 08.00.36.792 AM 24026 ** 18-DEC-14 09.50.42.965 AM 110.103 2470.97 2244%
24021 ** 18-DEC-14 09.00.40.041 AM 24032 ** 18-DEC-14 10.50.47.631 AM 110.127 5018.62 4557%
24027 ** 18-DEC-14 10.00.43.922 AM 24038 ** 18-DEC-14 11.50.51.813 AM 110.132 6456.99 5862%
24033 ** 18-DEC-14 11.00.48.581 AM 24044 ** 18-DEC-14 12.50.55.064 PM 110.108 5888.03 5347%
24039 ** 18-DEC-14 12.00.52.341 PM 24050 ** 18-DEC-14 01.50.59.248 PM 110.115 5476.78 4973%
24045 ** 18-DEC-14 01.00.55.730 PM 24056 ** 18-DEC-14 02.50.02.623 PM 109.115 4371.67 4006%
24051 ** 18-DEC-14 02.01.00.065 PM 24062 ** 18-DEC-14 03.50.05.943 PM 109.098 3828.68 3509%
23922 ** 17-DEC-14 04.30.43.677 PM 24064 ** 18-DEC-14 04.10.07.337 PM 1419.394 40205.2 2832%
23922 ** 17-DEC-14 04.30.43.677 PM 24064 ** 18-DEC-14 04.10.07.337 PM 1419.394 40205.2 2832%
相关推荐

更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11