MONITORAR TABLESPACES
Para você gerenciar tablespace de forma eficiente é necessário fazer:
1) Apenas 1 datafile com AUTOEXTEND
2) Apenas esse datafile irá ser monitorado. Quanto de espaço ainda tem?
-- MONITORACAO 1
-- =============
--
-- ALERTA AS TABLESPACES QUE TEM MAIS DE UM
-- DATAFILE COM AUTOEXTEND %%%%% > 1
--
SELECT TABLESPACE_NAME, COUNT (*)
FROM DBA_DATA_FILES
where AUTOEXTENSIBLE ='YES'
HAVING COUNT (*)>1
GROUP BY TABLESPACE_NAME
union
SELECT TABLESPACE_NAME, COUNT (*)
FROM DBA_temp_FILES
where AUTOEXTENSIBLE ='YES'
HAVING COUNT (*)>1
GROUP BY TABLESPACE_NAME
/
Irá aparecer todas as tablespaces que tem mais de um datafile com autoextend
Cria um alarme.
Solução = deixar apenas o ultimo datafile com autoextend.
-- MONITORACAO 2
-- =============
--
-- ALERTA AS TABLESPACES QUE NÃO ESTÃO COM AUTOEXTEND
--
select '-1964' from dual
union
(SELECT TABLESPACE_NAME
FROM DBA_DATA_FILES
MINUS
SELECT DISTINCT TABLESPACE_NAME
FROM DBA_DATA_FILES
WHERE AUTOEXTENSIBLE ='YES')
UNION
(SELECT TABLESPACE_NAME
FROM DBA_TEMP_FILES
MINUS
SELECT DISTINCT TABLESPACE_NAME
FROM DBA_TEMP_FILES
WHERE AUTOEXTENSIBLE ='YES')
/
Cria um alarme para o resultado <> -1964
-- MONITORACAO 3
-- =============
-- ALERTA PARA O ESPAÇO -- CRITICO (VERMELHO) > 90%
--
SELECT a.BYTES/1024/1024,a.MAXBYTES/1024/1024,
round(((a.MAXBYTES/a.BYTES)-1)*100,0) "%",
a.TABLESPACE_NAME,
a.file_name,
ROUND (a.INCREMENT_BY*b.BLOCK_SIZE/1024/1024,0) "AUTOEXTEND MB"
FROM DBA_DATA_FILES a, dba_tablespaces b
where a.AUTOEXTENSIBLE ='YES'
and a.tablespace_name(+)=b.tablespace_name
AND ((a.MAXBYTES/a.BYTES)-1)*100 <10
/
Alerta critico
falta pouco para chegar ao maxsize
tem que criar um novo datafile e colocar o anterior com autoextend off
-- MONITORACAO 4
-- =============
-- ALERTA PARA ESPAÇO - NÃO CRITICO (AMARELO) >80%
SELECT a.BYTES/1024/1024,
a.MAXBYTES/1024/1024,
round(((a.MAXBYTES/a.BYTES)-1)*100,0) "%",
a.TABLESPACE_NAME,
a.file_name,
ROUND (a.INCREMENT_BY*b.BLOCK_SIZE/1024/1024,0) "AUTOEXTEND MB"
FROM DBA_DATA_FILES a, dba_tablespaces b
where a.AUTOEXTENSIBLE ='YES'
and a.tablespace_name(+)=b.tablespace_name
AND ((a.MAXBYTES/a.BYTES)-1)*100 <20
/
Alerta esta a caminho do critico
falta pouco para chegar ao maxsize
tem que criar um novo datafile e colocar o anterior com autoextend off
Grato a todos