控制文件损坏情况下成功的恢复

转载 2005年03月03日 16:51:00
 

情况描述:
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->

所有控制文件损坏,掉电(shutdown abort),无归档,无备份的成功恢复。

一个例子希望给大家以帮助。

注意:创建控制文件的时候,正常的话使用红色部分的reuse and noresetlogs,这样就不用 
   手工apply日志而是直接就可以自动恢复了。

 

连接到:

Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production

With the Partitioning option

JServer Release 8.1.7.0.0 - Production

 

SQL> drop table rn;

 

表已丢弃。

 

SQL> alter system checkpoint;

 

系统已更改。

 

SQL> drop table test_group;

 

表已丢弃。

 

SQL> conn / as sysdba

已连接。

SQL> shutdown abort

Oracle 例程已经关闭。

SQL> startup nomount

Oracle 例程已经启动。

 

Total System Global Area 31229980 bytes

Fixed Size 75804 bytes

Variable Size 14299136 bytes

Database Buffers 16777216 bytes

Redo Buffers 77824 bytes

SQL> CREATE CONTROLFILE SET/reuse DATABASE "billy" RESETLOGS/NOresetlogs NOARCHIVELOG

2 MAXLOGFILES 64

3 MAXLOGMEMBERS 2

4 MAXDATAFILES 254

5 MAXINSTANCES 32

6 MAXLOGHISTORY 113

7 LOGFILE

8 GROUP 1 'E:/Oracle/ORADATA/BILLY/REDO01.LOG' SIZE 1048576 ,

9 GROUP 2 'E:/Oracle/ORADATA/BILLY/REDO02.LOG' SIZE 1048576 ,

10 GROUP 3 'E:/Oracle/ORADATA/BILLY/REDO03.LOG' SIZE 1048576

11 DATAFILE

12 'E:/Oracle/ORADATA/BILLY/SYSTEM01.DBF',

13 'E:/Oracle/ORADATA/BILLY/RBS01.DBF',

14 'E:/Oracle/ORADATA/BILLY/USERS01.DBF',

15 'E:/Oracle/ORADATA/BILLY/TEMP01.DBF',

16 'E:/Oracle/ORADATA/BILLY/TOOLS01.DBF',

17 'E:/Oracle/ORADATA/BILLY/INDX01.DBF',

18 'E:/Oracle/ORADATA/BILLY/DR01.DBF',

19 'E:/Oracle/ORADATA/BILLY/DB4K.DBF'

20 CHARACTER SET ZHS16GBK

21 ;

 

数据簇已更改。

 

SQL> shutdown

ORA-01109: ??????

 

 

已经卸载数据库。

Oracle 例程已经关闭。

SQL> startup mount

Oracle 例程已经启动。

 

Total System Global Area 31229980 bytes

Fixed Size 75804 bytes

Variable Size 14299136 bytes

Database Buffers 16777216 bytes

Redo Buffers 77824 bytes

数据库装载完毕。

SQL> recover database using backup controlfile until cancel;

ORA-00279: ?? 25526706 (? 03/20/200309:45:25 ??) ???? 1 ????

ORA-00289: ??: E:/Oracle/ORA81/RDBMS/ARC00001.001

ORA-00280: ?? 25526706 ???? 1 ???? # 1 ???

 

 

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

'E:/Oracle/ORADATA/BILLY/REDO01.LOG'

ORA-00339: ???????????

ORA-00334: ????: 'E:/Oracle/ORADATA/BILLY/REDO01.LOG'

 

 

ORA-01547: ??: RECOVER ??? OPEN RESETLOGS ???????

ORA-01194: ??1?????????????

ORA-01110: ???? 1: 'E:/Oracle/ORADATA/BILLY/SYSTEM01.DBF'

 

 

SQL> recover database using backup controlfile until cancel;

ORA-00279: ?? 25526706 (? 03/20/200309:45:25 ??) ???? 1 ????

ORA-00289: ??: E:/Oracle/ORA81/RDBMS/ARC00001.001

ORA-00280: ?? 25526706 ???? 1 ???? # 1 ???

 

 

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

'E:/Oracle/ORADATA/BILLY/REDO03.LOG'

已应用的日志。

完成介质恢复。

SQL> recover database using backup controlfile until cancel;

ORA-00279: ?? 25526718 (? 03/20/200309:45:38 ??) ???? 1 ????

ORA-00289: ??: E:/Oracle/ORA81/RDBMS/ARC00001.001

ORA-00280: ?? 25526718 ???? 1 ???? # 1 ???

 

 

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

'E:/Oracle/ORADATA/BILLY/REDO01.LOG'

ORA-00339: ???????????

ORA-00334: ????: 'E:/Oracle/ORADATA/BILLY/REDO01.LOG'

 

 

SQL> alter database open resetlogs;

 

数据库已更改。

 

SQL>

在最后一步注意日志文件选择的正确,一个一个试都没有关系

 

或问曰:

CREATE CONTROLFILE SET DATABASE "billy" RESETLOGS NOARCHIVELOG ??

应该不要resetlogs? redo log fileshut abort之前的数据不就全没有了吗?

 

:

如果reuse 创建控制文件就可以不用resetlogs

即使使用set 创建控制文件也可以进行完全恢复。

看下面:

 

SQL> conn rainy/rainy

已连接。

SQL> truncate table trans;

 

表已截掉。

 

SQL> alter system checkpoint;

 

系统已更改。

 

SQL> insert into trans values(1);

 

已创建 1 行。

 

SQL> commit;

 

提交完成。

 

SQL> conn / as sysdba

已连接。

SQL> shutdown abort

Oracle 例程已经关闭。

SQL> startup nomount

Oracle 例程已经启动。

 

Total System Global Area 31229980 bytes

Fixed Size 75804 bytes

Variable Size 14299136 bytes

Database Buffers 16777216 bytes

Redo Buffers 77824 bytes

 

SQL> CREATE CONTROLFILE SET DATABASE "billy" NORESETLOGS NOARCHIVELOG

2 MAXLOGFILES 64

3 MAXLOGMEMBERS 2

4 MAXDATAFILES 254

5 MAXINSTANCES 32

6 MAXLOGHISTORY 113

7 LOGFILE

8 GROUP 1 'E:/Oracle/ORADATA/BILLY/REDO01.LOG' SIZE 1048576 ,

9 GROUP 2 'E:/Oracle/ORADATA/BILLY/REDO02.LOG' SIZE 1048576 ,

10 GROUP 3 'E:/Oracle/ORADATA/BILLY/REDO03.LOG' SIZE 1048576

11 DATAFILE

12 'E:/Oracle/ORADATA/BILLY/SYSTEM01.DBF',

13 'E:/Oracle/ORADATA/BILLY/RBS01.DBF',

14 'E:/Oracle/ORADATA/BILLY/USERS01.DBF',

15 'E:/Oracle/ORADATA/BILLY/TEMP01.DBF',

16 'E:/Oracle/ORADATA/BILLY/TOOLS01.DBF',

17 'E:/Oracle/ORADATA/BILLY/INDX01.DBF',

18 'E:/Oracle/ORADATA/BILLY/DR01.DBF',

19 'E:/Oracle/ORADATA/BILLY/DB4K.DBF'

20 CHARACTER SET ZHS16GBK

21 ;

CREATE CONTROLFILE SET DATABASE "billy" NORESETLOGS NOARCHIVELOG

*

ERROR 位于第 1 :

ORA-01503: CREATE CONTROLFILE ??

ORA-01223: ???? RESETLOGS ?????????

 

 

SQL> CREATE CONTROLFILE SET DATABASE "billy" RESETLOGS NOARCHIVELOG

2 MAXLOGFILES 64

3 MAXLOGMEMBERS 2

4 MAXDATAFILES 254

5 MAXINSTANCES 32

6 MAXLOGHISTORY 113

7 LOGFILE

8 GROUP 1 'E:/Oracle/ORADATA/BILLY/REDO01.LOG' SIZE 1048576 ,

9 GROUP 2 'E:/Oracle/ORADATA/BILLY/REDO02.LOG' SIZE 1048576 ,

10 GROUP 3 'E:/Oracle/ORADATA/BILLY/REDO03.LOG' SIZE 1048576

11 DATAFILE

12 'E:/Oracle/ORADATA/BILLY/SYSTEM01.DBF',

13 'E:/Oracle/ORADATA/BILLY/RBS01.DBF',

14 'E:/Oracle/ORADATA/BILLY/USERS01.DBF',

15 'E:/Oracle/ORADATA/BILLY/TEMP01.DBF',

16 'E:/Oracle/ORADATA/BILLY/TOOLS01.DBF',

17 'E:/Oracle/ORADATA/BILLY/INDX01.DBF',

18 'E:/Oracle/ORADATA/BILLY/DR01.DBF',

19 'E:/Oracle/ORADATA/BILLY/DB4K.DBF'

20 CHARACTER SET ZHS16GBK

21 ;

 

数据簇已更改。

 

SQL>

SQL> shutdown

ORA-01109: ??????

 

 

已经卸载数据库。

Oracle 例程已经关闭。

SQL> startup mount

Oracle 例程已经启动。

 

Total System Global Area 31229980 bytes

Fixed Size 75804 bytes

Variable Size 14299136 bytes

Database Buffers 16777216 bytes

Redo Buffers 77824 bytes

数据库装载完毕。

SQL> recover database using backup controlfile until cancel;

ORA-00279: ?? 25546853 (? 03/20/200311:51:40 ??) ???? 1 ????

ORA-00289: ??: E:/Oracle/ORA81/RDBMS/ARC00002.001

ORA-00280: ?? 25546853 ???? 1 ???? # 2 ???

 

 

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

'E:/Oracle/ORADATA/BILLY/REDO03.LOG'

ORA-00310: ???????? 1????? 2

ORA-00334: ????: 'E:/Oracle/ORADATA/BILLY/REDO03.LOG'

 

 

ORA-01547: ??: RECOVER ??? OPEN RESETLOGS ???????

ORA-01194: ??1?????????????

ORA-01110: ???? 1: 'E:/Oracle/ORADATA/BILLY/SYSTEM01.DBF'

 

 

SQL> recover database using backup controlfile until cancel;

ORA-00279: ?? 25546853 (? 03/20/200311:51:40 ??) ???? 1 ????

ORA-00289: ??: E:/Oracle/ORA81/RDBMS/ARC00002.001

ORA-00280: ?? 25546853 ???? 1 ???? # 2 ???

 

 

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

'E:/Oracle/ORADATA/BILLY/REDO01.LOG'

已应用的日志。

完成介质恢复。

SQL> alter database open resetlogs;

 

数据库已更改。

 

SQL> conn rainy/rainy

已连接。

SQL> select * from trans;

 

A

----------

1

 

SQL>

图片损坏怎么恢复

我在网上邻居打开同一个工作组的照片,然后死机了。等我再打开的时候那个照片已经损坏了,显示的是TMP文件,用ACDSEE和WINDERS图片查看器都打不开,PHOTOSHOP也没用。这个时候我们该怎么办...
  • u013958878
  • u013958878
  • 2014年05月08日 16:27
  • 1577

sql server 2000里ldf损坏,只有mdf的恢复

最近遇到了一个sql server 2000文件,ldf损坏了,但mdf还在,于是想办法恢复之,网上找到了些方法,现小结之 1) 先及时把原来的数据库文件(如test.mdf)备份到其他地方2) 停掉...
  • cmzsteven
  • cmzsteven
  • 2015年10月11日 16:59
  • 520

Oracle备份恢复-控制文件损坏的各种场景恢复专题

网上有很多对控制文件损坏恢复的文章,但个人觉得介绍的恢复方法比较零散、不够全面,并且为什么要用这种方法来做恢复没有说的很具体,对很多刚接触这部分的朋友可能不是太好理解。 现在这篇文章就主要通过三部...
  • liaocongyuan1314
  • liaocongyuan1314
  • 2016年03月08日 14:42
  • 1506

Oracle dmp文件损坏恢复案例

前一段时间帮一个朋友的朋友恢复了一个损坏的dmp文件,大概100多个G,记录一下恢复过程并简单总结一下...
  • oradh
  • oradh
  • 2014年06月17日 11:39
  • 2470

SQL数据库损坏怎么办?教你数据恢复应急方案

最近一段时间,济南同岳科技接到很多客户咨询SQL数据库损坏,附加数据库报错的一些问题,在这里整理一下SQLSEVER数据库常见的一些故障现象及注意事项。       目前各大中小型企业使用SQLSE...
  • tongyuekeji123
  • tongyuekeji123
  • 2016年03月21日 14:47
  • 3221

oracle 联机日志文件损坏的几种场景和恢复方法

转载:原文地址:http://blog.csdn.net/oradh/article/details/24480035 oracle联机日志文件记录数据库运行过程中数据块改变的日志,...
  • sh231708
  • sh231708
  • 2016年10月26日 16:41
  • 355

Hadoop集群破坏试验可靠性验证

测试结果说明:   集群环境说明: 主机名 IP地址 操作系统版本 Hadoop版本 Hbase版本 Zookeeper版本 机器用途 hadoop1 192...
  • csliuruidongdn
  • csliuruidongdn
  • 2013年03月25日 17:37
  • 1295

数据恢复过程千万不要做的事

1、数据库恢复过程中最怕被误操作而造成二次破坏,造成恢复难度陡增。数据恢复过程中,禁止往源盘里面写入新数据的。  2、不要做DskChk磁盘检查。一般文件系统出现错误后,系统开机进入启动画面时会自动...
  • tongyuekeji123
  • tongyuekeji123
  • 2016年06月14日 16:15
  • 1773

问题10:临时表空间中的临时文件损坏、丢失的情况下如何恢复?

目的:在临时表空间的数据文件损坏的前提下,进行临时文件的恢复,更确切的说是修复 临时数据文件的损坏或丢失会造成需要使用临时表空间的命令执行失败,但不会造成实例崩溃。由于临时表空间存放的是临时数据...
  • pandaMR
  • pandaMR
  • 2014年09月19日 11:26
  • 563

模拟namenode宕机:数据块损坏,该如何修复

数据块损坏,有很多同学想修复,但是不知道方法,首先我们看下面一段话: 有了block,提供数据容错和可用性的冗余备份(replication)机制可以更好的工作。在HDFS中,为了防...
  • w1014074794
  • w1014074794
  • 2016年03月18日 00:04
  • 1510
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:控制文件损坏情况下成功的恢复
举报原因:
原因补充:

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