unknown表示crs无法确认scan监听器真实运行状态,源于进程僵死、ipc通信失败或共享内存损坏,需检查oraagent_grid.log及scan vip绑定情况。

srvctl status scan_listener 显示 UNKNOWN 怎么办
UNKNOWN 不代表监听器进程挂了,而是 CRS 无法确认其存活状态——常见于进程僵死、IPC 共享内存损坏或 oraagent_grid.log 中出现 Failed to bind address 或 TNS-12560。
先查日志:$GRID_HOME/log/<node>/agent/oraagent_grid.log</node>,搜索关键词确认是否 IPC 绑定失败;再用 srvctl config scan 查 SCAN VIP 实际分配,配合 ip addr show 确认该 VIP 当前是否真在本节点上;若确实在,且 ps -ef | grep LISTENER_SCAN1 有残留进程,直接 kill -9 <pid></pid> 清掉,再执行 srvctl start scan_listener -i 1 启动;启动后立刻验证端口绑定:lsnrctl status LISTENER_SCAN1 输出中必须含 (PROTOCOL=tcp)(HOST=)(PORT=1521) 这段。
tnsping 或 sqlplus 连 SCAN 报 ORA-12545 / ORA-12541
这不是监听器没起来,而是客户端根本没走到 SCAN 流程,或服务端实例压根没注册进去。
客户端侧检查:tnsnames.ora 中 SCAN 条目必须带 ADDRESS_LIST 和显式 LOAD_BALANCE = on;sqlnet.ora 中 NAME.DIRECTORY_PATH 必须包含 TNSNAMES,且不能被 EZCONNECT 排在前面;HOST 值必须是 DNS 可解析的 SCAN 域名(如 scan-rac.example.com),不能填 IP 或节点 VIP。
服务端侧检查:show parameter remote_listener 必须为 scan-name:1521(不是 localhost);local_listener 不能为空或指向 127.0.0.1;执行 alter system register; 后,到 SCAN 监听器所在节点(用 srvctl config scan_listener 查)运行 lsnrctl status LISTENER_SCAN1,确认输出里有 Service "xxx" has 1 instance(s)。
DNS 返回单 A 记录导致 srvctl start scan 静默失败
Oracle 19c+ 启动 SCAN 前会调用 getaddrinfo() 校验,**必须返回 ≥2 个独立 IPv4 A 记录**,否则监听器不绑定 VIP,srvctl status scan_listener 就是 UNKNOWN 或空输出。
别信 nslookup scan-rac.example.com ——它可能缓存旧结果;改用 dig scan-rac.example.com @8.8.8.8 +short 直连公网 DNS 查真实返回;如果只返回一个 IP,说明 DNS 配置错误(比如只配了一个 A 记录,或用了 CNAME);/etc/hosts 里写 SCAN 名也必须分三行写三个不同 IP,一行一个,否则只算一个地址。
修复后,先 srvctl stop scan,再 srvctl start scan,最后 srvctl add scan_listener(不带参数)重建监听器资源——注意:SCAN VIP 必须已 ONLINE,否则 add scan_listener 会静默失败。
SCAN VIP 出现 DUP 标记或 arping 检测冲突
间歇性连不上、tnsping 时好时坏,但 crsctl stat res -t 显示正常,大概率是底层 IP 冲突。
在每个节点执行 ip addr show,确认 SCAN VIP 是 secondary 地址、绑在 public 网卡(如 ens33)上,且未被标记 DUP;再跑 arping -D -I ens33 <scan-vip></scan-vip>,若返回 Received reply,说明局域网内已有设备响应该 IP;交换机侧查 MAC 表,看 SCAN VIP 对应的 MAC 是否出现在多个端口——这是二层环路或虚拟机克隆的典型迹象。
注意:oraagent_grid.log 里可能只有模糊的 Failed to bind address,不会明说“IP 冲突”;ss -tlnp | grep :1521 和 nc -zv <scan-vip> 1521</scan-vip> 可辅助验证端口监听真实性,但最终得靠 arping 和交换机日志定位。











