diff options
Diffstat (limited to 'web/attachments/40985-check_oracle.patch')
| -rw-r--r-- | web/attachments/40985-check_oracle.patch | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/web/attachments/40985-check_oracle.patch b/web/attachments/40985-check_oracle.patch new file mode 100644 index 0000000..384d33e --- /dev/null +++ b/web/attachments/40985-check_oracle.patch | |||
| @@ -0,0 +1,104 @@ | |||
| 1 | --- new/check_oracle.sh Wed Jan 29 14:38:44 2003 | ||
| 2 | +++ jjm/check_oracle.sh Wed Jan 29 15:17:01 2003 | ||
| 3 | @@ -1,4 +1,4 @@ | ||
| 4 | -#!/bin/sh | ||
| 5 | +#!/bin/bash | ||
| 6 | # | ||
| 7 | # latigid010@yahoo.com | ||
| 8 | # 01/06/2000 | ||
| 9 | @@ -37,6 +37,8 @@ | ||
| 10 | echo " $PROGNAME --tns <Oracle Sid or Hostname/IP address>" | ||
| 11 | echo " $PROGNAME --db <ORACLE_SID>" | ||
| 12 | echo " $PROGNAME --login <ORACLE_SID>" | ||
| 13 | + echo " $PROGNAME --cache <USER> <PASS> <INST> <CRITICAL> <WARNING>" | ||
| 14 | + echo " $PROGNAME --tablespace <USER> <PASS> <INST> <TABLESPACE> <CRITICAL> <WARNING>" | ||
| 15 | echo " $PROGNAME --oranames <Hostname>" | ||
| 16 | echo " $PROGNAME --help" | ||
| 17 | echo " $PROGNAME --version" | ||
| 18 | @@ -56,6 +58,14 @@ | ||
| 19 | echo " filesystem for sgadefORACLE_SID.dbf" | ||
| 20 | echo "--login=SID" | ||
| 21 | echo " Attempt a dummy login and alert if not ORA-01017: invalid username/password" | ||
| 22 | + echo "--cache" | ||
| 23 | + echo " Check local database for library and buffer cache hit ratios" | ||
| 24 | + echo " ---> Requires Oracle user/password and SID specified." | ||
| 25 | + echo " ---> Requires select on v_$sysstat and v_$librarycache" | ||
| 26 | + echo "--tablespace" | ||
| 27 | + echo " Check local database for tablespace capacity in ORACLE_SID" | ||
| 28 | + echo " ---> Requires Oracle user/password specified." | ||
| 29 | + echo " ---> Requires select on dba_data_files and dba_free_space" | ||
| 30 | echo "--oranames=Hostname" | ||
| 31 | echo " Check remote Oracle Names server" | ||
| 32 | echo "--help" | ||
| 33 | @@ -191,6 +201,71 @@ | ||
| 34 | exit $STATE_CRITICAL | ||
| 35 | fi | ||
| 36 | ;; | ||
| 37 | +--cache) | ||
| 38 | + if [ ${5} -gt ${6} ] ; then | ||
| 39 | + echo "UNKNOWN - Warning level is less then Crit" | ||
| 40 | + exit $STATE_UNKNOWN | ||
| 41 | + fi | ||
| 42 | + result=`sqlplus -s ${2}/${3}@${4} << EOF | ||
| 43 | + set pagesize 0 | ||
| 44 | + | ||
| 45 | +select (1-(pr.value/(dbg.value+cg.value)))*100 \ | ||
| 46 | +from v\\$sysstat pr, v\\$sysstat dbg, v\\$sysstat cg \ | ||
| 47 | +where pr.name = 'physical reads' \ | ||
| 48 | + and dbg.name='db block gets' \ | ||
| 49 | + and cg.name='consistent gets'; ` | ||
| 50 | + | ||
| 51 | + buf_hr=`echo $result | awk '{print int($1)}'` | ||
| 52 | + result=`sqlplus -s ${2}/${3}@${4} << EOF | ||
| 53 | + set pagesize 0 | ||
| 54 | + | ||
| 55 | +select sum(lc.pins)/(sum(lc.pins)+sum(lc.reloads))*100 \ | ||
| 56 | +from v\\$librarycache lc ; ` | ||
| 57 | + | ||
| 58 | + lib_hr=`echo $result | awk '{print int($1)}'` | ||
| 59 | + | ||
| 60 | + if [ $buf_hr -le ${5} -o $lib_hr -le ${5} ] ; then | ||
| 61 | + echo "${3} : ${4} CRITICAL - Cache Hit Rates: $lib_hr % Lib -- $buf_hr % Buff" | ||
| 62 | + exit $STATE_CRITICAL | ||
| 63 | + fi | ||
| 64 | + if [ $buf_hr -le ${6} -o $lib_hr -le ${6} ] ; then | ||
| 65 | + echo "${3} : ${4} WARNING - Cache Hit Rates: $lib_hr % Lib -- $buf_hr % Buff" | ||
| 66 | + exit $STATE_WARNING | ||
| 67 | + fi | ||
| 68 | + echo "${3} : ${4} OK - Cache Hit Rates: $lib_hr % Lib -- $buf_hr % Buff" | ||
| 69 | + | ||
| 70 | + exit $STATE_OK | ||
| 71 | + ;; | ||
| 72 | +--tablespace) | ||
| 73 | + if [ ${6} -lt ${7} ] ; then | ||
| 74 | + echo "UNKNOWN - Warning level is more then Crit" | ||
| 75 | + exit $STATE_UNKNOWN | ||
| 76 | + fi | ||
| 77 | + result=`sqlplus -s ${2}/${3}@${4} << EOF | ||
| 78 | + set pagesize 0 | ||
| 79 | + | ||
| 80 | +select b.free,a.total,100 - trunc(b.free/a.total * 1000) / 10 prc \ | ||
| 81 | +from ( \ | ||
| 82 | +select tablespace_name,sum(bytes)/1024/1024 total \ | ||
| 83 | +from dba_data_files group by tablespace_name) A, \ | ||
| 84 | +( select tablespace_name,sum(bytes)/1024/1024 free \ | ||
| 85 | +from dba_Free_space group by tablespace_name) B \ | ||
| 86 | +where a.tablespace_name=b.tablespace_name and a.tablespace_name='${5}'; ` | ||
| 87 | + | ||
| 88 | + ts_free=`echo $result | awk '{print int($1)}'` | ||
| 89 | + ts_total=`echo $result | awk '{print int($2)}'` | ||
| 90 | + ts_pct=`echo $result | awk '{print int($3)}'` | ||
| 91 | + if [ $ts_pct -ge ${6} ] ; then | ||
| 92 | + echo "${4} : ${5} CRITICAL - $ts_pct% used [ $ts_free / $ts_total MB available ]" | ||
| 93 | + exit $STATE_CRITICAL | ||
| 94 | + fi | ||
| 95 | + if [ $ts_pct -ge ${7} ] ; then | ||
| 96 | + echo "${4} : ${5} WARNING - $ts_pct% used [ $ts_free / $ts_total MB available ]" | ||
| 97 | + exit $STATE_WARNING | ||
| 98 | + fi | ||
| 99 | + echo "${4} : ${5} OK - $ts_pct% used [ $ts_free / $ts_total MB available ]" | ||
| 100 | + exit $STATE_OK | ||
| 101 | + ;; | ||
| 102 | *) | ||
| 103 | print_usage | ||
| 104 | exit $STATE_UNKNOWN | ||
