oracle9i回滚段表空间数据文件损坏或丢失后的恢复方法

原创 2004年09月17日 17:44:00

由于oracle回滚段表空间数据文件丢失导致数据库起不来,报ora-01157错误,对于回滚段数据文件丢失后的恢复,处理方法有很多,本例主要是用oracle隐含参数来恢复数据库的一个例子:

隐含参数的含义:

SQL> select KSPPDESC from X$KSPPI where ksppinm='_corrupted_rollback_segments';

KSPPDESC
----------------------------------------------------------------
corrupted undo segment list

具体操作步骤如下:

首先把初始化参数init.ora文件里自动管理改为手工管理,然后加入隐含参数:
#undo_management=AUTO
undo_tablespace=UNDOTBS
_corrupted_rollback_segments=(_SYSSMU1$,_SYSSMU2$,_SYSSMU3$,_SYSSMU4$,_SYSSMU5$,_SYSSMU6$,_SYSSMU7$,_SYSSMU8$,_SYSSMU9$,_SYSSMU10$)  

SQL>startup restrict  mount  (数据库启动到mount状态)
SQL> alter database datafile 'D:/ORACLE/ORADATA/ORCL/UNDOTBS01.DBF' offline drop;
Database altered.

SQL>alter database open;
Database opened.
SQL> show parameter undo

NAME TYPE VALUE
------------------------------------ ----------- ---------
undo_management string MANUAL
undo_retention integer 900
undo_suppress_errors boolean FALSE
undo_tablespace string UNDOTBS

SQL> drop tablespace undotbs including contents;  (假如回滚段里有活动事物,undo表空间可能会drop不掉,本例是回滚段里没有活动事物的时候)
Tablespace dropped.

重建undotbs表空间:
SQL> create undo tablespace undotbs datafile 'D:/ORACLE/ORADATA/ORCL/UNDOTBS01.DBF'
size 100M;
Tablespace created.

SQL> shutdown immediate  (关闭数据库)
Database closed.
Database dismounted.
ORACLE instance shut down.

编辑init.ora初始化参数文件,去掉隐含参数,设置
undo_management=AUTO
undo_tablespace=UNDOTBS
保存初始化参数init.ora文件,然后执行
SQL> startup mount
ORACLE instance mounted.
Total System Global Area 114061244 bytes
Fixed Size 282556 bytes
Variable Size 79691776 bytes
Database Buffers 33554432 bytes
Redo Buffers 532480 bytes
Database mounted.

SQL>alter database datafile 'D:/ORACLE/ORADATA/ORCL/UNDOTBS01.DBF' online;
Database altered.

SQL>alter database open;
Database opened.
SQL> show parameter undo

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_suppress_errors boolean FALSE
undo_tablespace string UNDOTBS

建议用隐含参数将数据库open后,立刻做个exp全备,如果数据量不大的话,最好的方法是重新建库,将exp出来的数据再imp进新数据库里。

至此,数据库恢复完毕。此方法不到万不得已不建议采用,最好的方法是用以前的数据文件的备份来做恢复,因为用加隐含参数的方法将数据库打开后,此时数据库有可能数据会不一致,因为对于回滚段里有活动事物的时候,数据库可能会丢失一些数据,主要是回滚段里有活动事物的那部分数据,因此做好数据库的备份是至关重要的,这样对于恢复起来就很简单方便。

版权声明:本文为博主原创文章,未经博主允许不得转载。

回滚段表空间中的一个数据文件丢失或者损坏的恢复方法的总结

回滚段表空间中的一个数据文件丢失或者损坏导致数据库无法识别它,在启动数据库的时候会出现ORA-1157, ORA-1110的错误,或者操作系统级别的错误,例如ORA-7360。在关闭数据库的时候(no...
  • annicybc
  • annicybc
  • 2007年02月26日 17:14
  • 1320

system表空间的数据文件损坏是否能恢复

核心数据文件备份与恢复(system表空间数据文件) 关键性数据文件分为:SYSTEM表空间的数据文件 和 UNDO_TABLESPACE 撤销表空间的数据文件 undo_tablespa...
  • cuiyan1982
  • cuiyan1982
  • 2015年04月23日 13:30
  • 721

oracle 回滚段数据文件损坏修复

以下内容转自:http://lovexueer.itpub.net/post/5072/4924112月26日(星期一)  测试环境:OS :XPDB:9201 本测试测试了如下情况:a.正常关闭数据...
  • peihexian
  • peihexian
  • 2008年03月03日 15:58
  • 2526

mysql innodb表空间损坏补救方法

---首先、要了解myisam类型引擎和innodb类型引擎数据表之间的区别     ◆1.InnoDB不支持FULLTEXT类型的索引。   ◆2.InnoDB 中不保存表的具体行数...
  • max18
  • max18
  • 2013年02月26日 13:32
  • 1269

Oracle表空间中的实际数据文件丢失的恢复

第一步:关闭数据库 shutdown immediate 第二步:以mount状态启动 startup mount 第三步:重新创建数据文件 例如:alter database c...
  • woqiang68
  • woqiang68
  • 2013年05月16日 18:02
  • 633

oracle9i回滚段表空间丢失后的处理方法

具体操作步骤如下:首先把初init.ora文件里自动管理改为手工管理,然后加入隐含参数:#undo_management=AUTOundo_tablespace=UNDOTBSSQL>startup ...
  • wiler
  • wiler
  • 2007年03月09日 15:31
  • 531

ORACLE 回滚段表空间数据文件丢失或损坏处理方法(2)

续上文:http://www.csdn.net/Develop/read_article.asp?id=20220II. 数据库是启动着的如果你检测到丢失或损坏了回滚段表空间的数据文件,并且数据库是运...
  • hrb_qiuyb
  • hrb_qiuyb
  • 2003年08月03日 17:10
  • 1010

ORACLE回滚段表空间数据文件丢失或损坏处理方法(转)

问题描述:这是一个回滚段表空间数据文件丢失或损坏的情景,这时oracle不能识别相应的数据文件。当你试图startup数据文件时会报ORA-1157,ORA-1110,并且可能会伴随着标识操作系统级别...
  • chensheng913
  • chensheng913
  • 2005年07月07日 18:07
  • 5799

ORACLE 回滚段表空间数据文件丢失或损坏处理方法(1)

问题描述:这是一个回滚段表空间数据文件丢失或损坏的情景,这时oracle不能识别相应的数据文件。当你试图startup数据文件时会报ORA-1157,ORA-1110,并且可能会伴随着标识操作系统级别...
  • hrb_qiuyb
  • hrb_qiuyb
  • 2003年08月03日 17:09
  • 1428

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

回滚段表空间数据文件损坏处理方法问题描述: 当一个回滚段表空间数据文件丢失或损坏时,而且又指定了另外的回归段表空间,此时数据库可以正常打开,查询、插入、删除数据等都没有问题,当新增一个表时,会提示如下...
  • furtherchan
  • furtherchan
  • 2009年07月14日 14:19
  • 430
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:oracle9i回滚段表空间数据文件损坏或丢失后的恢复方法
举报原因:
原因补充:

(最多只允许输入30个字)