Dの小部屋

忘れやすい私のメモ帳

statspack レポート連続作成スクリプト

statspackレポートを連続で作成するスクリプトRACの場合、修正が必要。

#!/bin/sh

#----- 設定 -----
#ユーザ名
p_user=perfstat
#パスワード
p_pass=password
#レポート出力先
r_dir=/home/oracle/report/
#ログファイル名
l_name=run.log


#----- レポート取得処理 -----
(
#snap_id取得
snap_id_list=`echo '
set termout off
set echo off
set trimspool on
set feedback off
set pages 0
set numformat 9999
set timing off
select trim(snap_id) as a  from (select snap_id  from stats$snapshot order by 1);' | sqlplus -S ${p_user}/${p_pass} ` || { echo 'ERROR 01'; exit 1; }

#レポート作成
cd ${r_dir}
b_id=0
for e_id in `echo $snap_id_list`
do
  if [ ${b_id} -ne 0 ]
  then
    echo "begin_snap->${b_id} end_snap-> ${e_id}"
    echo "
      define begin_snap=${b_id};
      define end_snap=${e_id};
      define report_name='spreport_${b_id}_${e_id}.LST'
      @?/rdbms/admin/spreport" | sqlplus -S ${p_user}/${p_pass}  || { echo 'ERROR 02'; exit 2; }
  fi
  b_id=${e_id}
done

exit 0

) > ${l_name} 2>&1

※2014/08/07 全体的に修正