runInstaller -silent卡在初始化阶段,主因是oracle用户主组非oinstall或响应文件路径非法;须验证id输出首组为oinstall,db_install.rsp须用绝对路径、无中文空格、权限正确,并显式配置六项必改参数。

runInstaller -silent 卡在初始化阶段?先查用户主组和响应文件路径
静默安装失败的绝大多数情况,根本没走到安装逻辑——runInstaller 启动时就校验失败退出。最常见原因是:当前 shell 不是以 oracle 用户身份运行,或该用户的主组(primary group)不是 oinstall。
验证方式:id oracle 输出中,括号里第一个组名必须是 oinstall;不是的话,useradd -g oinstall -G dba oracle 重建用户,并用 su - oracle(注意带短横)切换,确保加载完整环境。
db_install.rsp 路径也必须合法:不能用相对路径,不能含中文或空格,且文件权限需对 oracle 用户可读。建议统一放在 /home/oracle/response/ 下并 chown oracle:oinstall。
db_install.rsp 六个必改参数,改错一个就 fatal
官方模板 database/response/db_install.rsp 是通用占位符,不改直接用必报 [FATAL]。以下六项必须显式修改:
-
oracle.install.option=INSTALL_DB_SWONLY:仅装软件,避免建库参数漏配导致中断 -
UNIX_GROUP_NAME=oinstall:大小写敏感,填OINSTALL或oinstall1都会失败 -
INVENTORY_LOCATION=/u01/app/oraInventory:路径必须存在、属主为oracle:oinstall、不可与ORACLE_HOME嵌套 -
ORACLE_HOME=/u01/app/oracle/product/19c/dbhome_1:末尾不能加斜杠,层级不能多一层(如/dbhome_1/) -
ORACLE_BASE=/u01/app/oracle:必须是ORACLE_HOME的直接父级或上两级,不能等于它 -
DECLINE_SECURITY_UPDATES=true:不设此项,静默过程会在交互确认页卡死
其他如 oracle.install.db.InstallEdition,按许可证填 EE 或 SE2,填错会导致后续 sqlplus / as sysdba 连不上。
依赖没兜底?优先装 oracle-database-preinstall-19c RPM
手动 yum install 四十多个包,极易漏掉 i686 架构依赖(如 libaio.i686)或版本冲突。更稳妥的做法是直接装 Oracle 官方预配置包:
wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpmyum localinstall -y oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
这个 RPM 会自动设置内核参数、limits.conf、用户资源限制,并创建 oracle 用户(但你仍需手动 passwd oracle 并确认主组)。它不替代 groupadd 和 useradd,而是补全系统级约束。
swap 和 /u01 空间不足,安装后启动就报 ORA-00845
即使 runInstaller 成功完成,数据库实例也大概率起不来。典型错误是 ORA-00845: MEMORY_TARGET not supported on this system,根源是 /dev/shm 大小不足或 swap 分区太小。
检查并修复:
-
df -h /dev/shm:必须 ≥ 4GB,否则mount -o remount,size=4G /dev/shm,并写入/etc/fstab -
free -h:swap 必须 ≥ 内存的 1.5 倍(例如 64GB 内存需 ≥ 96GB swap),否则扩容 swap 文件 -
df -h /u01:必须 ≥ 35GB,且/u01/app/oracle和/u01/app/oraInventory目录属主必须为oracle:oinstall
这些空间和挂载点问题,不会阻断 runInstaller,但会让后续 dbca 或实例启动直接失败,容易误判为安装成功。


















