Tamaño de una base de datos

Problema:

Necesitamos saber el espacio que nos ocupa una base de datos, para por ejemplo poder clonarla en otro entorno

Solución:

Para ello lo que haremos será sumar los tamaños de los data_files, dba_temp_files, redo_logs y control_file

 SQL> SELECT SUM(bytes)/1024/1024/1024 data_size from dba_data_files;

 DATA_SIZE
----------
38.2902832

SQL> select nvl(sum(bytes),0)/1024/1024/1024 temp_size from dba_temp_files.
  2      
SQL> select nvl(sum(bytes),0)/1024/1024/1024 temp_size from dba_temp_files;

 TEMP_SIZE
----------
32.0693207

SQL> select sum(bytes)/1024/1024/1024 redo_size from sys.v_$log.
  2  ^C

SQL> select sum(bytes)/1024/1024/1024 redo_size from sys.v_$log;

 REDO_SIZE
----------
         4

SQL> select sum(BLOCK_SIZE*FILE_SIZE_BLKS)/1024/1024/1024 controlfile_size from v$controlfile;

CONTROLFILE_SIZE
----------------
      .017944336

Realizamos la suma de todas las querys y con esto tenemos el tamaño total de la base de datos