回滚段表空间数据文件损坏处理方法

回滚段表空间数据文件损坏处理方法

问题描述: 当一个回滚段表空间数据文件丢失或损坏时,而且又指定了另外的回归段表空间,此时数据库可以正常打开,查询、插入、删除数据等都没有问题,当新增一个表时,会提示如下错误:

 1

 

 

 

具体解决步骤如下:

1、 SHUTDOWN,以RESTRICT模式打开数据库:

 

SQL>STARTUP RESTRICT MOUNT;

 

2、 OFFLINE DROP选项删除丢失或损坏的数据文件:

 

SQL>alter database datafile 44 offline drop;

 

3、 打开数据库:

 

SQL>ALTER DATABASE OPEN;

 

4、 修改initSID.ora的文件,并且加入如下一行:

_corrupted_rollback_segments = (...)
这个参数应当包含ROLLBACK_SEGMENTS中损坏的表空间的所有的回滚段,例如:

_corrupted_rollback_segments = (_SYSSMU11$,_SYSSMU12$,_SYSSMU13$,_SYSSMU14$,_SYSSMU15$,_SYSSMU16$,_SYSSMU17$,_SYSSMU18$,_SYSSMU19$,_SYSSMU20$,_SYSSMU21$)

 

5、 RESTRICT模式指定pfile打开数据库:

 

SQL>STARTUP RESTRICT pfile="C:/oracle/product/10.2.0/db_1/database/initORCL.ORA";

 

6、删除掉损坏的数据文件所属的回滚段表空间:

 

SQL>DROP TABLESPACE "UNDOTEMP" INCLUDING CONTENTS AND DATAFILES;

7、重建回滚段表空间:

 

SQL>CREATE UNDO TABLESPACE UNDOTBS DATAFILE 'E:/oradata/ORCL/UNDOTBS.DBF' SIZE 100M REUSE AUTOEXTEND ON;

SQL>ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS;

SQL>DROP TABLESPACE UNDO0702 INCLUDING CONTENTS;

SQL>SELECT * FROM DBA_TABLESPACES;

 

8、在initSID.ora中把你重新创建的回滚段再一次包括进来,如:

 

undo_tablespace=UNDOTBS

 

9、以该pfile再次重启数据库,一切正常,表创建成功。

 

 

类似问题参考网址:http://it.china-b.com/oracle/yyjs/20090611/82193_1.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值