如果数据文件已创建,可以使用ALTER DATABASE 语句为它应用自动增长方式,如:
ALTER DATABASE
DATAFILE 'C:\oracle\oradata\undotbs01.dbf' 
AUTOEXTEND ON
NEXT 512K
MAXSIZE 250M
上边的参数自己可以改
要取消自动增长方式,把ON改为OFF,并去掉下边两行即可

解决方案 »

  1.   

    TO starytx() :
      关键问题是该文件占据那么大的空间是否正常呢,而且我后来还发现:在两个小时内该文件又增大了2G。你说的方法我也试过了,但我在指定该文件大小的时候,只要小于现有文件大小的参数(即33G)就不能更改,这又是为什么呢?
      

  2.   

    TO: liuyi8903(好好学习)
    没有大的事务处理。
      

  3.   

    这个是回滚段用的表空间,是受oracle自己管理的,不能手动管理
    出现这种情况的原因可能是你经常有大量事务不提交,回滚段得不到释放跟数据的增量关系不大
    比如你有一个很大的表,update 其中一个字段,就会占用大量回滚段空间
    而且在你没提交的情况下,再执行一次,就有需要这么大空间
    别人在另一个进程中操作,也会引起同样的问题。如果这个表空间比你的正常表空间大很多,还是检查一下你的应用吧,看是不是因为太长时间不提交。或者某些大表的update忘加条件了?
      

  4.   

    TO: xinpingf(白开心) 
      先谢了。  这几天我一直在监控着,发现从9月6号开始到现在,除了当天在两个小时内增大了2G外,到现在为止是一点也没增加。  至于数据更新后肯定是提交了的,而且对各个表的update都是有条件的。  因此我为此非常郁闷:系统每天在运行,而且运行情况基本相同,为什么该文件会瞬间地突然陡增呢???  还望各位大虾帮忙。急!!!
      

  5.   

    可能是undo表空间被设置为自动增长,而某段时间内事务特别繁忙,因此undo表空间就不断的增长。因为oracle的回滚段在事务提交后还要保存一定时间,缺省是2小时。如果当前undo表空间有足够的剩余空间,那么已提交事务的回滚段在保存期内是不会被重用的。