oracle 19c安装失败主因是前置环境配置错误:/etc/hosts主机名解析缺失、sysctl -p未真正生效、oracle用户目录权限或环境变量不匹配、依赖包(如compat-libstdc++-33)缺失。

Oracle 19c 安装失败,八成卡在前置环境——不是安装包问题,而是 /etc/sysctl.conf 没生效、oracle 用户权限不对、或者 /etc/hosts 少了一行映射。直接按下面几步做,能绕开 90% 的静默安装报错。
检查并修正 /etc/hosts 主机名解析
图形化或静默安装时,runInstaller 会主动校验主机名能否正向/反向解析。如果失败,直接弹窗报错 “PRVF-4662” 或卡在先决条件检查阶段。
- 用
hostname命令确认当前主机名(比如输出oracle19c) - 执行
ping -c 1 $(hostname),必须返回对应 IP;若超时或 unknown host,说明/etc/hosts缺失条目 - 追加一行:把服务器实际 IP 和主机名写进去,例如
192.168.1.100 oracle19c(不能只写127.0.0.1 oracle19c) - 别忘了检查
127.0.0.1行是否仍包含localhost,否则oraInst.loc初始化可能失败
加载内核参数前必须验证 sysctl -p 是否真生效
sysctl -p 看似执行成功,但 Oracle 安装程序会重新读取 /proc/sys/ 下的实时值。很多情况下参数没真正写入,导致 kernel.shmall 或 fs.aio-max-nr 不达标,报错 PRVF-7532。
- 编辑
/etc/sysctl.conf后,运行sysctl -p,再立刻执行sysctl kernel.shmall—— 输出值必须和配置一致 - 常见坑:RHEL 7 默认启用
systemd-sysctl,它可能忽略注释行或空行,确保参数行无前置空格、无中文符号 - 关键参数至少包括:
kernel.shmall、kernel.shmmax、fs.aio-max-nr、net.core.rmem_max - 若
sysctl -p报 “cannot assign requested address”,说明某参数值超出当前内存限制,需按物理内存比例下调(如 16GB 内存,kernel.shmmax不宜设为 64G)
oracle 用户环境变量和目录权限必须严格匹配响应文件路径
静默安装时,db_install.rsp 里写的 ORACLE_HOME 和 INVENTORY_LOCATION,必须与 oracle 用户实际拥有的目录完全一致,且所有父目录可读可执行。
-
ORACLE_BASE目录(如/u01/app/oracle)必须由oracle:oinstall所有,权限755;ORACLE_HOME子目录(如/u01/app/oracle/product/19.0.0/db_1)必须为空,且属主同上 -
INVENTORY_LOCATION(如/u01/app/oraInventory)不能和ORACLE_BASE在同一级,否则runInstaller会拒绝写入 -
oracle用户的.bash_profile中,ORACLE_SID不必提前设置(安装软件阶段不需要),但ORACLE_HOME和PATH必须正确导出,否则runInstaller可能找不到libclntsh.so - 切记:解压安装包必须用
oracle用户执行,且解压路径不能含空格或中文——unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/是安全写法
依赖包缺失常被误判为“系统兼容性问题”
RHEL 7.6+ 上 yum install oracle-database-preinstall-19c 能一键解决大部分依赖,但它不覆盖 compat-libstdc++-33 和 kmod。漏掉任一包,runInstaller 先决条件检查就会挂掉,错误信息里往往只写 “package not found”,不指明具体缺哪个。
- 手动检查最可靠:运行
rpm -q bc binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf glibc ksh libaio libXrender make sysstat unixODBC - 特别注意
compat-libstdc++-33:RHEL 7 默认不带,必须从vault.centos.org或 Oracle 官方镜像源下载 rpm 安装 -
gcc-c++和glibc-devel不是可选包,静默安装时链接器会调用它们;没装会导致libnnz19.so加载失败 - 如果用最小化安装的系统,
fontconfig和libXtst也容易缺失——图形化安装必报错,静默安装则可能在创建数据库时崩溃
最难调试的其实是多个环节的耦合:比如 /etc/hosts 错了,会导致 oraInst.loc 创建失败;oraInst.loc 失败,又会让后续所有 sysctl 参数检查跳过,最终报错指向错误的地方。动手前,先跑一遍 ./runInstaller -executePrereqs,比盲目改配置更省时间。











