我在新建的一个表空间里维护数据,而UNDOTBS01.DBF这个文件特别的大(好像是有2G多了,而表空间好像还不足100M呢)?
为什么?
如何处理(具体做法)?

解决方案 »

  1.   

    SQL> alter database datafile 'F:\ORACLE9I\ORA90\ORADATA\ORADB\UNDOTBS01.DBF' resize 200m;数据库已更改。SQL> 
      

  2.   


    不知道你的数据库是不是oracle 9201的。这个版本有这样一个bug,可行方案是:
    禁止其增长
    然后收缩表空间!
      

  3.   

    两种解决办法:
    1.升级到9205
    2.禁止undo tablespace自动增长如果要缩小现在的undo tablespace,则:
    -- Create new undo tablespace with smaller size.
    SQL> create undo tablespace UNDO_RBS1 datafile 'undorbs1.dbf' size 100m;-- Set new tablespace as undo_tablespace
    SQL> alter system set undo_tablespace=undo_rbs1;-- Drop the old tablespace.
    SQL> drop tablespace undo_rbs0 including contents.Symptoms
    Undo tablespace continues to increase in size. 
    Cause
    + The undo tablespace has Autoextend On specified.+ The Logic used by AUM is :1) A new extent will be allocated from the undo tablespace.
    2) If failed, try stealing an expired extent from another undo segment. This 
    involves shrinking from the other segment and adding to the current undo 
    segment.
    3) If failed, try reuse an unexpired extent from the current undo segment.
    4) If failed, try stealing an unexpired extent from another undo segment.
    5) If all failed, report an "Out-Of-Space" error.+ Current AUM segment extend algorithm will grow the segment before trying to 
    reuse expired extents of other segments. If it is an extensible undo tablespace,
    the tablespace may continue to grow. + Though Ideally it should, perform auto extension of the undo tablespace only 
    after the stealing of expired extents but before stealing unexpired extents. + This problem is documented in Bug 2660394 which is fixed in 9.2.0.5
      

  4.   

    alter tablespace datafile '路径' resize 3000m;