今天客户反映oracle11G DG同步中断了,同时备库频繁报错:没有充足的磁盘空间可用,于是第一时间连上去排查,发现备库的磁盘使用率,的确已达到100%了,同时备库的日志应用是一个月前的状态,尝试手动启动同步命令:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

发现同步仍然停止不运行,同时产生了gap日志丢失报错,并且crontab调用的历史归档清理作业也报归档没应用,无法清除!

这个时候为了迅速处理问题,于是将备库磁盘分区的历史备份清理掉了,腾出空间后,进入备库日志归档目录发现,最新的归档日志果然是只有一个月前的日志文件,因为磁盘空间满了,这个时候主库无法传送归档日志到备库,导致产生这个问题了!

如重新同步,工作量较大,于是决定从主库手动传输缺失的日志文件到备库,传输完成后,发现日志仍然不自动同步,

查看备库日志应用状态:

SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME,applied FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
此时仍然显示的是一个月前的归档日志编号,经排查发现,原来这种情况是需要手动注册归档文件到catalog,于是执行批量注册命令:
rman> catalog start with '/u01/app/oracle/fast_recovery_area/orcl';
执行该命令后,重新查看最新同步状态:
select to_char(max(first_time),'yyyy-mm-dd hh24:mi:ss') from v$archived_log where applied='YES';
发现同步已识别到传输过来的日志,并且正在追赶最新日志同步,等待片刻后,同步顺利恢复!