如果Oracle数据库中,某个数据文件损坏,有冷备,但是归档日志文件缺失,导致数据文件无法恢复到一致性状态。
这种情况下如果没有其他恢复介质,可以接受数据丢失的话,可以通过修改数据文件头的SCN号,使System Checkpoint SCN和Datafile Checkpoint SCN号一致,就可以让Oracle避开对该文件的检查,Oracle就不会去做介质恢复,而只做实例恢复,这样就可以实现完全恢复,及时打开数据库。
一般来说,推进数据文件头的SCN号有两种处理办法:
第一,利用BBED(Block Brower and Editor)修改数据文件头,推进SCN号来打开数据库。
第二,设置隐含参数"_ALLOW_RESETLOGS_CORRUPTION"为TRUE来打开数据库,
待数据库打开后,要将该参数从参数文件中去掉,命令如下所示:
ALTER SYSTEM SET "_ALLOW_RESETLOGS_CORRUPTION"=TRUE SCOPE=SPFILE;--跳过数据库一致性检查
ALTER SYSTEM RESET "_ALLOW_RESETLOGS_CORRUPTION" SCOPE=SPFILE SID='*';--取消该参数