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 2 statement per recuperare lo spazio allocato ma non utilizzato dei TABLESPACE.
Questo ci permette di recuperare lo spazio sul disco, quindi in caso di emergenza, possiamo provare a recuperare qualche GB non utilizzato dai TABLESPACE.

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;

Query per vedere i TEMPFILE e le dimensioni del TABLESPACE TEMP

.

Con l’articolo Query per vedere i TEMPFILE e le dimensioni
del TABLESPACE TEMP è possibile individuare il TABLESPACE
TEMP.
Inoltre è possibile individuare i temp file associati e le relative dimensioni.
Quindi possiamo aggiungere temp file o modificare un temp file esistente.

Il tablespace TEMP è dedicato agli ordinamenti degli statement eseguiti dagli utenti.

I campi selezionati sono:

TABLESPACE_NAME – Nome del tablespace
FILE_NAME – Nome dei temp file
BYTES – Dimensione dei temp file trasformati in MB
MAXBYTES – Dimensione massima raggiungibile dai temp file
AUTOEXTENSIBLE – Indicatore se il temp file è auto estendibile
STATUS – Stato del temp file

I dati sono recuperati dalle tabelle:

DBA_TEMP_FILES E DBA_TABLESPACES

Infine sono messe in relazione dalla JOIN a.tablespace_name = b.tablespace_name

col file_name for a69 
col tablespace_name for a20 
set lines 200 
set pages 999 
select a.tablespace_name, 
--a.file_id, 
a.file_name, 
a.bytes/(1024*1024) MB_ATT, 
a.MAXBYTES/(1024*1024) MB_MAX,substr(a.AUTOEXTENSIBLE,1,1) AUTOEXT, b.status
from dba_temp_files a, dba_tablespaces b
where a.tablespace_name = b.tablespace_name
order by a.file_name;

Query per vedere i DATAFILE con AUTOEXTEND YES su un determinato FILESYSTEM o DISKGROUP ASM

.

Con Query per vedere i DATAFILE con AUTOEXTEND YES su un determinato FILESYSTEM o DISKGROUP ASM, forniamo una utilissima query
per individuare i data file aperti su un file system
o un diskgroup ASM.

Se lo spazio sul file system o sul disk group ASM sta per terminare,
abbiamo la necessità di terminare la scrittura di tutti i data file con l’autoextend aperto.
Quindi una volta individuati i data file, impostiamo l’AUTOEXTEND a NO.

I campi selezionati sono:

TABLESPACE_NAME – Nome tablespace
FILE_NAME – Nome dei datafile
BYTES – Dimensione trasformata in MB
MAXBYTES – Dimensione massima che può raggiungere il data file trasformato in MB
AUTOEXTENSIBLE – Indicatore se il data file è auto estensibile
STATUS – Stato del data file

I dati sono recuperati dalle tabelle:

Infine sono messe in relazione dalla JOIN a.tablespace_name = b.tablespace_name

Query per vedere i DATAFILE con AUTOEXTEND YES su un determinato FILESYSTEM o DISKGROUP ASM

col file_name for a69
col tablespace_name for a20
set lines 300
set pages 999
select a.tablespace_name, a.file_name, a.bytes/1024/1024 MB_ATT,
a.MAXBYTES/1024/1024 MB_MAX,substr(a.AUTOEXTENSIBLE,1,1) AUTOEXT, b.status
from dba_data_files a, dba_tablespaces b
where a.file_name like '%&1%'
and a.tablespace_name = b.tablespace_name
and a.AUTOEXTENSIBLE='YES' 
order by MB_ATT;

Query per vedere le dimensioni di tutte le TABLESPACE del database Oracle

.

Con l’articolo Query per vedere le dimensioni di tutte le TABLESPACE del database Oracle,
è possibile individuare tutte le dimensioni relative ai TABLESPACE.

I campi selezionati sono:

TABLESPACE_NAME – Nome dei tablespace
TOTAL_AUTO_MB – Spazio totale del Tablespace in MB
TOTAL_NOW_MB – Spazio totale allocato del tablespace in MB
USED_MB – Spazio utilizzato del tablespace in MB
FREE_MB – Spazio libero già allocato del tablespace in MB
POS._FREE_MB – Spazio libero in MB che ancora può utilizzare dall’AUTOEXTEND
% USED – Percentuale di spazio utilizzato
% POSSIB_USED – Percentuale di spazio che può ancora utilizzare dall’AUTOEXTEND

Le informazioni sono recuperate dalle tabelle DBA_FREE_SPACE, DBA_DATA_FILES.

Infine le tabelle sono messe in relazione attraverso la JOIN
a.tablespace_name = b.tablespace_name (+).

set linesize 200
col tablespace_name for a25
col "Total Auto Mb"  for 999,999,999,999
col "Total Now Mb" for 999,999,999,999
col "Used Mb"   for 999,999,999,999
col "Free Mb"  for 999,999,999,999
col "Pos. Free Mb" for 999,999,999,999
col "Total Auto Mb"
col "% Used" for a10
col "% Possib. Used" for a10
col  dummy noprint
break on dummy
compute sum of "Total Mb" on dummy
compute sum of "Used Mb"  on dummy
compute sum of "Free Mb" on dummy
select null dummy ,
a.tablespace_name ,
a.total_possible as "Total Auto Mb" ,
a.total as "Total Now Mb",
a.total-nvl(b.free,0) as "Used Mb"
,nvl(b.free,0) as "Free Mb",
a.total_possible-(a.total-nvl(b.free,0)) as "Pos. Free Mb",
trunc(((a.total-nvl(b.free,0))/a.total)*100)||'%' as "% Used",
trunc(((a.total-nvl(b.free,0))/a.total_possible)*100)||'%' as "% Possib. Used"
from (select tablespace_name,trunc(sum(bytes)/1024/1024) free
from dba_free_space group by tablespace_name) b,
(select tablespace_name,trunc(sum(greatest(bytes,maxbytes))/1024/1024) total_possible ,
trunc(sum(bytes)/1024/1024) total
from dba_data_files group by tablespace_name) a
where a.tablespace_name = b.tablespace_name (+)
--and b.tablespace_name='USERS'
order by 2
/

Query per vedere i DATAFILE con le relative dimensioni di una TABLESPACE

.

Con l’articolo Query per vedere i DATAFILE con le relative dimensioni di una TABLESPACE,
forniamo una query molto utile per vedere i data file che compongono un TABLESPACE.

I campi selezionati sono

TABLESPACE_NAME – Nome del tablespace
FILE_NAME – Nome dei data file che compongono una tablespace
BYTES – Dimensione del data file trasformato in MB
MAXBYTES – Dimensione massima che può raggiungere il data file
AUTOEXTENSIBLE – Indicatore se il data file è auto estensibile
STATUS – Lo stato del datafile se ONLINE o OFFLINE

Le informazioni sono recuperate dalle tabelle DBA_DATA_FILES
e dalla tabella DBA_TABLESPACE
e messe in relazione dalla JOIN
a.tablespace_name = b.tablespace_name.

col file_name for a55 
col tablespace_name for a22 
set lines 200 
set pages 999 
col status for a7
select a.tablespace_name, 
--a.file_id, 
a.file_name, 
a.bytes/(1024*1024) MB_ATT, 
a.MAXBYTES/(1024*1024) MB_MAX,substr(a.AUTOEXTENSIBLE,1,1) AUTOEXT, b.status
from dba_data_files a, dba_tablespaces b
where a.TABLESPACE_NAME LIKE '%&tbsp%'
and a.tablespace_name = b.tablespace_name
--and a.AUTOEXTENSIBLE='YES' 
order by a.file_name;
Wordpress Social Share Plugin powered by Ultimatelysocial
Facebook
Facebook
YouTube
LinkedIn