在 Oracle 19c 安装过程中,一个最容易被忽视的问题是报错 INS-30014 或 PRVF-0002。绝大多数情况都是因为 /etc/hosts 文件配置不正确导致的。这里的问题不是没写,而是写了一个“看起来正确、实际错误”的版本。 /etc/hosts 必须同时映射短名和完整名,且不能使
Oracle 19c安装主机名解析失败:hosts文件添加静态映射
时间:2026-06-17
浏览:356
文章目录
在 Oracle 19c 安装过程中,一个最容易被忽视的问题是报错 INS-30014 或 PRVF-0002。绝大多数情况都是因为 /etc/hosts 文件配置不正确导致的。这里的问题不是没写,而是写了一个“看起来正确、实际错误”的版本。

/etc/hosts 必须同时映射短名和完整名,且不能使用 127.0.0.1
Oracle 19c 的安装程序会调用 hostname -f 获取完整主机名(例如 rac1.example.com),然后根据该字符串去查询 /etc/hosts。它不会回退到 127.0.0.1,也不会去询问 DNS。因此,配置必须一步到位。
常见的错误写法有两种:
127.0.0.1 rac1—— 即使hostname输出为rac1,也会失败,因为hostname -f返回的是rac1.example.com,而该完整名称在 hosts 文件中没有出现。127.0.0.1 rac1.example.com rac1—— IP 使用了本地回环,但 Oracle 要求使用本机真实网卡 IP(例如192.168.10.10)。
正确的写法如下:
192.168.10.10 rac1.example.com rac1
配置完成后,可运行以下三条命令验证:
hostname→ 应输出rac1hostname -f→ 应输出rac1.example.comgrep rac1 /etc/hosts→ 应返回包含192.168.10.10的行,且两个名称都在其中
runcluvfy 报 PRVF-4657 或 PRVF-4664 的真实检查逻辑
该错误并非 DNS 问题,而是 Oracle 执行的一套严格本地闭环验证:使用系统的 getaddrinfo() 和 gethostbyaddr() 进行正向和反向解析,要求两者完全一致。
- 正向解析:用
rac1.example.com查询 IP → 必须得到192.168.10.10 - 反向解析:用
192.168.10.10查询主机名 → 必须返回rac1.example.com(不能是rac1或其他别名)
常见踩坑点:
/etc/hosts中该 IP 行后面多了一个空格或制表符,导致第二个字段被截断- 虚拟机克隆后未更新 IP,但
hostname -f已修改,而 hosts 仍为旧配置 - 容器环境中
hostname为随机生成的字符串(如8a3f2b1e4c7d),但/etc/hosts未同步,也未挂载外部 hosts
可使用 nslookup 快速验证:
nslookup rac1.example.com→ 检查是否返回192.168.10.10nslookup 192.168.10.10→ 检查是否返回rac1.example.com
注意:第二步依赖 DNS 的 PTR 记录;如果不走 DNS,仅靠 /etc/hosts 无法完成反向解析,因此必须确保 hosts 配置已覆盖全部需求。
SCAN 域名也遵循同一套解析逻辑,但要求更严格
在 RAC 场景下,scan.example.com 与节点主机名一样,受同一套解析校验约束,且存在额外要求:
- 解析结果必须返回 2–3 个不同的 IPv4 地址(即
getaddrinfo()返回至少 2 个AF_INET结构体) /etc/hosts中不能写成单行多个 IP,例如192.168.10.10 192.168.10.11 192.168.10.12 scan.example.com这种写法无效- 必须分三行书写,每行一个 IP 加相同域名:
192.168.10.10 scan.example.com
192.168.10.11 scan.example.com
192.168.10.12 scan.example.com
否则 srvctl start scan 会静默失败,或者 srvctl status scan_listener 显示监听器只绑定了部分 VIP。这是典型的“约定大于配置”场景,少写一行都不行。
最后提醒一点:修改 /etc/hosts 后,hostname -f 的输出可能仍在缓存旧值,尤其在 systemd 系统上。不要仅依赖命令输出,应以 getaddrinfo("rac1.example.com", ...) 实际调用的结果为准——这意味着最好重试安装,或者至少重启 systemd-hostnamed 服务,实在不行就 reboot。与其花半小时排查,不如先花两分钟重启一下,很多时候问题就这么解决了。
实用工具推荐
绿化、压缩、噪点和虚拟水印,自由调节做旧程度。
选择画质和输出格式,预览压缩前后的大小。