srvctl modify scan 报 ora-01017 或连接失败,本质是 ipc 通道拒绝而非密码错误;需以 su - grid 切换并确保 crsctl check crs 正常,dns 更新后须等 ttl 过期、停 scan 资源、显式指定完整 scan fqdn,否则因 ocr 与 dns 不一致导致 ora-15032 等错误。
srvctl modify scan 为什么报 ora-01017 或连接失败
执行 srvctl modify scan 前,oracle 会尝试用当前环境变量中的 oracle_home 和 grid_home 连接集群(通常是通过 crsctl 调用 ocr),如果当前用户没权限访问 gi 的 root 操作通道,或 grid 用户环境未生效,就会触发认证失败。不是密码错,而是连接 crs 的 ipc 通道被拒。
- 确保以
grid用户身份运行命令,别用oracle或root直接切过去但没加载环境 —— 先su - grid,别su grid - 检查
crsctl check crs是否返回CRS-4638: Oracle High Availability Services is online,否则srvctl必然失败 - 若 SCAN 名已解析到新 IP 但 OCR 还存旧值,
srvctl modify scan会拒绝更新,需先确认旧 SCAN 是否已从 DNS 下线(否则可能触发双 SCAN 冲突)
修改 DNS 后 srvctl modify scan 报 ORA-15032 / ORA-15274
这类错误本质是 OCR 中的 SCAN VIP 资源依赖关系未同步更新:DNS 改了,但 GI 还在按老 IP 尝试启动 VIP,导致资源启动失败,进而让 srvctl modify scan 回滚并报错。
- DNS 修改后,必须等 TTL 过期(或清空所有节点的
/etc/resolv.conf对应 DNS 缓存 + 重启nscd),再执行srvctl操作,否则nslookup <scan-name></scan-name>在不同节点返回不一致 IP - 执行前先停掉 SCAN 相关资源:
srvctl stop scan和srvctl stop scan_listener,避免旧 VIP 占着端口抢不到新地址 - 修改命令中必须显式指定完整 SCAN 名(如
-n mycluster-scan.example.com),不能只写mycluster-scan,否则 GI 可能拼出错误 FQDN 导致解析失败
srvctl modify scan 成功但 lsnrctl status 看不到新 SCAN listener
SCAN listener 启动依赖 SCAN VIP 绑定成功,而 VIP 绑定又依赖操作系统层面的网络配置。即使 srvctl modify scan 返回成功,也不代表 SCAN listener 已就绪。
免费 DNS 与邮件安全分析(IntoDNS.ai):包括 DNSSEC、SPF、DKIM、DMARC、MTA-STS、BIMI、SMTP STARTTLS、FCrDNS、黑名单、发件人要求及报告。
- 检查
ifconfig或ip addr,确认对应 SCAN VIP 的 IP 确实出现在某个网卡别名上(如eth0:1),否则 listener 无法监听 - 运行
srvctl config scan和srvctl config scan_listener,核对输出中的 IP 是否与 DNS 解析结果一致;不一致说明 OCR 更新没落地,需重跑srvctl modify scan - 监听器日志位置在
$GRID_HOME/log/<hostname>/client/tnslsnr_<scan-name>_alert.log</scan-name></hostname>,重点看 “TNS-12545” 或 “No such device” 类错误,指向网卡或路由问题
SCAN IP 修改后客户端连不上,但 tnsping 扫描名却成功
tnsping 只验证 DNS 解析和基本 TCP 连通性,不校验 SCAN listener 是否真正接受连接。常见于 SCAN listener 启动了,但没加载服务名(即没注册任何数据库实例)。
- 查
lsnrctl status LISTENER_SCAN1输出里有没有SERVICE_NAME行,没有说明数据库实例没向这个 SCAN listener 注册 —— 检查数据库参数remote_listener是否仍指向旧 SCAN 名 - 数据库侧需执行
ALTER SYSTEM SET remote_listener='new-scan.example.com:1521' SCOPE=BOTH,然后ALTER SYSTEM REGISTER强制刷新 - 注意 SCAN listener 默认只监听 1521 端口,如果客户端连接串里写了非标端口(如 1522),即使 DNS 正确也会连不上,且不会报错,只会超时
最麻烦的是 DNS 修改和 GI 配置不同步的时间窗口 —— 客户端、GI 节点、数据库实例三端看到的 SCAN 地址可能各不相同,这种状态没法靠单次命令修复,得逐层确认解析结果和资源状态。










