Chinaunix首页 | 论坛 | 博客
  • 博客访问: 542738
  • 博文数量: 128
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 1345
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-22 21:43
文章分类

全部博文(128)

文章存档

2009年(30)

2008年(98)

我的朋友

分类: Oracle

2008-10-07 12:56:30

撤销表空间撑满磁盘后的处理

由于没有注意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) |
给主人留下些什么吧!~~