Check table space usages (Oracle and Unix) - UNIX Shell Scripting

Post Top Ad

Responsive Ads Here

Wednesday, February 13, 2019

Check table space usages (Oracle and Unix)

#####################################################################
## Script Name: SAC_14FEB2019_TABLESPACE_ALERTS.sh                 ##
## Author: Sachin                                                  ##
## Purpose: Check table space usages (Oracle and Unix)             ##
## DATE: 14 FEB 2019                                               ##
## Version: V01                                                    ##
#####################################################################
#!/bin/ksh
sqlplus -s <<!
sacDB/$password@$DBNAME
set feed off
set linesize 150
set pagesize 250
spool tablespace.alert
SELECT TEMP_TAB1.TABLESPACE_NAME,
TO_CHAR ((TEMP_TAB2.TOTAL_SPACE - TEMP_TAB1.FREE_SPACE),'999,999') "USED (MB)",
TO_CHAR (TEMP_TAB1.FREE_SPACE, '999,999') "FREE (MB)",
TO_CHAR (TEMP_TAB2.TOTAL_SPACE, '999,999') "TOTAL (MB)",
TO_CHAR ((ROUND ((TEMP_TAB1.FREE_SPACE/TEMP_TAB2.TOTAL_SPACE)*100)),'999')||' %' PER_FREE
FROM   (
SELECT       TABLESPACE_NAME,
ROUND (SUM (BLOCKS*(SELECT VALUE/1024
FROM V\$PARAMETER
WHERE NAME = 'db_block_size')/1024)
) FREE_SPACE
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME
) TEMP_TAB1,
(
SELECT TABLESPACE_NAME,
ROUND (SUM (BYTES/1048576)) TOTAL_SPACE
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME
) TEMP_TAB2
WHERE TEMP_TAB1.TABLESPACE_NAME = TEMP_TAB2.TABLESPACE_NAME
AND (ROUND ((TEMP_TAB1.FREE_SPACE/TEMP_TAB2.TOTAL_SPACE)*100)) < 10;
spool off
exit
!
if [ `cat tablespace.alert|wc -l` -gt 0 ]
then
cat tablespace.alert -l tablespace.alert > tablespace.tmp
mailx -s "TABLESPACE ALERT for ${2}" $DBALIST < tablespace.tmp
fi

No comments:

Post a Comment

Post Bottom Ad

Responsive Ads Here