1.现象:
今天在检查数据库时发现使用dataguard后,由于一些原因,出现了备用库日志中断的情况,检查主库与备用库时日志序列分别如下:
主库90.137(1323以后日志均未应用重做):
select sequence#,applied from v$archived_log order by sequence#;
ORACLE 11G DATAGUARD 日志中断处理方案_第1张图片
备用库90.138(因为1324-1384日志出现中断,1385序列后日志正常传送过来却无法应用重做)
select sequence#,applied,name from v$archived_log order by sequence#;
ORACLE 11G DATAGUARD 日志中断处理方案_第2张图片
2.分析:
经过查找发现由于90.138这台机器在前几天晚上三点的时候自动做了系统更新然后重启,而数据库服务没有及时开起来,导致中间一段日志出现丢失.
3.解决方法:
a.从主库将中断的日志复制至从库:
因为出现了日志中断,最直接的原因是主库的日志文件没有传送过来,因此首先想到的是把主库137没有传送过来的日志复制过来,在主库的归档日志目录下将1_1324_705238277.dbf--1_1584_705238277.dbf复制到从库138的e:\log目录下
b:查看从库归档日志序列是否有变化:
此时通过select sequence#,applied,name from v$archived_log order by sequence#;查询发现在从库的日志列表中并没有出现刚才所复制的归档日志.
ORACLE 11G DATAGUARD 日志中断处理方案_第3张图片 
c:将复制过来的归档日志进行注册:
oracle并不会主动去扫描日志目录下多了哪些日志文件,所以需要我们手工将这些复制过来的归档日志进行注册
执行alter database register logfile ‘e:\log\1_1324_70523277.DBF’;
一直到e:\log\1_1584_70523277.DBF
d.重新应用重做
等所有归档日志都注册成功后,再运行
alter database recover managed standby database disconnect from session;
从新复制过来的日志开始应用重做,几分钟之后,所有日志全部应用成功,data guard又开始恢复正常.
从库90.138:
ORACLE 11G DATAGUARD 日志中断处理方案_第4张图片
至此data guard日志中断问题得以解决.