必须先创建oracle用户并加入oinstall和dba组、配置/etc/hosts映射、安装所有必需RPM包、设置DISPLAY或X11转发、确保响应文件可读;Windows下无此命令,需用setup.exe -record生成日志检查。

直接运行 runInstaller -executePrereqs 就能触发完整校验,但必须先完成基础环境配置,否则命令根本跑不起来。
执行 runInstaller -executePrereqs 前必须满足的硬性前提
这个命令不是万能检测器,它依赖底层环境就位。常见失败不是因为检查逻辑错,而是前置条件没铺好:
-
oracle用户已创建,且属于oinstall和dba组 -
/etc/hosts中已正确配置本机 hostname 到 127.0.0.1 或实际 IP 的映射(PRVF-0002: could not retrieve local node name就是这里崩了) - 所有必需 RPM 包已安装(比如
libaio-devel、compat-libcap1、gcc-c++),缺一个就会卡在校验入口 -
DISPLAY环境变量已设(图形安装)或 X11 转发已通;静默安装则需确保oracle用户能读取响应文件路径
runInstaller -executePrereqs 输出结果怎么看
它不会返回 exit code 0/1 来简单判断成败,而是输出一段带颜色的状态列表。关键看三类标记:
- ✅ PASSED:该项通过(如
Kernel version check) - ⚠️ WARNING:建议调整但不阻断(如
Swap space check显示 “less than recommended”) - ❌ FAILED:必须修复(如
Available memory check报PRVF-0002或PRVF-0657)
注意:WARNING 不等于可忽略——比如 /dev/shm 容量不足 4GB,安装可能成功,但实例启动时会直接报 ORA-27123。
比 -executePrereqs 更早该查的几项手动验证
有些问题 runInstaller 不主动扫,但会导致后续步骤崩溃,必须人工确认:
- 检查
/dev/shm挂载容量:df -h /dev/shm,低于 4G 必须重挂载(mount -o remount,size=4G /dev/shm) - 确认内核参数已写入
/etc/sysctl.conf并生效:sysctl -p后再sysctl kernel.sem、sysctl vm.swappiness核对值 - 验证
oracle用户ulimit -n≥ 65536,ulimit -u≥ 16384,且这些限制在/etc/security/limits.d/oracle.conf中持久化 - SELinux 必须为
disabled(不是permissive),getenforce输出必须是Disabled
Windows 下不能用 -executePrereqs,得换招
Windows 版 setup.exe 没有等价命令。替代方案是:
- 运行
setup.exe -record -destinationFile C:\prereq.rsp生成预检日志(实际不安装,只录环境信息) - 手动检查
C:\prereq.rsp中关键项:内存是否 ≥4GB(PhysicalMemory)、.NET Framework 4.8是否已安装、Visual C++ 2017 Redistributable是否存在 - 特别注意:Windows 家庭版无法绕过系统类检查,
PRVF-0002类错误大概率是系统版本不被支持,不是配置问题
先决条件检查不是安装流程里的“一步”,它是贯穿始终的约束。很多 ORA- 错误表面发生在建库后,根子其实在 /etc/sysctl.conf 漏改了一行参数,或者 ulimit 没刷进 PAM 配置里。


















