srvctl modify scan -n 可直接修改 SCAN 名称,但必须先在 DNS 中配置全部 3 个 A 记录,停用 SCAN 和 SCAN Listener 后执行,再运行 srvctl modify scan_listener -u 刷新监听配置,并验证 DNS、OCR 与网卡绑定一致性。
srvctl modify scan -n 能直接改 SCAN 名称,但 DNS 必须先就绪
直接执行 srvctl modify scan -n 可以更新 ocr 中记录的 scan 名称,但前提是新名称已在 dns 中完成 a/aaaa 记录配置且能被所有节点解析。如果仅改了 /etc/hosts,后续 srvctl start scan 会失败——因为 scan vip 启动时依赖 dns 解析结果做一致性校验(尤其在 19c 中校验更严格)。
常见错误现象:srvctl start scan 卡住或报 CRS-2674: Start of 'ora.scan1.vip' on 'node1' failed,crsctl stat res -t 显示 SCAN VIP 状态为 OFFLINE。
- DNS 必须提前添加全部 3 条 A 记录(对应 3 个 SCAN VIP),不能只配一个 IP
- 所有 RAC 节点执行
nslookup new-scan-name.domain.com必须返回全部 3 个 IP,且顺序不重要 - 不要跳过 DNS 验证直接改 OCR;
/etc/hosts仅用于临时排障,不能替代 DNS
修改 SCAN 名称前必须停掉 SCAN 和 SCAN listener
SCAN 是集群资源,运行中不允许修改名称。必须按顺序停止依赖链:先停 scan_listener,再停 scan。顺序反了会导致 srvctl stop scan 报 CRS-2501: Resource 'ora.scan1.vip' is not registered 或 hang 住。
实操建议:
- 用 root 执行:
srvctl stop scan_listener→ 等 10 秒 →srvctl stop scan - 检查是否真正停止:
srvctl status scan和srvctl status scan_listener都应返回 “is not running” - 别用
crsctl stop resource手动 stop VIP,容易破坏资源依赖关系
srvctl modify scan -n 后必须执行 srvctl modify scan_listener -u
SCAN 名称变了,SCAN listener 的监听地址也得同步刷新。19c 中 srvctl modify scan -n 不自动触发 listener 重配置,漏掉这步会导致 listener 绑定到旧 SCAN 名下的 VIP,客户端连不上。
关键点:
-
srvctl modify scan_listener -u是唯一正确方式;-u表示 “update from current SCAN config”,不是指定新名 - 执行前确保
srvctl config scan已显示新名称和新 IP(即 OCR 已生效) - 该命令不重启 listener,只是更新 OCR 元数据;真正生效要靠后续
srvctl start scan_listener
启动后必须验证 SCAN VIP 是否绑定到新 IP
srvctl start scan 成功不代表 VIP 已就位。有些场景下 VIP 资源启动成功,但实际没绑到网卡,或者 ARP 未广播,客户端仍连旧地址。
验证步骤缺一不可:
- 查 VIP 实际绑定:
ifconfig | grep -A2 "10\.|192\.|172\."(看对应 SCAN VIP 是否出现在网卡别名上) - 查集群视角:
srvctl config scan和srvctl config scan_listener输出中的 IP 是否一致 - 查监听状态:
lsnrctl status LISTENER_SCAN1的Listening Endpoints Summary...段是否含新 SCAN 名和新 IP - 从客户端
tnsping new-scan-name.domain.com,确认解析和连通性都走新路径
OCR、DNS、网卡配置三者必须对齐,任意一环滞后都会导致 SCAN 表面正常、实际不可用。尤其是跨网段迁移时,别只盯着命令执行成功,要盯住 IP 真实落到了哪块网卡上。


















