- This topic has 1 reply, 2 voices, and was last updated 8 years, 1 month ago by José Laurindo Chiappa.
-
AuthorPosts
-
17 de outubro de 2016 at 7:35 pm #108468airoospParticipant
Boa tarde,
Esta ocorrendo uma situação estranha, ou melhor eu não tinha visto o cenário abaixo ocorrer.
Há uma tablespace específica para um sistema, só que este sistema não esta mais sendo utilizado, consequentemente, o espaço utilizado pela tablespace não deveria estar aumentando, só que esta.
Este sistema utiliza, tables, functions, procedures, views, jobs, o detalhe é que as tabelas deste sistema não são atualizadas a muito tempo, e o jobs foram desativados.
Já verifiquei e não há objetos de outros schemas nesta tablespace, então porque o espaço utilizado pela mesma tem aumentado?
A query que uso para verificar informações das tablespaces, é:
select nome_tablespace, status, tamanho, utilizado, livre, percentual_utilizado
from
(
select a.TABLESPACE_NAME NOME_Tablespace,
c.status status,
round(a.BYTES / 1048546 ,2) Tamanho,
round((a.BYTES – b.BYTES) / 1048546,2) Utilizado,
round(b.BYTES / 1048546 ,2) Livre,
round(((a.BYTES-b.BYTES)/a.BYTES)*100,2) Percentual_Utilizado
from
(
select TABLESPACE_NAME, sum(BYTES) BYTES
from dba_data_files
group by TABLESPACE_NAME
)
a,
(
select TABLESPACE_NAME, sum(BYTES) BYTES, max(BYTES) largest
from dba_free_space
group by TABLESPACE_NAME
)
b,
sys.dba_tablespaces c
where a.TABLESPACE_NAME = b.TABLESPACE_NAME
and b.TABLESPACE_NAME = c.TABLESPACE_NAMEunion all
SELECT d.tablespace_name NOME_Tablespace,
d.status status,
round(NVL(a.bytes, 0) / 1048546, 2) Tamanho,
round(NVL(t.bytes, 0) / 1048546, 2) Utilizado,
round((NVL(a.bytes, 0) – NVL(t.bytes, 0)) / 1048546, 2) livre,
round((NVL(t.bytes,0) / NVL(a.bytes,0)) * 100, 2) Percentual_Utilizado
FROM sys.dba_tablespaces d,
( select tablespace_name, sum(bytes) bytes
from dba_temp_files group by tablespace_name
) a,( select tablespace_name, sum(bytes_cached) bytes
from v$temp_extent_pool group by tablespace_name
) t,v$sort_segment s
WHERE d.tablespace_name = a.tablespace_name(+)
AND d.tablespace_name = t.tablespace_name(+)
AND d.tablespace_name = s.tablespace_name(+)
AND d.extent_management like ‘LOCAL’
AND d.contents like ‘TEMPORARY’
)
order by nome_tablespaceSe alguém tiver alguma dica, agradeço.
Obrigado.
Airton
18 de outubro de 2016 at 5:31 pm #108472José Laurindo ChiappaModeratorEntão, com TOTAL e ABSOLUTA CERTEZA, se as suas tablespaces não-temporárias (vejo que nas suas queries vc consulta tudo, mas Suponho que é não-tempo que vc está falando) estão aumentando de tamanho usado / diminuindo o tamanho livre, ** ALGUÉM ** ou ALGUMA COISA está fazendo DMLs nas tabelas que residem nas tablespaces : NÂO TEM COMO o RDBMS sair alocando espaço sozinho, sim sim ?? Isso é Conceitual…
Fica portanto por sua conta :a) consultar frequentemente quais os maiores objetos, pra identificar quem está consumindo/requisitando espaço – pra achar os 50 maiores objetos pode ser algo tipo :
SELECT * FROM (SELECT SUM(BYTES), OWNER, SEGMENT_TYPE, SEGMENT_NAME, TABLESPACE_NAME FROM DBA_SEGMENTS GROUP BY OWNER, SEGMENT_TYPE, SEGMENT_NAME, TABLESPACE_NAME order by 1 DESC) WHERE ROWNUM < 51;
E
B) aplicar algum tipo de Auditoria pra registrar Quem está fazendo DMLs que fazem os objetos já existentes crescerem OU DDLs criando/recriando novos objetos ou movimentando dados : pode ser via comando AUDIT, via trigger de DDL, Ou pode ser (como última opção, por ser a mais sujeita a erros) com amostragem constante do banco… Como eu disse, pode ser um ou mais usuários de banco que manualmente executam os DMLs/DDLs, pode ser um job fora do banco (via cron, talvez), pode ser uma Aplicação externa, pode ser um OUTRO database via dblink….
Que tem ALGO ou ALGUÉM usando, tá fora de questão, como eu disse sozinho um banco não cresce, não…[]s
Chiappa
OBS : é claro, se o "sistema dono dos dados não esta mais sendo utilizado", em tese Ninguém deveria estar nem inserindo nem alterando dados, ok ? Se é isso, não vejo o que te impede de simplesmente botar as tablespaces de usuários ** todas ** em modo READ-ONLY – garanto que ao fazer isso esse ALGO ou ALGUÉM que está usando o sistema /banco de dados que deveria estar sem uso vai receber um erro pela cara aí vai se manifestar…. Tipo assim…
-
AuthorPosts
- You must be logged in to reply to this topic.