首页 > 数据库 > Oracle > ORA-01245 ORA-01110故障恢复
对于这样的情况,可以使用自研的
Oracle Recovery Tools工具快速修改scn,然后online数据文件即可
有朋友找到我,说数据库做recover报ORA-01245和ORA-01110错误,无法继续恢复,请求支持
SQL> recover
database
using backup controlfile until cancel;…………第 1 行出现错误:ORA-01245: RESETLOGS 完成时脱机文件 1 将丢失ORA-01110: 数据文件 1:
'E:\APP\ADMINISTRATOR\ORADATA\HXV10\SYSTEM01.DBF' |
通过
Oracle Database Recovery Check检查数据库情况,发现datafile 1处于offline状态

Wed Aug 26 23:11:00 2015alter database datafile 1 offline dropCompleted: alter database datafile 1 offline drop |
从这里基本上可以知道为什么出现ORA-01245错误了,由于system表空间中文件被offline导致.
redo信息

Mon Aug 24 22:38:35 2015alter database
clear
unarchived logfile group 2Clearing online log 2 of thread 1 sequence number 5705Completed: alter database
clear
unarchived logfile group 2Wed Aug 26 23:13:23 2015alter database
clear
logfile group 3Clearing online log 3 of thread 1 sequence number 5706Completed: alter database
clear
logfile group 3 |
除当前redo之外,其他redo被clear
尝试恢复
SQL>
alter
database
datafile 1 online;数据库已更改。SQL> recover
database
;ORA-00283: 恢复会话因错误而取消ORA-01610: 使用 BACKUP CONTROLFILE 选项的恢复必须已完成SQL> recover
database
using backup controlfile;ORA-00279: 更改 63960710 (在 08/23/2015 17:01:25 生成) 对于线程 1 是必需的ORA-00289: 建议:E:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\HXV10\ARCHIVELOG\2015_08_27\O1_MF_1_5705_%U_.ARCORA-00280: 更改 63960710 (用于线程 1) 在序列 #5705 中指定日志: {<RET>=suggested | filename | AUTO | CANCEL}E:\APP\ADMINISTRATOR\ORADATA\HXV10\REDO03.LOGORA-00310: 归档日志包含序列 5706; 要求序列 5705ORA-00334: 归档日志:
'E:\APP\ADMINISTRATOR\ORADATA\HXV10\REDO03.LOG'SQL> recover
database
using backup controlfile;ORA-00279: 更改 63960710 (在 08/23/2015 17:01:25 生成) 对于线程 1 是必需的ORA-00289: 建议:E:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\HXV10\ARCHIVELOG\2015_08_27\O1_MF_1_5705_%U_.ARCORA-00280: 更改 63960710 (用于线程 1) 在序列 #5705 中指定日志: {<RET>=suggested | filename | AUTO | CANCEL}E:\APP\ADMINISTRATOR\ORADATA\HXV10\REDO02.LOGORA-00339: 归档日志未包含任何重做ORA-00334: 归档日志:
'E:\APP\ADMINISTRATOR\ORADATA\HXV10\REDO02.LOG'SQL> recover
database
using backup controlfile;ORA-00279: 更改 63960710 (在 08/23/2015 17:01:25 生成) 对于线程 1 是必需的ORA-00289: 建议:E:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\HXV10\ARCHIVELOG\2015_08_27\O1_MF_1_5705_%U_.ARCORA-00280: 更改 63960710 (用于线程 1) 在序列 #5705 中指定日志: {<RET>=suggested | filename | AUTO | CANCEL}E:\APP\ADMINISTRATOR\ORADATA\HXV10\REDO01.LOGORA-00310: 归档日志包含序列 5707; 要求序列 5705ORA-00334: 归档日志:
'E:\APP\ADMINISTRATOR\ORADATA\HXV10\REDO01.LOG' |
数据库做恢复需要seq 5705的redo,但是redo已经被clear,导致现在数据库常规手段无法恢复,只用使用隐含参数屏蔽数据库前滚(一致性检查)
再次尝试打开数据库
ORACLE 例程已经启动。Total System
Global
Area 778387456 bytesFixed
Size
1374808 bytesVariable
Size
486540712 bytesDatabase
Buffers 285212672 bytesRedo Buffers 5259264 bytes数据库装载完毕。SQL> recover
database
using backup controlfile;ORA-00279: 更改 63960710 (在 08/23/2015 17:01:25 生成) 对于线程 1 是必需的ORA-00289: 建议:E:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\HXV10\ARCHIVELOG\2015_08_27\O1_MF_1_5705_%U_.ARCORA-00280: 更改 63960710 (用于线程 1) 在序列 #5705 中指定日志: {<RET>=suggested | filename | AUTO | CANCEL}cancel介质恢复已取消。SQL>
alter
database
open
resetlogs;数据库已更改。 |
在数据库恢复中,请不要对system表空间数据文件进行offline操作,如果对此类文件进行offline操作,讲在数据库恢复过程中出现ORA-01245和ORA-01110错误,而且文件还会出现SYSOFF状态
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/11478134/viewspace-2780937/ ,如需转载,请注明出处,否则将追究法律责任。