DBMS_SCHEDULER está ocupando todo o meu tablespace SYSAUX. Eu executei dbms_scheduler.purge_log
que excluí 100 milhões de linhas de dba_scheduler_job_run_details
, no entanto, v$sysaux_occupants
o tamanho do arquivo de dados permanece inalterado. Existe alguma ação adicional que preciso tomar para limpar o espaço de tabela SYSAUX dos dados gerados pelo DBMS_SCHEDULER?
A tentativa de inserir uma única linha em uma tabela recém-criada em meu tablespace regular falha com:
ORA-01658: unable to create INITIAL extent for segment in tablespace SYSAUX
Posso ver que JOB_SCHEDULER
está ocupando 92,4% do tablespace SYSAUX consultando v$sysaux_occupants
:
SELECT
occupant_name,
round (sum(space_usage_kbytes) * 100 / sum (sum(space_usage_kbytes)) over (), 2) Pct
FROM v$sysaux_occupants
GROUP BY occupant_name
ORDER BY 2 desc NULLS LAST
;
Eu originalmente tinha mais de 100 milhões de linhas em dba_scheduler_job_run_details.
Ontem, executei o comando purge (que levou 3,5 horas):
BEGIN
dbms_scheduler.purge_log;
END;
/
Hoje, dba_scheduler_job_run_details
tem menos de 1 mil linhas.
No entanto, a consulta v$sysaux_occupants
permanece inalterada; hoje ainda diz que JOB_SCHEDULER
está ocupando 92,4%. Da mesma forma, consultar os tamanhos dos meus arquivos de dados mostra que o SYSAUX ainda está no máximo:
select d.TABLESPACE_NAME, d.FILE_NAME, d.BYTES/1024/1024 SIZE_MB, d.AUTOEXTENSIBLE, d.MAXBYTES/1024/1024 MAXSIZE_MB, d.INCREMENT_BY*(v.BLOCK_SIZE/1024)/1024 INCREMENT_BY_MB
from dba_data_files d,
v$datafile v
where d.FILE_ID = v.FILE#
order by d.TABLESPACE_NAME, d.FILE_NAME;
Parece que na verdade não excluí o espaço consumido por DBMS_SCHEDULER.
Existe alguma etapa que estou faltando para limpar todo o espaço consumido pelo DBMS_SCHEDULER?
Para liberar espaço para o tablespace SYSAUX, você pode tentar: