環境:oracle11g、linux
思路:登陸資料庫查詢出所有表空間使用情況——通過shell指令碼分析結果——找出大於設定值得表空間——簡訊預警(也可以改成郵件預警)
指令碼:cat /u01/check-tablespaces.sh
#! /bin/bashsource /etc/profile
source ~/.bash_profile
sqlplus / as sysdba >/tmp/oracle.txt << eof
set lines 800;
set pages 800;
col tablespace_name for a30;
col used_pct for a10;
select /*+ parallel(8) */ total.tablespace_name tablespace_name,
total.max_size_mb max_size_mb, total.size_mb-free.used_free_mb used_size_mb,
to_char(round(((total.size_mb-free.used_free_mb)/total.max_size_mb)*100,2),'fm99999999990.00')|| '%' used_pct,
total.max_size_mb-(total.size_mb-free.used_free_mb) free_mb
from
(select tablespace_name,
sum(bytes)/1024/1024 size_mb,
sum(decode(maxbytes, 0 , bytes,maxbytes ))/1024/1024 max_size_mb
from dba_data_files
group by tablespace_name) total,
(select tablespace_name,
sum(bytes)/1024/1024 used_free_mb
from dba_free_space
group by tablespace_name) free
where total.tablespace_name=free.tablespace_name
and total.tablespace_name not like 'undo%';
quit;
eofsed -i 1,12d /tmp/oracle.txt
sed -i -e '/selected/,$d' /tmp/oracle.txt
sed -i '$d' /tmp/oracle.txt
sed -i 1,2d /tmp/oracle.txt
#查詢表空間大於90%的表空間
echo tablespaces-$(date +"%y-%m-%d")>>/tmp/tbplesjg.txt
cat /tmp/oracle.txt|while read line
do m=`echo $line |awk ''`
b=`echo $line |awk ''|awk -f. ''`
if [ $b -gt 90 ]
then
echo "$m使用百分之$b" >> /tmp/tbplesjg.txt
else
echo "$m $b%"
fi done
#傳送簡訊
sb=`tac /tmp/tbplesjg.txt|sed '/tablespaces/q'|tac|grep '使用'`
if [ -z "$sb" ]
then
echo '檔案為空'
else
a_phon=("1862***8189" "15283***025" "1801***5583" )
for element in $
do curl -x post '' -d "phone=$element&content=`tac /tmp/tbplesjg.txt|sed '/tablespaces-2/q'|tac|tail -n 3`"
done
fi
配置定時任務
[oracle@db]crontab -e30 8 * * * /u01/check-tablespaces.sh
oracle學習總結 oracle的介紹
1 資料庫的三層結構 client 專用於訪問資料庫 dbms database management system db例項 多個 db例項有很多資料物件 例 表,包,檢視,序列,函式,觸發器,索引 2 在專案中如何選擇資料庫 1 標的 2 功能 3 併發性問題 4 安全 穩定 5 作業系統 un...
oracle 2 oracle的使用者
1 dbca oracle的dbca主要用來管理資料庫,包括建立資料庫 刪除資料庫等。注意 建立資料庫的時候,密碼不能全是數字,也不能以數字開頭 2 ofa oracle flexible architecture oracle優化靈活結構 作用 多oracle版本的管理 ora90 資料庫管理工具...
oracle部分 oracle的分頁查詢
oracle的分頁查詢 問題 當乙個表中的資料量特別大的時候,如果一次性全部顯示給使用者,則造成頁面過於龐大,體驗極差。解決 使用分頁查詢 使用 rownum關鍵字 oracle對外提供的自動給查詢結果編號的關鍵字,與每行的資料沒有關係。注意 rownum關鍵字只能做 的判斷,不能進行 的判斷 se...