RFS进程状态为IDLE但transport lag非零,说明主库已发完、备库已收全归档日志,传输完成;transport lag非零是因v$dataguard_stats刷新滞后,time_computed或datum_time若早于系统时间则lag值不可信。

RFS进程状态为IDLE但transport lag非零,说明什么?
这其实不是异常,而是正常现象:RFS状态IDLE表示主库已发完、备库已收全所有归档日志,传输层无卡点。transport lag非零只是v$dataguard_stats刷新滞后或未触发更新,并不代表网络没传完。time_computed和datum_time若比系统时间早几分钟,那lag值就不可信。真正要盯的是V$MANAGED_STANDBY里PROCESS='RFS'的STATUS和SEQUENCE#是否追平主库最新归档序列。
查不到RFS进程记录或STATUS显示ERROR/UNKNOWN怎么办?
常见原因有三类,按优先级排查:
- 备库监听未启动或
log_archive_dest_n中SERVICE指向的tns别名不可达(用tnsping验证) -
REMOTE_LOGIN_PASSWORDFILE参数不是EXCLUSIVE,或备库密码文件未同步主库最新版本 - 备库控制文件未识别到Standby Redo Log(SRL)——执行
SELECT GROUP#, STATUS FROM V$STANDBY_LOG,若全是UNASSIGNED,需重建SRL或用ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT强制激活
RFS状态是WRITING但SEQUENCE#长期不增长
说明RFS正在写,但新日志没来,问题不在备库侧。立刻切到主库查:
-
V$ARCHIVE_DEST_STATUS里DEST_ID=2的STATUS是否为VALID,ERROR字段是否有ORA-16047、ORA-12154等网络错误 -
V$ARCHIVED_LOG中DEST_ID=2 AND ARCHIVED='NO'的日志是否堆积(说明LNS没发出去) - 主库
log_archive_dest_2是否误配了SYNC但没配LGWR,导致事务提交被阻塞(看log file sync等待是否飙升)
为什么RFS进程存在却收不到任何日志?
最常被忽略的是归档目标属性配置错:
-
LOG_ARCHIVE_DEST_2漏了VALID_FOR=(ALL_LOGFILES,PRIMARY_ROLE),主库切换角色后该路径失效 - 备库
db_unique_name和主库log_archive_dest_2里SERVICE指定的tns别名不一致(大小写敏感,且必须和tnsnames.ora完全匹配) - 防火墙只放行了1521端口,但RFS实际走的是动态端口(默认范围是
55200-55299),需额外开通
RFS本身不报错也不退出,它只是安静地等待连接——所以看不到ERROR不代表没问题,得从主库发端和网络通路双向确认。


















