DBMS_SCHEDULER 占用了我所有的 SYSAUX 表空间。我运行了dbms_scheduler.purge_log
which 从 中删除了 1 亿行dba_scheduler_job_run_details
,但是v$sysaux_occupants
数据文件大小保持不变。我需要采取一些额外的措施来清除 DBMS_SCHEDULER 生成数据的 SYSAUX 表空间吗?
尝试将单行插入到我的常规表空间中新创建的表中失败:
ORA-01658: unable to create INITIAL extent for segment in tablespace SYSAUX
我可以通过查询看到它JOB_SCHEDULER
占用了 SYSAUX 表空间的 92.4% 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
;
我最初在 dba_scheduler_job_run_details 中有超过 1 亿行。
昨天,我运行了 purge 命令(耗时 3.5 小时):
BEGIN
dbms_scheduler.purge_log;
END;
/
今天,dba_scheduler_job_run_details
有不到 1K 行。
但是,查询v$sysaux_occupants
不变;今天它仍然说JOB_SCHEDULER
是占92.4%。同样查询我的数据文件大小显示 SYSAUX 仍然被最大化:
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;
看来我实际上并没有删除 DBMS_SCHEDULER 占用的空间。
我是否缺少一些步骤来清理 DBMS_SCHEDULER 消耗的所有空间?
要向 SYSAUX 表空间释放空间,您可以尝试: