Administrando Tablespace e Data File no Oracle
Script para identificar o espaço total, utilizado e livre de cada data file.
por Darci Leandro
Olá pessoal,
Uma das principais tarefas de um DBA é saber administrar bem os tablespace e seus data files.
Se o DBA não souber administrar com eficiência os tablespace, poderão ocorrer sérios problemas, pois, os data files poderão chegar ao seu limite máximo definido e com isso o banco de dados pode “parar”.
Existem várias formas de você administrar os tablespace, desde as ferramentas que a Oracle disponibiliza como ferramentas gráficas de terceiros e principalmente através de linha de comando.
Muitas vezes estamos fazendo tarefas nos servidores e pode não existir ferramenta gráfica instalada e nesse caso precisamos utilizar linha de comando.
Segue agora um script e logo na seqüência um relatório que será gerado por esse script.
Com ele você poderá analisar cada tablespace e seus data files.
Script
spool c:\temp\resultado.log
set pagesize 80
set linesize 95
set feedback off
set heading on
set numformat 999,999.99
column tablespacename format a15
column datafile format a40
ttitle center "Espaco total, utilizado e livre de cada Data File por Tablespace" skip 2
break on tablespacename skip 2 on report skip 3
compute sum of Total(MB) on tablespacename
compute sum of Used(MB) on tablespacename
compute sum of Free(MB) on tablespacename
compute sum of Total(MB) on report
compute sum of Used(MB) on report
compute sum of Free(MB) on report
select ddf.tablespace_name "TablespaceName"
, ddf.file_name "DataFile"
, ddf.bytes/(1024*1024) "Total(MB)"
, round((ddf.bytes - sum(nvl(dfs.bytes,0)))/(1024*1024),1) "Used(MB)"
, round(sum(nvl(dfs.bytes,0))/(1024*1024),1) "Free(MB)"
from sys.dba_free_space dfs left join sys.dba_data_files ddf
on dfs.file_id = ddf.file_id
group by ddf.tablespace_name, ddf.file_name, ddf.bytes
order by ddf.tablespace_name, ddf.file_name;
ttitle off
spool off
Relatório de saída
Espaco total, utilizado e livre de cada Data File por Tablespace
TablespaceName DataFile Total(MB) Used(MB) Free(MB)
--------------- ---------------------------------------- ----------- ----------- -----------
DLTECNOLOGIA C:\TEMP\DLTECNOLOGIA_01.DBF 28.00 .10 127.90
C:\TEMP\DLTECNOLOGIA_02.DBF 64.00 .10 63.90
C:\TEMP\DLTECNOLOGIA_03.DBF 32.00 .10 31.90
*************** ----------- ----------- -----------
sum 224.00 .30 223.70
SYSAUX C:\ORACLEXE\ORADATA\XE\SYSAUX.DBF 450.00 430.80 19.30
*************** ----------- ----------- -----------
sum 450.00 430.80 19.30
SYSTEM C:\ORACLEXE\ORADATA\XE\SYSTEM.DBF 340.00 335.30 4.70
*************** ----------- ----------- -----------
sum 340.00 335.30 4.70
UNDO C:\ORACLEXE\ORADATA\XE\UNDO.DBF 90.00 12.70 77.30
*************** ----------- ----------- -----------
sum 90.00 12.70 77.30
USERS C:\ORACLEXE\ORADATA\XE\USERS.DBF 100.00 1.60 98.40
*************** ----------- ----------- -----------
sum 100.00 1.60 98.40
----------- ----------- -----------
sum 1,204.00 780.70 423.40
Conclusão
Analisando o relatório de saída conseguimos identificar quais são os arquivos que estão chegando ao seu limite, os arquivos que estão sobrando espaço e até mesmo a possibilidade fazer uma melhor distribuição dos arquivos em discos diferentes visando o aumento de performance de I/O.
Boa sorte a todos e até a próxima...