bloc PL / SQL pour connaitre l’occupation des tablespaces

Un bloc anonyme en PL/SQL pour déterminer si un, plusieurs ou tous les Tablespace d’une Base sont supérieur à une taille définie. Cette taille est définie dans le bloc, via la variable « critere ».

Utile pour rapidement savoir si l’occupation d’un ou plusieurs TBS arrive proche d’une taille précise en vue d’une alimentation, ou gros traitement


----------------- Occupation TBS
--
-- M.Ricois
--
-- Parametrage du curseur a realiser avant execution du script.
-- Variable "critere" de type "number" dont la valeur par défaut prendra la valeur souhaitee pour la selection, exprime en Go (exemple 2 pour 2GO). Valeur ci dessous par défaut : 1Go
--
set lines 120
set serveroutput on;
spool /tmp/chk_space_tbs.log
declare
-- Soit like ou in si on a la liste, ou tout les tbs.
-- Desactiver la ligne ci dessous qui correspond au besoin. Par defaut, tous les TBS sont analysés.
-- cursor list_tbs is select tablespace_name from dba_tablespaces where tablespace_name like '%TBS%';
-- cursor list_tbs is select tablespace_name from dba_tablespaces where tablespace_name in ('TBS1','TBS2');
cursor list_tbs is select tablespace_name from dba_tablespaces ;
tbs varchar2(20);
totnum number;
freenum number;
critere number :=1;
begin
open list_tbs;
LOOP
fetch list_tbs into tbs;
EXIT WHEN list_tbs %NOTFOUND;
select round(sum(bytes/1024/1024/1024),2) into totnum from dba_data_files where tablespace_name =tbs;
select round(sum(bytes/1024/1024/1024),1) into freenum from dba_free_space where tablespace_name =tbs;
if freenum Freespace : '|| freenum|| ' Go, pour un total de '||totnum||' Go');
end if;
commit;
end loop;
close list_tbs;
end ;
/
spool off

Exemple pour tous les TBS d’une base :


SQL> @occupation_tbs.sql
Tablespace SYSTEM moins de 1 Go de libre -> Freespace : .3 Go, pour un total de .78 Go
Tablespace SYSAUX moins de 1 Go de libre -> Freespace : .5 Go, pour un total de .98 Go
Tablespace UNDO moins de 1 Go de libre -> Freespace : .6 Go, pour un total de .59 Go
Tablespace TOOLS moins de 1 Go de libre -> Freespace : .1 Go, pour un total de .1 Go
Tablespace USERS moins de 1 Go de libre -> Freespace : .4 Go, pour un total de .39 Go
Tablespace INDX moins de 1 Go de libre -> Freespace : .4 Go, pour un total de .39 Go
Tablespace MGMT_ECM_DEPOT_TS moins de 1 Go de libre -> Freespace : 0 Go, pour un total de .12 Go
Tablespace MGMT_TABLESPACE moins de 1 Go de libre -> Freespace : .4 Go, pour un total de 7.91 Go
Tablespace MGMT_AD4J_TS moins de 1 Go de libre -> Freespace : .1 Go, pour un total de .2 Go

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s