Oracle XE SYSAUX空间

时间:2016-08-07 14:28:07

标签: oracle oracle-xe

我有一个Oracle XE数据库,SYSAUX.DBF文件是14GB。

我运行这个脚本:

select occupant_desc, space_usage_kbytes
  from v$sysaux_occupants
  where space_usage_kbytes > 0 order by space_usage_kbytes desc;

这就是结果:

XDB 385920
Server Manageability - Automatic Workload Repository    92608
Server Manageability - Optimizer Statistics History 68352
Oracle Spatial  48896
Unified Job Scheduler   29888
LogMiner    12544
Server Manageability - Advisor Framework    7808
Server Manageability - Other Components 6720
Oracle Text 6272
Transaction Layer - SCN to TIME mapping 3328
SQL Management Base Schema  1728
PL/SQL Identifier Collection    1664
OLAP API History Tables 1536
Analytical Workspace Object Table   1536
Logical Standby 1408
Oracle Streams  1024
Automated Maintenance Tasks 320

所以,它只有655MB。

当我尝试运行时:

alter database datafile 'C:\oraclexe\app\oracle\oradata\XE\SYSAUX.DBF' resize 1000m;

我收到了这个错误:

SQL Error: ORA-03297: file contains used data beyond requested RESIZE value
03297. 00000 -  "file contains used data beyond requested RESIZE value"
*Cause:    Some portion of the file in the region to be trimmed is
           currently in use by a database object
*Action:   Drop or move segments containing extents in this region prior to
           resizing the file, or choose a resize value such that only free
           space is in the trimmed.

有人可以帮助我如何减少我的SYSAUX.DBF文件?

1 个答案:

答案 0 :(得分:1)

使用的空间在文件的开头不是一组连续的块,而是分散在整个文件中。

这意味着“要修剪的区域中的某些文件部分当前正由数据库对象使用”

还给出了解决方案:“在调整文件大小之前,在此区域中删除或移动包含范围的段,或者选择一个调整大小值,使得只有空闲区域在修剪中。”

因此,您必须删除段,这几乎意味着删除表和/或索引,或移动它们。这不一定是一件容易的事,所以我首先想知道你为什么要这么做?