Oracle数据库在线重做日志被删除的几种恢复方法(二)

2015-11-21 01:38:50 · 作者: · 浏览: 7
: warning: RECOVER succeeded but OPEN RESETLOGS would get error below ORA-01194: file 1 needs more recovery to be consistent ORA-01110: data file 1: '/app/oradata/orcl/system01.dbf' ORA-01112: 未启动介质恢复 SQL> alter database open resetlogs; alter database open resetlogs * 第 1 行出现错误: ORA-01194: 文件 1 需要更多的恢复来保持一致性 ORA-01110: 数据文件 1: '/app/oradata/orcl/system01.dbf'

?

?
但是我们发现,不完全恢复是失败的,这个时候通过 resetlogs打开数据库也是不可能的,那么我们只能通过应用隐含参数,通过隐含参数使状态不一致的数据库打开,如下:
?
SQL> create pfile='/home/oracle/p2.ora' from spfile;
在pfile里面增加*._allow_resetlogs_corruption=TRUE
echo "*._allow_resetlogs_corruption=TRUE">>p2.ora
然后通过我们新建的pfile打开数据库到mount状态:
SQL> startup mount pfile='/home/oracle/p2.ora'
ORACLE 例程已经启动。
Total System Global Area ?334036992 bytes
Fixed Size ? ?2253024 bytes
Variable Size ?171970336 bytes
Database Buffers ?155189248 bytes
Redo Buffers ? ?4624384 bytes
?
数据库装载完毕。
?
然后通过 resetlogs的方法打开数据库
SQL> alter database open resetlogs;
?
数据库已更改。
?
因为我们是用我们临时生成的pfile进行启动的,所以还要完成最后一步,重启数据库即可好了,数据库打开了,但是因为我们的数据库从异常情况下恢复过来,可能是会有问题的,所以建议做好备份,以防数据丢失。