oracle undo文件坏了,UNDO表空间数据文件损坏处理方法

UNDO表空间数据文件损坏处理方法

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

ORA-00604:递归SQL级别1出现错误

ORA-00376:此时无法读取文件 44

ORA-01110:数据文件44:'E/ORADATA/ORCL/UNDOTEMP.ORA'

具体解决步骤如下:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值