撤销表空间撑满磁盘后的处理
由于没有注意COMMIT,导致一个大事务的存储过程用尽了撤销表空间的磁盘
处理如下:
由于D盘已满,撤销表空间建在E盘上
1.创建撤销表空间
SQL> create undo tablespace undotbs2
2 datafile 'e:\oradata\undo\undotbs2.dbf'
3 size 200M autoextend on next 50M;
2.切换系统所使用的撤销表空间
SQL> show parameter undo_tablespace
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_tablespace string UNDOTBS1
SQL> alter system set undo_tablespace = UNDOTBS2;
3.等待旧的撤销表空间的所有事务全部撤销,撤销回滚段为offline
可能需要等很久
select segment_name, tablespace_name, status from dba_rollback_segs;
如果撤销表空间正在使用,则drop会发生ORA-30013错误
SQL> drop tablespace undotbs1;
drop tablespace undotbs1
*
ERROR 位于第 1 行:
ORA-30013: 撤消表空间 'UNDOTBS1' 当前正在使用中
4.drop掉undotbs1
drop tablespace undotbs1;
阅读(1062) | 评论(0) | 转发(0) |