Query per recuperare spazio disco allocato dai DATAFILE ma non utilizzato
Con l’articolo Query per recuperare spazio disco allocato dai DATAFILE ma non utilizzato, forniamo uno statement che permette di recuperare lo spazio sul disco, quindi in caso di emergenza, possiamo provare a recuperare qualche GB non utilizzato dai TABLESPACE.
Bene, prima di partire con l’articolo “Query recuperare spazio allocato dai DATAFILE” vorremmo introdurre questo sito a te che lo vedi per la prima volta!
Scriptdba è il primo sito verticale su database Oracle completamente in italiano. In realtà durante il 2020 usciremo con la versione in inglese, ma l’italiano ci sarà sempre e comunque.
Hai capito bene, un sito in doppia lingua. Perchè? Perchè a noi piace fare le cose semplici, semplici per voi lettori ovviamente! (un po meno per noi).
Su scriptdba.com troverai guide, tutorial e troubleshooting sul database più enterprise che ci sia!
Lo spazio è recuperabile solo se contiguo, quindi se troppo frammentato occorrerà effettuare attività di reorg per avere una scrittura in lineare e senza frammentazione.
Statement per recuperare lo spazio da tutti i data file di un determinato file system:
set pages 999
set lines 300
select 'alter database datafile ''' || file_name || ''' resize ' || ceil( (nvl(hwm,1)*(select DISTINCT BLOCK_SIZE from dba_tablespaces))/1024/1024 ) || 'm;' cmd
from dba_data_files a, ( select file_id, max(block_id+blocks-1) hwm from dba_extents group by file_id) b
where a.file_id = b.file_id(+)
and a.file_name like '%/&file_system%'
and ceil(blocks*(select DISTINCT BLOCK_SIZE from dba_tablespaces)/1024/1024)- ceil((nvl(hwm,1)*(select DISTINCT BLOCK_SIZE from dba_tablespaces))/1024/1024 ) > 0;
Statement per recuperare lo spazio da tutti i datafile di un TABLESPACE:
set pages 999
set lines 300
select 'alter database datafile ''' || file_name || ''' resize ' || ceil( (nvl(hwm,1)*(select DISTINCT BLOCK_SIZE from dba_tablespaces))/1024/1024 ) || 'm;' cmd
from dba_data_files a, ( select file_id, max(block_id+blocks-1) hwm from dba_extents group by file_id) b
where a.file_id = b.file_id(+)
and a.tablespace_name ='&tbsp'
and ceil(blocks*(select DISTINCT BLOCK_SIZE from dba_tablespaces)/1024/1024)- ceil((nvl(hwm,1)*(select DISTINCT BLOCK_SIZE from dba_tablespaces))/1024/1024 ) > 0;
Per visionare le nostre guide sui Comandi CRS clicca qui!
A questo LINK, invece, troverai le query SQL
Per chi ancora non lo avesse fatto, consigliamo di salvare tra i propri bookmark questo sito, così da avere sempre a portata di mano le nsotre soluzioni ai problemi più comuni su database, in particolar modo, database oracle.
Resta aggiornato sulle nostre attività entrando a far parte della nostra community:
Facebook
Youtube
Linkedin
- Query per recuperare spazio disco allocato dai DATAFILE ma non utilizzato
- Query per vedere i TEMPFILE e le dimensioni del TABLESPACE TEMP
- Query per vedere i DATAFILE con AUTOEXTEND YES su un determinato FILESYSTEM o DISKGROUP ASM
- Query per vedere le dimensioni di tutte le TABLESPACE del database Oracle
- Query per vedere i DATAFILE con le relative dimensioni di una TABLESPACE
0 commenti