暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

遭遇ORA-01152: file 1 was not restored from a sufficiently old backup

michaelliu 2025-10-14
192

在一次恢复过程中,restore过后,在open时遇到报错:
ORA-01152: file 1 was not restored from a sufficiently old backup
ORA-01110: data file 1: '/../../raw12'

造成这种报错的大部分原因是因为controlfile里所记录的scn与datafile里的scn不一致。比如从备份里restore出的controlfile上的scn < datafile上所记录的scn,因此理论上二种思路:
1、以old controlfile为准的,datafile上的scn是新的,这样存在着数据的不一致,要继续恢复下去,将datafile上的scn也要restore到与controlfile一致的情况,但这样会丢失datafile上的数据。
2、就是以datafile上的scn为基准,将controlfile恢复到与datafile scn一致。

于是,在restore过后如果遭遇到ORA-01152之类的问题,可以这样来操作(实际上就是上面第二种思路的实现):

RMAN>RECOVER DATABASE; ---找出同步controlfile scn和datafile scn所需的archivelog,如果归档目录缺少所列出log就从备份里(比如说是在磁带里)取出来并放回归档目录,比如说所列的archivelog是1_215.dbf - 1_230.dbf。

然后进行时间点的数据恢复(大于之前所需archivelog中的最后一个archivelog即可)
RMAN>run{
allocate channel d1 type disk;
allocate channel d2 type disk;
set until sequence 231 thread 1; --注意这里指定为1_231,大于之前的1_230
recover database;
release channel d1;
release channel d2;
}
这样就恢复出一致性的数据,然后用open resetlogs打开数据即可,但记得resetlogs后应该全备一次当前数据库。当然,如果不愿意用resetlogs后,重建controlfile后,用noresetlogs也是ok的。
此方法同样适合于RAC数据库的恢复测试时遇到的ORA-01152错误。

转载于:https://blog.51cto.com/gaoshan/180126

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论