当丢失控制文件但重做日志文件还在时如何恢复数据库

在使用resetlogs选重建控制文件后在打开数据库时会报错,错误信息如下:
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
而一般情况下如果数据文件和日志文件都在使用noresetlogs创建控制文件
后recover数据库是打开数据库.就是不明白为什么会报ora-01092这个错误

所以我就删除原来的重做日志文件
SQL> CREATE CONTROLFILE   set Database ocp  Resetlogs
  2    MAXLOGFILES 16
  3    MAXLOGMEMBERS 3
  4    MAXDATAFILES 100
  5    MAXINSTANCES 8
  6    MAXLOGHISTORY 292
  7  LOGFILE
  8  GROUP 1 'D:\oracle\product\10.2.0\oradata\ocp\RED001.LOG'SIZE 50M,
  9  GROUP 2 'D:\oracle\product\10.2.0\oradata\ocp\RED002.LOG'SIZE 50M,
 10  GROUP 3 'D:\oracle\product\10.2.0\oradata\ocp\RED003.LOG'SIZE 50M
 11  DATAFILE
 12  'D:\oracle\product\10.2.0\oradata\ocp\SYSTEM01.DBF',
 13  'D:\oracle\product\10.2.0\oradata\ocp\UNDOTBS01.DBF',
 14  'D:\oracle\product\10.2.0\oradata\ocp\SYSAUX01.DBF',
 15  'D:\oracle\product\10.2.0\oradata\ocp\USERS01.DBF'
 16  CHARACTER SET ZHS16GBK
 17  ;

控制文件已创建。

SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: ??????????? RESETLOGS ? NORESETLOGS ??


SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01194: ?? 1 ?????????????
ORA-01110: ???? 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\SYSTEM01.DBF'


SQL> alter database add logfile group 1;
alter database add logfile group 1
*
第 1 行出现错误:
ORA-01184: ????? 1 ???


SQL> select group#,sequence#,members,bytes,status,archived from v$log;

    GROUP#  SEQUENCE#    MEMBERS      BYTES STATUS           ARC
---------- ---------- ---------- ---------- ---------------- ---
         1          0          1   52428800 UNUSED           YES
         3          0          1   52428800 CURRENT          YES
         2          0          1   52428800 UNUSED           YES

SQL> ALTER DATABASE ADD LOGFILE GROUP 4
  2      ('D:\oracle\product\10.2.0\oradata\ocp\redo04a.log','D:\oracle\product\
10.2
  3  .0\oradata\ocp\redo04b.log')
  4      SIZE 512 M;
ALTER DATABASE ADD LOGFILE GROUP 4
*
第 1 行出现错误:
ORA-00301: ?????? 'D:\oracle\product\10.2
.0\oradata\ocp\redo04b.log' ??? - ??????
ORA-27040: ??????, ??????
OSD-04002: ????????????
O/S-Error: (OS 123) ????????????????????????????????


SQL> ALTER DATABASE ADD LOGFILE GROUP 4
  2      ('D:\oracle\product\10.2.0\oradata\ocp\redo04a.log','D:\oracle\product\
10.2.0\oradata\ocp\redo04b.log')
  3      SIZE 50 M;

数据库已更改。

SQL>  alter database drop logfile group 1;

数据库已更改。

SQL>  alter database drop logfile group 2;

数据库已更改。

SQL> recover database until cancel;
ORA-00283: ??????????
ORA-01610: ?? BACKUP CONTROLFILE ??????????


SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01194: ?? 1 ?????????????
ORA-01110: ???? 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\SYSTEM01.DBF'


SQL> recover database;
ORA-00283: ??????????
ORA-01610: ?? BACKUP CONTROLFILE ??????????


SQL> create pfile from spfile;

文件已创建。
在创建的initSID.ora的初始化参数文件中加入以下参数:
_allow_resetlogs_corruption=true
_allow_terminal_recovery_corruption=true
undo_tablespace='SYSTEM'
undo_management='MANUAL'

SQL> shutdown abort
ORACLE 例程已经关闭。
SQL> startup mount pfile=D:\oracle\product\10.2.0\db_1\database\initocp.ora
ORACLE 例程已经启动。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size              88083332 bytes
Database Buffers          515899392 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。


SQL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01113: 文件 1 需要介质恢复
ORA-01110: 数据文件 1: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\OCP\SYSTEM01.DBF'

SQL> recover datafile 1;
完成介质恢复。
SQL> recover datafile 2;
完成介质恢复。
SQL> recover datafile 3;
完成介质恢复。
SQL> recover datafile 4;
完成介质恢复。
SQL> recover datafile 5;
ORA-01179: 文件 5 不存在


SQL> alter database open;

数据库已更改。

SQL>


























来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26015009/viewspace-739755/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26015009/viewspace-739755/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值