根據快照產生statpack報表的Shell指令碼
產生快照以後,就可以根據快照自動產生報表了,下面是自動產生報表的指令碼,並將報表傳送到了指定郵箱:
$more spreport.sh
#!/bin/ksh
# creator: piner
# function: get statpack report
date
#設定環境變數
export ORACLE_SID=test
export ORACLE_HOME=/u01/oracle/product/9.2
export NLS_LANG=american_america.zhs16gbk
#設定執行是變數
SQLPLUS=$ORACLE_HOME/bin/sqlplus
LOGFILE=/home/oracle/logs/spreport.txt #日誌檔案
REPFILE=/home/oracle/worksh/spreport.lst #報表檔案
#獲得最後2個快照點
$SQLPLUS -S perfstat/perfstat <set echo off
set feedback off
set heading off
set pagesize 0
set linesize 1000
set trimspool on
spool $LOGFILE
select snap_id from
(select snap_id from stats\$snapshot where instance_number=1
order by snap_time desc) where rownum<3;
spool off;
set echo on
set feedback on
set heading on
exit
EOF
line1=`tail -1 $LOGFILE`
line2=`head -l $LOGFILE`
echo "line1 is"$line1
echo "line2 is"$line2
#產生報表
rm $REPFILE
$SQLPLUS -S perfstat/perfstat <define begin_snap=$line1
define end_snap=$line2
define report_name=$REPFILE
@?/rdbms/admin/spreport.sql
exit
EOF
#傳送郵件
mail -s `date +%Y%m%d`'-'`hostname`spreport test@mail.com < $REPFILE
$more spreport.sh
#!/bin/ksh
# creator: piner
# function: get statpack report
date
#設定環境變數
export ORACLE_SID=test
export ORACLE_HOME=/u01/oracle/product/9.2
export NLS_LANG=american_america.zhs16gbk
#設定執行是變數
SQLPLUS=$ORACLE_HOME/bin/sqlplus
LOGFILE=/home/oracle/logs/spreport.txt #日誌檔案
REPFILE=/home/oracle/worksh/spreport.lst #報表檔案
#獲得最後2個快照點
$SQLPLUS -S perfstat/perfstat <
set feedback off
set heading off
set pagesize 0
set linesize 1000
set trimspool on
spool $LOGFILE
select snap_id from
(select snap_id from stats\$snapshot where instance_number=1
order by snap_time desc) where rownum<3;
spool off;
set echo on
set feedback on
set heading on
exit
EOF
line1=`tail -1 $LOGFILE`
line2=`head -l $LOGFILE`
echo "line1 is"$line1
echo "line2 is"$line2
#產生報表
rm $REPFILE
$SQLPLUS -S perfstat/perfstat <
define end_snap=$line2
define report_name=$REPFILE
@?/rdbms/admin/spreport.sql
exit
EOF
#傳送郵件
mail -s `date +%Y%m%d`'-'`hostname`spreport test@mail.com < $REPFILE
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11411056/viewspace-734299/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 產生Statspack快照的Shell指令碼指令碼
- Shell 指令碼 ,, 根據程式號退出 從而關機指令碼
- 根據ip列表檢測主機狀態(shell指令碼)指令碼
- ASH(Active Session History)——根據SID生產報告(3)!Session
- 生產環境備份shell指令碼薦指令碼
- 根據表結構,自動生成匯入指令碼指令碼
- 根據源庫表空間實際使用建立表空間指令碼指令碼
- 根據程式的ID取得該程式的SQL指令碼SQL指令碼
- 【shell 指令碼】根據給定的網址來使用相應的協議下載檔案指令碼協議
- EBS 單個報表(非報表集)根據報表名稱獲取報表源程式
- 通過shell指令碼生成資料統計資訊的報表指令碼
- 透過shell指令碼生成資料統計資訊的報表指令碼
- 【shell】根據檔案時間有無更新進行報警
- shell指令碼報錯:[: missing `]‘指令碼
- 用Shell指令碼來解決DOS安全Linux伺服器生產指令碼Linux伺服器
- 根據日期來查詢mysql的binlog日誌的指令碼MySql指令碼
- [ Shell ] 通過 Shell 指令碼匯出 CDL 網表指令碼
- mybatis根據表逆向自動化生成程式碼MyBatis
- shell指令碼報錯:"[: =: unary operator expected"指令碼
- SAP RETAIL 如何根據分配表查到根據它建立的採購訂單?AI
- 【Shell】fix 1032報錯資訊的指令碼指令碼
- 根據表查詢索引資訊索引
- 根據父表查詢子表
- 指定快照時間內根據等待類查詢消耗較高的sqlSQL
- 如何根據生產環境mysql版本選擇合適的percona xtrabackup版本MySql
- 一個shell 指令碼用來同步表用的指令碼
- shell指令碼指令碼
- Shell 根據程式名字找到程式號並kill
- Docker實踐,Shell指令碼自動根據映象名和埠,啟動docker容器,執行springcloud專案Docker指令碼SpringGCCloud
- 根據表空間的TSPITR恢復
- webpack根據需求配置打包模組及打包指令Web
- 簡單的反向生產DDL語句的指令碼指令碼
- [Shell] Shell 生成 HTML指令碼HTML指令碼
- 一個自動生成awr報告的shell指令碼指令碼
- 根據結構基本相同的A表的值更新B表
- SQL server根據表名查詢表主鍵SQLServer
- Oracle生產環境RMAN備份指令碼Oracle指令碼
- DB2多次抓取快照指令碼DB2指令碼