Script para obtener la ocupación de nuestros Tablespaces en Oracle

lunes 18 de octubre de 2010
Muchas veces se nos da el caso de que no tenemos a mano la consola de ventanas de Oracle y necesitamos saber el tamaño y la ocupación de nuestros Tablespaces. Para ello, os voy a dejar un pequeño script el cual os mostrará los nombres de los Tablespaces y la ocupación de los mismos en %:


select sysdate from dual;
col MB_Asignados format 999g999
col MB_Libres format 999g999d9
col MB_Ocupados format 999g999d9
col Ocupacion_x100 format 99d9
col TableSpace format A15


break on Report
compute sum LABEL TOTALES OF MB_Asignados MB_Libres MB_Ocupados on Report;


select
a.tablespace_name TableSpace,
a.Totalasig/1024/1024 MB_Asignados,
b.Libre/1024/1024 MB_Libres,
(a.Totalasig - b.Libre)/1024/1024 MB_Ocupados,
((a.Totalasig - b.Libre) * 100)/a.Totalasig Ocupacion_x100
from
(select tablespace_name, sum(bytes) Totalasig
from dba_data_files
group by tablespace_name) a,
(select tablespace_name , sum(bytes) Libre, max(bytes) Mayor_blk
from dba_free_space
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name;


Como veis este pequeños script lo que hace es hacer una consulta de la dba_datafiles y compararla con la dba_free_space obteniendo así los valores que nos interesan, un ejemplo de la ejecución del script sería este:

TABLESPACE MB_ASIGNADOS MB_LIBRES MB_OCUPADOS   OCUPACION_X100
---------------        ------------                  ----------            -----------                    --------------
SYSTEM          510                           303.9                206.1                        40.4
TS_PRUEBA   2,000                        596.1                1,403.9                     70.2
PROBANDO1  3,071                        3,010.1              60.9                          2.0
PROBANDO2   4,000                        3,792.8             207.3                         5.2
PROBANDO3   3,000                        2,631.3             368.7                        12.3
PROBANDO4  1,000                        907.2                92.8                          9.3
PROBANDO5  2,047                        1,768.7             278.3                        13.6
TS_UNDO        510                          479.7                30.3                           5.9
                          ------------                  ----------            -----------
TOTALES        16,138                     13,489.7           2,648.3

Este script nos puede venir muy bien para crear a su vez otro script que nos mande por correo las alertas de ocupación en nuestras BD Oracle o también para tener un pequeño log del resumen de ocupación de nuestras Bases de Datos.

Un saludo

0 comentarios:

Publicar un comentario en la entrada