确认lns能连上备库监听器,需在主库执行sqlplus /@standby_db:若报ora-12154,说明tnsnames.ora路径或别名错误;若报ora-12514,说明备库监听器未注册db_unique_name对应服务,须检查listener.ora中sid_list与global_dbname配置是否匹配log_archive_config。
oracle dg中lns与rfs通信超时,本质是主库发不出、备库收不到,不是调大超时参数就能解决的。必须先确认网络通路、监听状态、tns别名解析这三件事都成立,再查进程级卡点。
怎么确认LNS能连上备库的监听器?
这是最常被跳过的一步:LNS进程依赖主库上的tnsnames.ora解析SERVICE=standby_db,但这个别名是否真能连通?别只信tnsping standby_db——它只测监听端口,不验证服务注册。
- 在主库执行:
sqlplus /@standby_db,如果报ORA-12154: TNS:could not resolve the connect identifier,说明tnsnames.ora路径不对或别名拼错 - 如果报
ORA-12514: TNS:listener does not currently know of service requested,说明备库监听器没注册DB_UNIQUE_NAME对应的服务(查lsnrctl services输出) - 备库
listener.ora里必须有SID_LIST段包含该DB_UNIQUE_NAME,且GLOBAL_DBNAME要和LOG_ARCHIVE_CONFIG中一致
为什么LNS状态是IDLE但SEQUENCE#不涨?
查v$managed_standby发现LNS状态为IDLE且SEQUENCE#长期不动,说明主库根本没触发日志传输——不是超时,是压根没发。
- 检查主库
LOG_ARCHIVE_DEST_STATE_2是否为ENABLE(DEFER状态下配置再正确也无效) - 确认
LOG_ARCHIVE_DEST_2里含SERVICE=standby_db,而非LOCATION=...这种本地归档写法 - 查
v$archive_dest_status的ERROR列,常见错误如ORA-16057: DGID not set(log_archive_config缺失主库自身DB_UNIQUE_NAME)或TNS-12541: no listener
RFS进程显示CONNECTED但日志不落地?
RFS状态是CONNECTED但v$archived_log里最新归档SEQUENCE#远低于主库,说明网络链路通了,但RFS写SRL失败或被阻塞。
- 查备库告警日志,找
RFS started with pid=..., OS id=...之后是否紧跟ORA-00340: log file corruption或ORA-27072: File I/O error - 确认
standby_redo_log文件是否放在慢速存储(比如和归档共用HDD),且filesystemio_options未设为SETALL或none - 运行
select event,wait_time_micro from v$session_event where sid in (select sid from v$session where paddr in (select paddr from v$process where program like '%RFS%')) and event like 'RFS%';,若RFS sequential I/O等待时间持续>10ms,就是存储写入瓶颈
SYNC模式下LGWR-LNS wait on channel怎么破?
这不是RFS超时,是主库LGWR在等LNS确认——而LNS又在等RFS写完SRL并返回ACK。整个链路任一环节延迟都会卡死主库事务提交。
- 禁用
SYNC模式前先评估业务容忍度;若必须用,确保备库SRL大小≥主库online redo log(否则频繁切换导致RFS写满后阻塞) - 检查备库
db_recovery_file_dest_size是否足够,archive_lag_target设太小会强制频繁归档,加剧RFS压力 - 跨地域部署时,
LOG_ARCHIVE_DEST_2加NET_TIMEOUT=120(默认30秒),但仅治标;根本解法是升级网络带宽或改用ASYNC+MAX_FAILURE=3
真正卡住LNS-RFS的,往往不是参数值本身,而是监听注册缺失、TNS别名不可达、SRL存储I/O饱和这三类硬性断点。调NET_TIMEOUT前,先让sqlplus /@standby_db能登录成功,再看v$managed_standby里LNS和RFS的状态流转是否连续。











