Oracle Data Guard的日志FAL gap问题


在Oracle Data Guard环境中,一个备库出现问题,需要重做。因为之前的配置环境都是好的,只需将主库的全库备份恢复到备库即可。但在数据文件还原完成后,介质恢复时在alert.log中提示有gap的日志文件,RFS进程继续去提取主库上的其他的归档日志文件。
 
alert.log文件中提示信息如下:
 
TueApr  9 14:20:56 2013
 
MediaRecovery Log +LOGDG/servdg2/archivelog/2013_04_09/thread_1_seq_71989.3551.812298053
 
MediaRecovery Waiting for thread 2 sequence 68042
 
Fetchinggap sequence in thread 2, gap sequence 68042-68094
 
TueApr  9 14:20:58 2013
 
RFS[1]:Archived Log:

'+LOGDG/servdg2/archivelog/2013_04_09/thread_2_seq_68052.2968.812298059'
 
TueApr  9 14:21:31 2013
 
Fetchinggap sequence in thread 2, gap sequence 68042-68051
 
TueApr  9 14:22:06 2013
 
FAL[client]:Failed to request gap sequence

 GAP - thread 2 sequence 68042-68051
 
 DBID 3658273059 branch 717104091
 
FAL[client]:All defined FAL servers have been attempted.
 
-------------------------------------------------------------
 
Check thatthe CONTROL_FILE_RECORD_KEEP_TIME initialization
 
parameteris defined to a value that is sufficiently large
 
enough tomaintain adequate log switch information to resolve
 
archiveloggaps.
 
-------------------------------------------------------------
 
备库因日志中断而不能继续进行介质恢复。我们的问题就是如何将这些日志文件找回来。
 

在主库中,判断归档日志状况。
 
select *from v$archived_log b where b.SEQUENCE#>=68042 and b.THREAD#=2 andb.SEQUENCE#<=68051 and b.DEST_ID=1 and b.DELETED='YES';
 
通过这个SQL,确认这些归档日志已经被删除了。
 
归档日志文件通过RMAN工具定期删除的,因为还原数据文件过程很长,在还原完成后,归档日志已经备份移走了。
 
RMAN>list backup of archivelog from sequence 68042 until sequence 68051 thread 2;
 
在rman备份集中找到结果集,使用restore archivelog还原。
 
RMAN>restore archivelog from sequence 68042 until sequence 68051 thread 2;
 
这样,备库上又能继续获取这些归档日志文件了。如果没有,在主库上将指向该备库的log_archive_dest_state_*先defer再enable一下,算是激活这个服务。
 
因为主库是RAC的,所以会有多个实例会提示这种错误,依次解决即可。

相关内容