oracle的tablespaces使用情況監控

2022-06-17 13:12:10 字數 2171 閱讀 7394

環境:oracle11g、linux

思路:登陸資料庫查詢出所有表空間使用情況——通過shell指令碼分析結果——找出大於設定值得表空間——簡訊預警(也可以改成郵件預警)

指令碼:cat /u01/check-tablespaces.sh

#! /bin/bash

source /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 -e

30 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...