备库未建standby redo log时,lgwr传输将失败,rfs进程因无可用srl而拒绝写入,报错“no standby redo logfiles available”,导致mrp无法应用日志;srl须在mount状态创建,组数≥主库online组数+1、大小≥主库最大online日志、路径需通过log_file_name_convert正确转换,且valid_for等参数配置无误。

备库没建Standby Redo Log就启用了LGWR传输
主库用LGWR方式传输日志时,备库必须有STANDBY REDO LOG,否则RFS进程写不进日志,告警里反复出现No standby redo logfiles available for thread 1。这不是警告,是明确拒绝——RFS根本不会落盘,后续MRP自然无日志可应用。
实操要点:
- 备库必须在
MOUNT状态下创建,不能在OPEN READ ONLY下建 - 组数至少比主库
ONLINE REDO LOG多一组,例如主库3组,备库至少4组 - 每组大小必须≥主库最大
ONLINE REDO LOG尺寸(查v$log.bytes) - 别把
GROUP#和主库online log设成连续编号,比如主库是1/2/3,备库别用4/5/6——容易混淆,建议从10开始
STANDBY REDO LOG组状态为UNASSIGNED或INVALID
v$standby_log里看到STATUS = UNASSIGNED或INVALID,说明这组日志从未被RFS成功写入过。常见原因是:主库归档目标配置漏了VALID_FOR,导致RFS连连接都建立不了;或者备库监听器没起来,log_archive_dest_2指向的服务名不通。
检查步骤:
- 主库查
v$archive_dest,确认log_archive_dest_2的VALID_FOR设为(ONLINE_LOGFILES, PRIMARY_ROLE),不是默认的(ALL_LOGFILES, ALL_ROLES) - 主库
tnsping DG_SERVICE_DGMGRL(注意后缀),确保能通备库监听 - 备库
lsnrctl status看监听是否运行,且服务名匹配tnsnames.ora中带_DGMGRL后缀的条目 - 如果RFS进程在
v$managed_standby里显示PROCESS = RFS但STATUS = IDLE,基本就是网络或服务名问题
备库OPEN READ ONLY后误删或重建STANDBY REDO LOG
备库一旦OPEN READ ONLY WITH APPLY,STANDBY REDO LOG就被MRP锁定使用。此时执行ALTER DATABASE DROP STANDBY LOGFILE GROUP N会报ORA-00268: Cannot allocate standby log file, file is in use——不是权限问题,是Oracle主动保护机制。
正确做法:
- 先停应用:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; - 再
SHUTDOWN IMMEDIATE,重启到MOUNT状态 - 此时才能安全
DROP或ADDstandby log group - 最后重新启动应用:
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
LOG_FILE_NAME_CONVERT没生效导致SRL写入失败
即使备库建了standby redo log,路径冲突也会让RFS写入失败,告警日志出现ORA-00344: unable to recreate online log或RFS[2]: Archived Log: 'UNKNOWN'。根源是LOG_FILE_NAME_CONVERT参数未配置或格式错误,RFS尝试把主库路径原样写进备库磁盘,被Oracle拒绝。
关键细节:
- 该参数只在备库spfile/pfile中生效,
ALTER SYSTEM在线修改无效 - 值必须成对,结尾斜杠不能少:
'+DATA/orcl/','+DATA/stby/',不能写成'+DATA/orcl','+DATA/stby' - 改完必须
shutdown immediate再startup mount,不能只alter system flush shared_pool - 验证:查
v$standby_log.member,路径应已变成备库ASM磁盘组或文件系统路径
LOG_FILE_NAME_CONVERT的斜杠和重启动作——配对正确但少一个/,或者改完参数没重启实例,都会让SRL始终处于“存在但不可用”状态。











