ITPub博客

首页 > 数据库 > Oracle > 在logzgh老大的指导下,终于解决了ORA-01189

在logzgh老大的指导下,终于解决了ORA-01189

原创 Oracle 作者:yuantong 时间:2006-09-05 10:51:07 0 删除 编辑

ORA-01189: file is from a different RESETLOGS than previous files

ORA-01190: controlfile or data file string is from before the last RESETLOGS

dba在将整个数据库dd拷贝过来后,重建控制文件时,将3号文件给漏掉了,然后又open resetlogs打开数据库了。

alter database rename file '/opt/oracle/product/9.2.0.4/dbs/MISSING00003' to '/opt/oracle/oradata/test/indx01.dbf';

于是想将该 文件online起来或者做recover datafile 3时报出上面的错误。


我想oracle判断这个文件是不是resetlogs之前的文件,肯定是数据文件头有个标志的。

于是alter session set events 'immediate trace name file_hdrs level 10';

经过反复的比较发现

丢失的文件与正常的文件有两处地方明显不同

1.reset logs count:0x23b67b69 scn: 0x07b6.173f7a71

2.Checkpointed at scn: 0x0000.00016a3a

于是,我用BBED.修改这两个地方.

resetlogs 修改的分别是offset 110,114,118

checkpoint 修改的分别是offset 138

修改后用

sum file 3 block 1 apply

来重新生新checksum,否则会报坏块

然后重新运行recover datafile 3;

alter database datafile 3 online

即可

经过几天的试验终于成功了.

其实遇到这样的问题时,主要围绕着SCN,仔细分析数据文件头,找出不同的地方,尝试一下去修改.当然,这种方法只有万不得已才使用,死马当活马医

做好备份才是最好的方法

[@more@]

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

请登录后发表评论 登录
全部评论

注册时间:2010-12-07

  • 博文量
    61
  • 访问量
    803487