缩小回滚段
ALTER ROLLBACK SEGMENT rsone 
   SHRINK TO 100 M;
缩小回滚段数据文件
ALTER DATABASE  
    DATAFILE 'disk1:db1.dat' RESIZE 10 M;
最好在创建回滚段是指定好optimal值

解决方案 »

  1.   

    你用的oracle什么操作系统的什么版本呢?
    如果是8.1.7/Unix的话,可以直接修改oralce的配置文件:init$sid.ora中关于rollback的部分(减少segments的个数)。rollback_segments = ( RBS0, RBS1, RBS2, RBS3, RBS4, RBS5, RBS6, RBS7, RBS8, RBS9, RBS10, RBS11, RBS12, RBS13, RBS14, RBS15, RBS16, RBS17, RBS18, RBS19, RBS20,RBS21, RBS22, RBS23, RBS24 )如只保留RBS0-RBS10, 每个oracle默认的segment大小好象是15M.用sql*plus 进数据库,把原来的计划不用的segments drop 掉。重新启动数据库就可以了。
      

  2.   

    如果你的oracle版本是oracle9i,可以参考以下的做法:
    1:alter system set undo_tablespace = '';
    2:使用OEM工具删除UNDOTBS1的空间
    3:重新建立UNDOTBS空间
    4:alter system set undo_tablespace = 'UNDOTBS';
      

  3.   

    为什么我执行alter system set undo_tablespace = 'UNDOTBS';这一句的时候,
    告诉我错误:
    ORA-02097: 无法修改参数,因为指定的值无效
    ORA-30012: 撤消表空间 'UNDOTBS' 不存在或类型不正确
    但是alter system set undo_tablespace = ''没有错误