Oracle安装CVU检查失败需查/tmp/CVU_*/cvu_config.log和cvu_err.log,常见原因为swap未激活(swapon -s为空)或/tmp挂载含noexec/size过小;须删CVU缓存、用sudo -E重跑。
Oracle安装报错“Check complete. The overall result of this check is: Failed”但没说清哪项失败
oracle安装前置检查(runinstaller 自动触发的 cvu 检查)失败时,日志往往只给一句笼统的失败提示,实际原因藏在临时日志里。最常被忽略的是 /tmp/cvu_* 下的详细输出,而不是图形界面弹窗或控制台滚动信息。
实操建议:
- 立刻查
/tmp/CVU_*/cvu_config.log和同级cvu_err.log,里面会明确写哪条检查没过,比如swap space check或/tmp space check - 别信图形界面右上角的绿色对勾——它只反映部分检查,
cvu的完整结果以日志为准 - 如果日志里出现
PRVF-7532 : Sufficient swap space was not found on node或PRVF-7531 : Sufficient /tmp space was not found,说明问题就在这两处
swap空间不足:不是看free -h显示的total,而是看swapon -s启用的分区是否满足Oracle最低要求
Oracle 19c 要求 swap 至少为物理内存的 0.5 倍(≤ 16GB 内存)或固定 16GB(>16GB),且必须是已激活的 swap 分区/文件。仅创建 swap 文件但没 swapon,或用了 LVM 逻辑卷但未格式化为 swap 类型,都会导致检查失败。
实操建议:
- 运行
swapon -s确认当前启用的 swap 设备及其大小;若为空,说明没启用 - 用
mkswap /dev/xxx格式化新分区,或mkswap /path/to/swapfile初始化文件,再swapon /dev/xxx或swapon /path/to/swapfile - 追加
/etc/fstab行:例如/swapfile none swap sw 0 0,避免重启失效 - 注意:Oracle 检查脚本不识别
zram或 cgroup v2 的 memory.swap.max,只认传统swapon列表里的设备
/tmp 目录空间不够:Oracle 安装过程会往 /tmp 写几百MB临时解压包,不是看df剩余,而是看挂载选项和inode
df -h /tmp 显示还有 2GB,但 Oracle 仍报 PRVF-7531,大概率是 /tmp 所在文件系统启用了 noexec、nosuid,或 inode 耗尽(df -i /tmp),又或者 /tmp 是 tmpfs 且 size= 参数设得太小。
实操建议:
- 查挂载参数:
mount | grep ' /tmp ',确认不含noexec(Oracle 解压需要执行权限) - 查 tmpfs 大小:
grep tmpfs /proc/mounts | grep /tmp,若含size=1G且小于 2G,需重新 mount 加size=4G - 清空
/tmp下残留的OraInstall*、CVU_*目录(它们可能占满 inode) - 临时方案:用
export TMPDIR=/home/oracle/tmp并提前建好足够空间目录,Oracle 会优先使用该变量
扩容后检查仍失败:cvu缓存未刷新,且部分检查依赖root用户执行的脚本
即使 swap 和 /tmp 都改好了,再次运行 runInstaller 还是报同样错误,是因为 cvu 在第一次检查后生成了缓存(/tmp/CVU_*/ 下的 .dat 文件),不会自动重跑全部项;更关键的是,swap 和 /tmp 检查需要 root 权限调用系统命令,而普通用户启动的 installer 可能没拿到最新结果。
实操建议:
- 删掉全部
/tmp/CVU_*目录(不用留日志,重跑会新建) - 用
sudo -E ./runInstaller启动(-E保留环境变量如TMPDIR),确保 cvu 能以 root 权限读取真实系统状态 - 如果用 VNC 或远程桌面启动图形界面,确认 DISPLAY 环境变量正确,否则 cvu 子进程可能因 X11 权限失败而跳过检查
真正卡住的地方,往往不是扩容操作本身,而是 cvu 缓存、权限上下文、以及它对挂载选项和 tmpfs 参数的硬性校验逻辑——这些细节在官方文档里藏得深,但日志里全有线索。










