UNDOTBS表空间是循环使用盘区的,如果最后一个盘区被使用完,则返回第一个盘区看是否被标记为可用,所以会不断增加

解决方案 »

  1.   

    修改回滚段的优化值alter rollback segment rb1 storage (optimal  5m);
      

  2.   

    SQL> alter rollback segment rb1 storage (optimal  5m);alter rollback segment rb1 storage (optimal  5m)ORA-30019: 自动撤消模式中的回退段操作非法
      

  3.   

    创建回退段时可以通过设置optimal存储参数指定最优大小,oracle会在回退段超过最优大小时自动缩减回退段
    或者用命令alter rollback segment roll_name shrinnk to 10M(大小)
      

  4.   

    oracle中的回滚段是这样子的,它是循环使用的,一旦分配就不会被系统回收,他将一直作为回滚表空间的一部分参与其它的处理
      

  5.   

    SQL> alter rollback segment roll_name shrink to 10M;alter rollback segment roll_name shrink to 10MORA-30019: 自动撤消模式中的回退段操作非法
      

  6.   

    减少undotbs的使用率,就要牺牲安全性,对大表的删除用truncate代替delete