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

转载 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>

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

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

oracle 控制文件损坏时的恢复

原文地址:http://blog.csdn.net/liuya1985liuya/article/details/1826003 数据库只能启动实例,读控制文件时发生错误,控制文件未备份。在数据库设...
  • u010009900
  • u010009900
  • 2014-06-18 20:02:03
  • 1363

控制文件损坏或者丢失的Oracle 10g数据库恢复控制文件一例

如果控制文件丢失或者损坏了,如何解决这个问题? 查看参数文件中的设置: SQL> show parameter CONTROL_FILES ; NAME                     ...
  • seagal890
  • seagal890
  • 2012-01-31 21:03:45
  • 2390

V7000数据恢复案例_存储文件系统损坏

我们今天介绍的数据恢复案例是一起 v7000存储文件系统损坏导致的数据丢失,首先简单介绍一下设备基本情况:发生文件系统损坏的是一台挂载在Windows2003服务器上的v7000存储,划分了一个容量为...
  • beiya123
  • beiya123
  • 2017-11-23 16:25:36
  • 226

oracle学习笔记--控制文件被破坏后数据的恢复方法

控制文件破坏时数据库的恢复方法 一 控制文件有镜像时数据库恢复SQL>startup  2  ;startup ;*ERROR at line 1:ORA-00205: error in identi...
  • jsnicle
  • jsnicle
  • 2005-12-06 16:09:00
  • 1396

控制文件丢失或损坏情况下RMAN全恢复操作

在控制文件损坏或丢失的情况下进行rman恢复在将数据库启动到nomount状态下时会报ora-00205错误 这是由于没有找到有效控制文件而报错。因此我们需要恢复或重建控制文件。由于我们rman...
  • nj198624
  • nj198624
  • 2012-11-07 05:27:48
  • 1068

ORACLE11g 没有控制文件如何通过rman备份恢复数据的详细实战过程

1、副总裁需要裸恢复的严峻现实集团总部的信息部负责人给我打电话说为了找一年前的记录,所以需要对一年前2015年5月1日的数据进行恢复。而2016年初因为进行迁移,所以有些文件可能丢失,手上只有rman...
  • mchdba
  • mchdba
  • 2016-10-18 20:14:30
  • 2139

模拟控制文件全部丢失与归档日志文件丢失的不完全恢复

--控制文件全部丢失,归档日志文件丢失 --模拟实验环境 SYS@PROD2> create table scott.c1 as select * from scott.dept; ...
  • u013169075
  • u013169075
  • 2016-12-14 22:40:35
  • 334

Oracle案例:损坏控制文件的恢复方法

  • 2013年06月21日 12:36
  • 15KB
  • 下载

Oracle控制文件损坏

作者:iamlaosong     现象是系统无法登录,任何用户都不行,怀疑数据库有问题,进入服务器,运行sqlplus  username/password,无法进入数据库,提示输入用户名。    ...
  • iamlaosong
  • iamlaosong
  • 2014-01-24 17:40:04
  • 1965
收藏助手
不良信息举报
您举报文章:控制文件损坏情况下成功的恢复
举报原因:
原因补充:

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