[Shell] 自動生成oracle awr report並mail出來
Shell script如下:
[mon@oracle6 source]$ more gen_oracle_awr
#!/bin/bash
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=xxxxxxx
AWRHOME=/home/mon/awr
#interval=8
maxmin=`$ORACLE_HOME/bin/sqlplus -s /nolog << EOF # >> /home/mon/log/gen_oracle_awr.log #if general output to log,the maxmin will not get the value.
conn mon/mon;
set heading off pagesize 0 feedback off verify off echo off;
select max(snap_id),min(snap_id) from dba_hist_snapshot where begin_interval_time>=sysdate-1 and begin_interval_time<=sysdate-1+8/24;
exit;
EOF`
#if [ -z "$maxmin" ]; then
# echo "no rows returned from database"
# exit 0
#else
# echo $maxmin
#fi
max=`echo $maxmin | awk '{print $1}'`
min=`echo $maxmin | awk '{print $2}'`
#echo $max
#echo $min
rm -rf $AWRHOME/awrrpt_1_${min}_${max}.html
$ORACLE_HOME/bin/sqlplus -s /nolog << EOF >> /dev/null
conn / as sysdba;
@?/rdbms/admin/awrrpt.sql;
html
2
$min
$max
$AWRHOME/awrrpt_1_${min}_${max}.html
EOF
cat $AWRHOME/awrrpt_1_${min}_${max}.html | mutt -s "$ORACLE_SID Database AWR Report" -e "set content_type=text/html" tolilong@163.com -a $AWRHOME/awrrpt_1_${min}_${max}.html
新增crontab job
###############general awr#######################################
15 15 * * * /home/mon/source/gen_oracle_awr > /dev/null 2>&1
注意點:
1.maxmin=`$ORACLE_HOME/bin/sqlplus -s /nolog << EOF # >> /home/mon/log/gen_oracle_awr.log的時候,不能輸出到log,否則maxmin獲取不到資料
2.以mon賬號執行的時候conn / as sysdba會提示ORA-01031: insufficient privileges沒有許可權
在os上執行如下命令即可了。
[root@oracle6 source]# usermod -G dba mon
3.ORA-12547: TNS:lost contact
[oracle@topaz bin]$ ls -l oracle
-rwxrwxr-x 1 oracle oinstall 210824714 May 4 2014 oracle
[oracle@topaz bin]$
[oracle@topaz bin]$ chmod 6751 oracle
[oracle@topaz bin]$ ls -l oracle
[mon@oracle6 source]$ more gen_oracle_awr
#!/bin/bash
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=xxxxxxx
AWRHOME=/home/mon/awr
#interval=8
maxmin=`$ORACLE_HOME/bin/sqlplus -s /nolog << EOF # >> /home/mon/log/gen_oracle_awr.log #if general output to log,the maxmin will not get the value.
conn mon/mon;
set heading off pagesize 0 feedback off verify off echo off;
select max(snap_id),min(snap_id) from dba_hist_snapshot where begin_interval_time>=sysdate-1 and begin_interval_time<=sysdate-1+8/24;
exit;
EOF`
#if [ -z "$maxmin" ]; then
# echo "no rows returned from database"
# exit 0
#else
# echo $maxmin
#fi
max=`echo $maxmin | awk '{print $1}'`
min=`echo $maxmin | awk '{print $2}'`
#echo $max
#echo $min
rm -rf $AWRHOME/awrrpt_1_${min}_${max}.html
$ORACLE_HOME/bin/sqlplus -s /nolog << EOF >> /dev/null
conn / as sysdba;
@?/rdbms/admin/awrrpt.sql;
html
2
$min
$max
$AWRHOME/awrrpt_1_${min}_${max}.html
EOF
cat $AWRHOME/awrrpt_1_${min}_${max}.html | mutt -s "$ORACLE_SID Database AWR Report" -e "set content_type=text/html" tolilong@163.com -a $AWRHOME/awrrpt_1_${min}_${max}.html
新增crontab job
###############general awr#######################################
15 15 * * * /home/mon/source/gen_oracle_awr > /dev/null 2>&1
注意點:
1.maxmin=`$ORACLE_HOME/bin/sqlplus -s /nolog << EOF # >> /home/mon/log/gen_oracle_awr.log的時候,不能輸出到log,否則maxmin獲取不到資料
2.以mon賬號執行的時候conn / as sysdba會提示ORA-01031: insufficient privileges沒有許可權
在os上執行如下命令即可了。
[root@oracle6 source]# usermod -G dba mon
3.ORA-12547: TNS:lost contact
[oracle@topaz bin]$ ls -l oracle
-rwxrwxr-x 1 oracle oinstall 210824714 May 4 2014 oracle
[oracle@topaz bin]$
[oracle@topaz bin]$ chmod 6751 oracle
[oracle@topaz bin]$ ls -l oracle
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24237320/viewspace-2051017/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [shell] execute remote Script自動生成oracle awr report並mail出來REMOracleAI
- awr 自動mailAI
- AWR Report 自動生成指令碼 [final]指令碼
- shell指令碼實現自動生成awr報告指令碼
- 一個自動生成awr報告的shell指令碼指令碼
- 使用shell自動傳送Oracle AWR報告Oracle
- 自動生成AWR報告並以郵件附件傳送
- 自動生成AWR HTML報告HTML
- 【AWR】自動生成AWR報告指令碼以及用法指令碼
- 定時自動生成awr報告
- AWR報告自動生成指令碼指令碼
- 自動生成awr報告指令碼指令碼
- Oracle10g 自動生成AWR報告的指令碼Oracle指令碼
- awr報告每天自動生成指令碼指令碼
- AWR不能自動生成快照解決方法?
- Oracle10g自動生成AWR分析報告的指令碼Oracle指令碼
- Oracle 10g AWR Report 分析(轉)Oracle 10g
- Oracle生成awr報告Oracle
- Oracle 生成awr報告Oracle
- AWR 及STATSPACK的snapshot不能自動生成排查
- 【AWR】Oracle批量生成awr報告指令碼Oracle指令碼
- 使用shell生成orabbix自動化配置指令碼指令碼
- Oracle 客戶端生成AWR方法Oracle客戶端
- [Linux] mutt mail oracle awr [Html能正常顯示錶格]LinuxAIOracleHTML
- ORACLE自動備份shell指令碼Oracle指令碼
- Jenkins上實現Python + Jenkins + Allure Report 介面自動化測試持續整合,並生成allure-report測試報告JenkinsPython測試報告
- ORACLE 11G生成AWR報告Oracle
- awr自動收集指令碼指令碼
- 透過AWR REPORT 或 ADDM REPORT進行SQLTUNESQL
- [Shell] Monitor other host oracle instance alert.log and mailOracleAI
- Oracle 11.2.0.4 awr過期快照無法自動清理Oracle
- Oracle10g AWR (自動工作負載資訊庫)Oracle負載
- Oracle中自動工作負載資訊庫(AWR)介紹Oracle負載
- 【BUG】Oracle12c tablespace io statistics missing from awr reportOracle
- oracle11g 自動並行Oracle並行
- sqlplus動態生成linux shell指令碼並執行SQLLinux指令碼
- 批量生成AWR
- golang mail、shell、cookie、uuidGolangAICookieUI