Script Memeriksa Oracle Tablespace

May 13, 2012

Reading time ~1 minute

Oracle-KoreaJika anda menggunakan SAP, dengan oracle database didalamnya, maka memaintain Oracle database adalah hal yang perlu anda lakukan. Memeriksa tablespace anda dalam keadaan yang prima akan menjaga anda dari pembelian disk secara tiba tiba. Sehingga perkembangan penggunaan disk dapat anda estimasikan dengan mudah dan lebih strategis. Sayang nya beberapa aplikasi stand alone tidak dilengkapi dengan tools untuk mengecek tablespace anda. Untuk itu kami memiliki sebuah script sederhana yang akan memberikan laporan mengenai seberapa besar table space anda. Dan jika ia sudah melebihi dari 80% maka script ini akan memberikan anda solusi berapa GB yang anda perlukan untuk membuat table space anda menjadi 80%.

Penggunaan:
Buat script menjadi file.sql lalu eksekusi file ini dengan mengeksekusi:

[sourcecode language=”shell”]$>sqlplus "/as sysdba" @/lokasi/file/sql[/sourcecode]

 

[sourcecode language=”sql”]

10G keatas bisa append 10G kebawah buang "append"

SPOOL /tmp/Oracle_tablespace_report.txt append;
set pages 999 lines 100
col "Tablespace" for a50
col "Size MB" for 999999999
col "%Used" for 999
col "Add (80%)" for 999999
select tsu.tablespace_name "Tablespace"
, ceil(tsu.used_mb) "Size MB"
, 100 – floor(tsf.free_mb/tsu.used_mb*100) "%Used"
, ceil((tsu.used_mb – tsf.free_mb) / .8) – tsu.used_mb "Add (80%)"
from (select tablespace_name, sum(bytes)/1024/1024 used_mb
from dba_data_files group by tablespace_name) tsu
, (select ts.tablespace_name
, nvl(sum(bytes)/1024/1024, 0) free_mb
from dba_tablespaces ts, dba_free_space fs
where ts.tablespace_name = fs.tablespace_name (+)
group by ts.tablespace_name) tsf
where tsu.tablespace_name = tsf.tablespace_name (+)
and 100 – floor(tsf.free_mb/tsu.used_mb*100) >= 80
order by 3,4
;
SPOOL off
[/sourcecode]

comments powered by Disqus