首页 > 解决方案 > oracle控制文件和undo数据库文件被删除了,有没有办法找回来?

问题描述

重新创建控制文件,这是代码

CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS NOARCHIVELOG
 MAXLOGFILES 5
 MAXLOGMEMBERS 3
 MAXDATAFILES 100
 MAXINSTANCES 1
 MAXLOGHISTORY 226
LOGFILE
  GROUP 1 '/home/oracle/app/oradata/orcl/redo01.log' SIZE 50M,
  GROUP 2 '/home/oracle/app/oradata/orcl/redo02.log' SIZE 50M,
  GROUP 3 '/home/oracle/app/oradata/orcl/redo03.log' SIZE 50M
DATAFILE
  '/home/oracle/app/oradata/orcl/osc_zb.dbf',
  ......
CHARACTER SET ZHS16GBK;

然后打开数据库,结果如下:

ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: '/home/oracle/app/oradata/orcl/system01.dbf'

恢复数据文件 1:

ORA-00283: recovery session canceled due to errors
ORA-16433: The database must be opened in read/write mode.

然后,使用隐藏参数启动数据库。

undo_management='manual' 
undo_tablespace='UNDOTBS01'
_allow_resetlogs_corruption=true

也不起作用:

SQL> startup pfile=/home/oracle/initoracle.ora
ORACLE instance started.

Total System Global Area 1586708480 bytes
Fixed Size          2253624 bytes
Variable Size         973081800 bytes
Database Buffers      603979776 bytes
Redo Buffers            7393280 bytes
Database mounted.
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/home/oracle/app/oradata/orcl/system01.dbf'

这样的循环

SQL> recover datafile 1
ORA-00283: recovery session canceled due to errors
ORA-16433: The database must be opened in read/write mode.

我不知道恢复数据库,大佬,帮帮我

标签: oracle

解决方案


可以开始挂载状态吗?也许你可以试试下面的方法。首先,找到'CURRENT'重做组。

select group#,sequence#,status,first_time,next_change# from v$log;

并找到重做文件位置

select * from v$logfile;

然后,通过这个重做日志来恢复数据库

SQL> recover database until cancel using backup controlfile;
ORA-00279: change 4900911271334 generated at 03/06/2018 05:46:29 needed for
thread 1
ORA-00289: suggestion :
/home/wonders/app/wonders/flash_recovery_area/ORCL/archivelog/2018_03_12/o1_mf_1
_4252_%u_.arc
ORA-00280: change 4900911271334 for thread 1 is in sequence #4252
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/home/wonders/app/wonders/oradata/orcl/redo01.log
Log applied.
Media recovery complete.

最后,用'RESETLOGS'打开数据库</p>


推荐阅读