Dba Tool Tbs GB Remain v7.sql
Dba Tool Tbs GB Remain v7.sql
###################################################################################
####################################
#
# NAME: dba_tool_tbs_gb_remain_v7.sql
#
# AUTHOR: CernerWorks Database Services Team
#
# SUPPORT: [email protected]
#
# DESCRIPTION: The Script create the procedure dba_tool_tbs_gb_remain_v7
# Wiki WI: TBD
# JIRA: TBD
#
# USER: Oracle
#
###################################################################################
####################################
#
# ASSUMPTIONS:
#
###################################################################################
####################################
#
# AUTHOR DATE COMMENTS
# VER 1.0.0 pa026907 02/10/2021 - Script is created.
# VER 2.0.0 pa026907 05/10/2021 - Updated v_dg to upperase.
# VER 3.0.0 pa026907 06/24/2021 - Bug Fix to account for
freespace
# VER 4.0.0 pa026907 07/12/2021 - Updated Cursor Query
# VER 5.0.0 gc027765 07/23/2021 - reverting to VER 2.0.0 -
previous to accounting for free space
# - reverting using May 10th git
commit - 56efa66f5e
# VER 5.1.0 gc027765 03/20/2023 - adding excluding TS that
reaches file limit (1023) + additional
# - date/timestamp reporting.
# - see:
https://jira3.cerner.com/browse/CWXTIMIG-229367
###################################################################################
####################################
*/
create or replace PROCEDURE DBA_TOOL_TBS_GB_REMAIN_V7
AS
vSql1 VARCHAR2(2000);
vDG VARCHAR2(2000);
vMax VARCHAR2(2000);
vMsg1 VARCHAR2(2000);
vFreespace NUMBER;
vFC NUMBER;
GbRemain NUMBER;
AlarmPoint NUMBER := 2;
WarnPoint NUMBER := 20;
TbsWarning NUMBER;
FCWarning NUMBER := 1000;
theUser VARCHAR2(100);
containerName VARCHAR2(100);
db_version NUMBER;
max_datafiles NUMBER DEFAULT 1023;
BEGIN
----------------------------------------------------------------------------------
--DBA_TOOL_TBS_GB_REMAIN_V7 - VERSION 5.1
----------------------------------------------------------------------------------
vMax := c1_rec.maxsize;
IF vMax = 0 THEN
vFreespace := 0;
ELSE
vFreespace := (c1_rec.maxsize - c1_rec.allocated);
END IF;
vFC := c1_rec.filecount;
IF vFC > 256 THEN
TbsWarning := (WarnPoint * 5);
ELSE
TbsWarning := (WarnPoint);
END IF;
END IF;
SYS.DBMS_SYSTEM.ksdwrt(2, to_char(sysdate,'DD-MON-YYYY
HH24:MI:SS')|| ' --> DBA_TOOL_TBS_GB_REMAIN_V7.5.1 getting DG name: '||
c1_rec.tablespace);
SELECT DISTINCT(substr(value,2)) into vDG FROM v$parameter WHERE
NAME like 'db_create_file_dest';
SYS.DBMS_SYSTEM.ksdwrt(2, to_char(sysdate,'DD-MON-YYYY
HH24:MI:SS')|| ' --> DBA_TOOL_TBS_GB_REMAIN_V7.5.1 DG name is: '||vDG);
SYS.DBMS_SYSTEM.ksdwrt(2, to_char(sysdate,'DD-MON-YYYY
HH24:MI:SS')|| ' --> DBA_TOOL_TBS_GB_REMAIN_V7.5.1 checking DG free space: '||
c1_rec.tablespace);
SELECT round(free_mb/1024) INTO GbRemain FROM V$ASM_DISKGROUP WHERE
UPPER(name) = UPPER(vDG);
vSql1 := 'alter tablespace ' || c1_rec.tablespace || ' add datafile
''+' || vDG || ''' size 100M autoextend on MAXSIZE UNLIMITED';
sys.dbms_system.ksdwrt(2, to_char(sysdate,'DD-MON-YYYY
HH24:MI:SS')||' '||vMsg1);
EXECUTE IMMEDIATE vSql1;
vSql1 := 'exec dbms_space_admin.tablespace_rebuild_bitmaps(''' ||
c1_rec.tablespace || ''')';
vMsg1 := 'Executing the following tablespace bitmap rebuild
maintenance: <' || vSql1 ||'>';
sys.dbms_system.ksdwrt(2, to_char(sysdate,'DD-MON-YYYY
HH24:MI:SS')||' '||vMsg1);
dbms_space_admin.tablespace_rebuild_bitmaps(c1_rec.tablespace);
END IF;
END IF;
END LOOP;
SYS.DBMS_SYSTEM.ksdwrt(2, to_char(sysdate,'DD-MON-YYYY HH24:MI:SS')|| ' -->
DBA_TOOL_TBS_GB_REMAIN_V7.5.1 complete');
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('DBA_TOOL_TBS_GB_REMAIN_V7.5.1 Procedure Failed.
Error: '|| SQLERRM);
END;