檢查表空間、資料檔案、OS空間使用情況的指令碼
#!/bin/bash
source ~/.bash_profile
file=/tmp/daily_check.log
sqlplus -s ' / as sysdba' <<eof
set pages 999
set linesize 500
col FILE_ID format 999
col TABLESPACE_NAME format a20
col FILE_PATH format a40
col AUTOEXTENSIBLE format a5
col MAX_M format 999999
col TOTAL_SPACE format a20
col USED_SPACE format a20
col REMIND_SPACE format a20
col REMIND_RATE format a20
spool d_ck.log
--tablespace free
select b.tablespace_name,a.maxsize max_M,a.total total_M,b.free free_M,round((b.free/a.total)*100) "% Free" from
(select tablespace_name, sum(bytes/(1024*1024)) total ,sum(MAXBYTES/(1024*1024)) maxsize from dba_data_files group by tablespace_name) a,
(select tablespace_name, round(sum(bytes/(1024*1024))) free from dba_free_space group by tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name and round((b.free/a.total)*100)<6
order by "% Free";
--datafile free
select b.file_id FILE_ID,
b.tablespace_name TABLESPACE_NAME ,
b.AUTOEXTENSIBLE,b.MAXBYTES/1024/1024 MAX_M,b.file_name FILE_PATH,
ROUND(b.bytes/1024/1024,2) ||'M' TOTAL_SPACE,
ROUND((b.bytes-sum(nvl(a.bytes,0)))/1024/1024,2)||'M' USED_SPACE,
ROUND(sum(nvl(a.bytes,0))/1024/1024,2)||'M' REMIND_SPACE,
ROUND(sum(nvl(a.bytes,0))/(b.bytes),2)*100||'%' REMIND_RATE
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_name,b.file_id,b.bytes,b.AUTOEXTENSIBLE,b.MAXBYTES/1024/1024
having ROUND(sum(nvl(a.bytes,0))/(b.bytes),2)<0.06
order by 7;
spool off
exit
EOF
date >$file
echo "###########################" >>$file
echo "." >>$file
echo "." >>$file
echo "Tablespace and Tatafile Space Information" >>$file
echo "###########################" >>$file
cat d_ck.log >> $file
echo "." >>$file
echo "." >>$file
echo "OS Disk Space Information" >>$file
echo "###########################">>$file
df -hP|column -t >>$file
cat $file|mailx -s "MESDB 192.168.130.23 SPACE CHECK" XX@YY.com
</eof
source ~/.bash_profile
file=/tmp/daily_check.log
sqlplus -s ' / as sysdba' <<eof
set pages 999
set linesize 500
col FILE_ID format 999
col TABLESPACE_NAME format a20
col FILE_PATH format a40
col AUTOEXTENSIBLE format a5
col MAX_M format 999999
col TOTAL_SPACE format a20
col USED_SPACE format a20
col REMIND_SPACE format a20
col REMIND_RATE format a20
spool d_ck.log
--tablespace free
select b.tablespace_name,a.maxsize max_M,a.total total_M,b.free free_M,round((b.free/a.total)*100) "% Free" from
(select tablespace_name, sum(bytes/(1024*1024)) total ,sum(MAXBYTES/(1024*1024)) maxsize from dba_data_files group by tablespace_name) a,
(select tablespace_name, round(sum(bytes/(1024*1024))) free from dba_free_space group by tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name and round((b.free/a.total)*100)<6
order by "% Free";
--datafile free
select b.file_id FILE_ID,
b.tablespace_name TABLESPACE_NAME ,
b.AUTOEXTENSIBLE,b.MAXBYTES/1024/1024 MAX_M,b.file_name FILE_PATH,
ROUND(b.bytes/1024/1024,2) ||'M' TOTAL_SPACE,
ROUND((b.bytes-sum(nvl(a.bytes,0)))/1024/1024,2)||'M' USED_SPACE,
ROUND(sum(nvl(a.bytes,0))/1024/1024,2)||'M' REMIND_SPACE,
ROUND(sum(nvl(a.bytes,0))/(b.bytes),2)*100||'%' REMIND_RATE
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_name,b.file_id,b.bytes,b.AUTOEXTENSIBLE,b.MAXBYTES/1024/1024
having ROUND(sum(nvl(a.bytes,0))/(b.bytes),2)<0.06
order by 7;
spool off
exit
EOF
date >$file
echo "###########################" >>$file
echo "." >>$file
echo "." >>$file
echo "Tablespace and Tatafile Space Information" >>$file
echo "###########################" >>$file
cat d_ck.log >> $file
echo "." >>$file
echo "." >>$file
echo "OS Disk Space Information" >>$file
echo "###########################">>$file
df -hP|column -t >>$file
cat $file|mailx -s "MESDB 192.168.130.23 SPACE CHECK" XX@YY.com
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2131725/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 檢查表空間使用情況Oracle
- 檢視空間使用情況的指令碼指令碼
- 指令碼實現檢視錶空間使用情況指令碼
- 通過shell指令碼檢視資料庫表空間使用情況指令碼資料庫
- 透過shell指令碼檢視資料庫表空間使用情況指令碼資料庫
- 檢視mysql資料庫空間使用情況MySql資料庫
- 查詢表空間使用情況的指令碼指令碼
- oracle 檢視錶空間使用情況Oracle
- 檢視oracle表空間使用情況Oracle
- oracle查詢表空間的空間佔用情況Oracle
- 檢查儲存結構-控制、REDO日誌、表空間使用情況、資料檔案等資訊指令碼--HTML指令碼HTML
- 檢視Oracle的表空間的使用情況Oracle
- sql檢視所有表空間使用情況SQL
- 檢視oracle資料庫表空間使用情況 非常慢!Oracle資料庫
- 檢視SQL SERVER表的空間使用情況SQLServer
- 臨時表空間的空間使用情況查詢
- 檢視SQL SERVER表的空間使用情況(續)SQLServer
- Oracle 查詢各個 “表空間/資料檔案” 的空間使用比情況Oracle
- 查詢表空間使用情況
- 查詢表空間使用情況的簡單檢視
- Oracle檢視物件空間使用情況show_spaceOracle物件
- 檢視Oracle資料庫表空間大小,是否需要增加表空間的資料檔案Oracle資料庫
- Oracle undo 表空間使用情況分析Oracle
- Oracle查詢表空間使用情況Oracle
- oracle表及表空間使用情況Oracle
- 華納雲:如何檢視Linux硬碟空間使用情況Linux硬碟
- Win10怎麼檢視磁碟空間使用情況?Win10
- 如何檢視Oracle資料庫表空間大小(空閒、已使用),是否要增加表空間的資料檔案...Oracle資料庫
- 查詢sqlserver資料庫及各表格空間利用情況SQLServer資料庫
- 檢視錶空間及資料檔案的checkpoint資訊
- Oracle 檢視錶空間的大小及使用情況sql語句OracleSQL
- 移動資料檔案、系統表空間檔案、臨時表空間檔案
- ORACLE查詢所有表空間使用情況Oracle
- MySQL innodb共享表空間新增表空間資料檔案方法MySql
- 檢查表空間使用率SQL語句SQL
- 表空間中有資料也可以壓縮表空間(資料檔案)大小
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- 表空間和資料檔案的管理