shell脚本导出awr报告

本文介绍如何利用Shell脚本自动化提取和导出数据库的AWR(Automatic Workload Repository)报告,以帮助DBA更高效地监控和分析数据库性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/sh
#####################################
##脚本说明:
##参数1:巡检日期,例如   20180719
##参数2:开始时间点,例如 09
##参数3:结束时间点,例如 17
##参数4:文件名名称,例如 cc-awr-20180719.xml
##参数5:数据库tns,例如 test/test@cc_test
##参数6:实例编码inst_num
##参数7:awr生成路径:如 /weblogic/r11/user/sunzhilong/awr
#####################################
Ins_date=${1}
begin_hour=${2}
end_hour=${3}
file_name=${4}
ora_link=${5}
inst_num=${6}
path=${7}

###########################################################函数定义#####################
##############################执行sql语句函数--第一个参数是执行语句,第二个参数是连接串
#like execute "${v_sql}" "${v_link}"
execute (){
sqlplus -S ${2} << END
    set heading off
    set feedback off
    set pagesize 0
    ${1}
exit
END
}

spool (){
sqlplus -S ${1} << END
set heading off
set feedback off
set pagesize 0
set echo off
set trimspool on;
set linesize 1500
spool ${path}/${2}
${3}
spool off
exit
END
}

echo 'Ins_date   is'${Ins_date}
echo 'begin_hour is'${begin_hour}
echo 'end_hour   is'${end_hour}
echo 'file_name  is'${file_name}
echo 'ora_link   is'${ora_link}
echo 'path       is'${path}
echo 'inst_num   is'${inst_num}

v_sql="select d.dbid
  from v\$database d,
       v\$instance i;"
dbid=`execute "${v_sql}" "${ora_link}"`

v_sql="select a.snap_id
  from dba_hist_snapshot a
  where to_char(a.end_interval_time, 'yyyymmdd')='${Ins_date}'
  and to_char(a.end_interval_time, 'hh24mi') = '${begin_hour}00'
  and a.instance_number=${inst_num}
  and rownum<=1;"
snap_id1=`execute "${v_sql}" "${ora_link}"`


v_sql="select a.snap_id
  from dba_hist_snapshot a
  where to_char(a.end_interval_time, 'yyyymmdd')='${Ins_date}'
  and to_char(a.end_interval_time, 'hh24mi') = '${end_hour}00'
  and a.instance_number=${inst_num}
  and rownum<=1;"
snap_id2=`execute "${v_sql}" "${ora_link}"`

echo 'dbid is '${dbid}
echo 'inst_num is '${inst_num}
echo 'snap_id1 is'${snap_id1}
echo 'snap_id2 is'${snap_id2}

v_sql="select output from table(dbms_workload_repository.awr_report_html(${dbid},${inst_num},${snap_id1},${snap_id2},0));"
spool "${ora_link}" ${file_name} "${v_sql}" >/dev/null
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值