使用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.
。。。。
- 如何求最小三元组距离
- 如何将Pastebin上的信息应用于安全分析和威胁情报领域
- Optionsbleed 漏洞泄露 Apache Server 的内存信息
- 对两个有序数组进行合并
- No.016 3Sum Closest
- Java中实现解码字符串的方法,实用代码
- PDF.NET SOD 开源框架红包派送活动 && 新手快速入门指引
- No.015 3Sum
- Java 8新特性——提供了一种可以看作多重继承的默认方法
- WebSocket 学习笔记--IE,IOS,Android等设备的兼容性问题与代码实现
- 关于Shell你想知道的都在这儿
- Java中使用线程时,请不要忘记Spring TaskExecutor组件
- 常见.NET功能代码汇总
- 如何通过追踪代码自动发现网站之间的“关联”
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- thinkphp3.2同时连接两个数据库的简单方法
- php实现微信企业付款到个人零钱功能
- php中对象引用和复制实例分析
- php中上传文件的的解决方案
- PHP实现与java 通信的插件使用教程
- thinkPHP5框架接口写法简单示例
- php实现数组重复数字统计实例
- php提取微信账单的有效信息
- php使用pecl方式安装扩展操作示例
- RSA实现JS前端加密与PHP后端解密功能示例
- Laravel源码解析之路由的使用和示例详解
- Linux中crontab输出重定向不生效问题的解决办法
- PHP swoole和redis异步任务实现方法分析
- thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
- 教你一招实现Linux中的文本比对