Translate

vendredi 15 mai 2015

Script - DB SIZE

Bonjour

      Voici un petit script pour estimer la taille de la base de données


SET LINESIZE 200
COL TRI2 NOPRINT
COL GBYTES FORMAT 999,999,999,999.99
BREAK ON GTOTAL ON REPORT
BREAK ON STOTAL ON TYPE
COMPUTE SUM OF GBYTES ON TYPE
SELECT '1' TRI2, 'DATA' TYPE, TRI, GBYTES
 FROM ( SELECT TRI, SUM(GO) GBYTES
          FROM (SELECT 'DATAFILES' TRI, NAME FICHIER, BYTES/1024/1024/1024 GO
                  FROM V$DATAFILE  --DBA_DATA_FILES
                UNION
                SELECT 'TEMPFILES' TRI, NAME FICHIER, BYTES/1024/1024/1024 GO
                  FROM V$TEMPFILE  --DBA_TEMP_FILES 
                UNION
                SELECT 'CONTROLFILES' TRI, NAME FICHIER , BLOCK_SIZE*FILE_SIZE_BLKS/1024/1024/1024 GO
                  FROM V$CONTROLFILE 
                 ORDER BY TRI  )
         GROUP BY TRI
        ) A
UNION   
SELECT '2' TRI2, 'ARCHIVE' TYPE, 'ARCHIVELOG' TRI, ROUND(SUM(BLOCKS*BLOCK_SIZE/1024/1024/1024),2) GBYTES
   FROM V$ARCHIVED_LOG
  WHERE DELETED = 'NO' 
UNION
SELECT '3' TRI2, 'REDOLOGS' TYPE, 'REDOLOGS' TRI, ROUND(SUM(A.BYTES)/1024/1024/1024,2) GBYTES
  FROM V$LOG A, V$LOGFILE B
 WHERE A.GROUP# = B.GROUP#
ORDER BY TRI2  ;