oracle-01194,ora_01194 无法OPEN数据库with resetlogs 速解
最近在做备份恢复的实验,被个controlfile弄的是晕头转向,实际上也不怪我,我完全跟着小布老师去操作,可是我的总是报错,下面来解说一下具体情况和故障以及超快速的解决办法(现在解决很快,当时我可是绞尽脑汁啊,不知道死了多少脑细胞)当时情况:首先做了一个Closedbackup,然后在原有表里面写入一些数据。不ARCH,只COMMIT(这样归档文件就没有这些新写入的数据,而redo里面就有,因为
最近在做备份恢复的实验,被个controlfile
弄的是晕头转向,实际上也不怪我,我完全跟着小布老师去操作,可是我的总是报错,下面来解说一下具体情况和故障以及超快速的解决办法(现在解决很快,当时我可是绞尽脑汁啊,不知道死了多少脑细胞)
当时情况:
首先做了一个Closed
backup,然后在原有表里面写入一些数据。不ARCH,只COMMIT(这样归档文件就没有这些新写入的数据,而redo里面就有,因为我做的是Incomplete恢复)
SQL> alte database
backup controlfile to trace as '/tmp/ir2.sql';
然后用第二种情况改写成脚本(这都是次要的),然后将所有的*.dbf,redo*.log,control*.ctl全部删除,接下来就是恢复.
恢复操作及故障出现:
首先将旧的冷备文件全部复制回去。然后:
SQL>
shutdown abort
ORACLE instance shut down.
SQL>
@/tmp/ir2.sql
ORACLE instance started.
Total System Global Area 318046208 bytes
Fixed
Size 1336260 bytes
Variable Size 239078460 bytes
Database
Buffers 71303168 bytes
Redo
Buffers 6328320 bytes
Control file created.
PL/SQL procedure successfully
completed.
PL/SQL procedure successfully
completed.
SQL>
recover database using backup controlfile until cancel
ORA-00279: change 2734986 generated at 06/22/2011 17:49:36 needed
for thread 1
ORA-00289: suggestion :
/u01/admin/john/archtest/1_5_754492832.dbf
ORA-00280: change 2734986 for thread 1 is in sequence
#5
Specify log:
{=suggested | filename | AUTO |
CANCEL}
ORA-00279: change 2736053 generated at 06/22/2011
18:12:40 needed for thread 1
ORA-00289: suggestion :
/u01/admin/john/archtest/1_6_754492832.dbf
ORA-00280: change 2736053 for thread 1 is in sequence #6
ORA-00278: log file '/u01/admin/john/archtest/1_5_754492832.dbf' no
longer
needed for this recovery
Specify log:
{=suggested | filename | AUTO |
CANCEL}
cancel
ORA-10879: error signaled in parallel recovery slave
ORA-01547: 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:
'/u01/oradata/john/system01.dbf'
SQL>
alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1:
'/u01/oradata/john/system01.dbf'
问题来了。小布老师这样操作后,就可以打开数据库了。为什么我不行。反反复复啊,怎么都不行。
解决办法:(就这一句)
SQL> alter system set
"_allow_resetlogs_corruption"=true
scope=spfile;
System altered.
SQL>
shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL>
startup
SQL>
alter database open resetlogs;
Database
altered.问题解决了。好了。多简单的问题,就少一个语句去修改spfile。
PS:经过去网上查资料,了解该条语句的含义,是对spfile进行修改,允许使用resetlogs模式启动数据库,我想是不是初始状态下,spfile中的这个值是false,至于为什么默认是关闭,文档里解释是为了安全考虑。
更多推荐




所有评论(0)