存储故障导致 UNDO表空间无法删除

因为存储故障导致了oracle数据库的undo表空间下的一个文件损坏.
1.新建了一个undo表空间。
SQL>create undo tablespace PSAPUNDO2 datafile 'S:\ORACLE\PRD\SAPDATA1\UNDO_6\UNDO.DATA6' size 10G
SQL>alter system set undo_tablespace='PSAPUNDO2’;
2.删除原undo表空间
但是应用程序对undo表空间有要求,需要保持和原来相同的undo表空间名,在删除的时候出现了错误,无法正常删除。
SQL>alter database datafile 26 offline;
SQL>drop tablespace PSAPUNDO including contents.
ORA-01548 active rollback segment '_SYSSMU1$' found, terminate dropping tablespace
原因是有活动回滚段存在,删除回滚段也失败。
SQL> drop rollback segment "_SYSSMU1$";
3.屏蔽回滚段
SQL> select segment_name,status,tablespace_name from dba_rollback_segs;

这个时候需要做屏蔽回滚段的操作,将状态是活动回滚段屏蔽掉
SQL>create pfile='c:\pfile.ora' from spfile;
用文本编辑器打开pfile文件修改,把活动会滚动添加进去
_offline_rollback_segments= (_SYSSMU1$, _SYSSMU2$, _SYSSMU3$, _SYSSMU4$, _SYSSMU5$, _SYSSMU6$, _SYSSMU7$, _SYSSMU8$, _SYSSMU9$, _SYSSMU10$, _SYSSMU11$, _SYSSMU12$)
保存pfile
4.然后用这个pfile启动
SQL>startup mount pfile='c:\pfile.ora'
5.删除并重建undo表空间
SQL>drop tablespace PSAPUNDO including contents and datafiles;
SQL>create undo tablespace PSAPUNDO datafile 'S:\ORACLE\PRD\SAPDATA1\UNDO_1\UNDO.DATA1' size 10G
SQL>alter system set undo_tablespace='PSAPUNDO’;
6.创建spfile启动
将pfile中,刚才我们添加的offline_rollback_segments这一段删除,并把undo表空间也修改成PSAPUNDO,保存。
SQL>shutdown immediate
SQL>startup from pfile='c:\pfile.ora'
SQL>creat spfile from pfile='c:\pfile.ora'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值