Oracle 19c RPM安装必须先安装oracle-database-preinstall-19c预配置包,它自动设置内核参数、用户组、PAM限制及禁用冲突服务;直接安装主包会因依赖缺失或环境不达标而失败。

oracle-database-ee-19c-1.0-1.x86_64.rpm 安装包本身不直接运行安装,而是依赖 oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm 预配置环境。跳过预安装或手动配错参数,90% 的静默安装失败都发生在这一步。
用 rpm/yum 安装 oracle-database-ee-19c 时为什么报 dependency 错误
这不是 Oracle 包写错了,是它故意不打包系统级依赖(比如 compat-libstdc++-33、libnsl.so.1),强制你先做环境检查。
-
compat-libcap1和compat-libstdc++-33在 CentOS/RHEL 7 默认源里已移除,必须手动下载 rpm 包后用rpm -ivh --force --nodeps安装 -
libnsl.so.1缺失常见于较新 glibc 版本(如 glibc 2.28+),执行dnf install libnsl或yum install libnsl即可 - 如果用
yum localinstall装主包时报 “no package found”,说明preinstall包没装成功——它会创建oinstall/dba组、设置内核参数、修改/etc/security/limits.conf,缺一不可
静默安装前必须验证的三项系统配置
Oracle 19c 不会主动告诉你哪项没达标,只在日志里埋错误码。最常踩坑的是这三项:
-
/proc/sys/vm/swappiness必须 ≤ 1(不是 0)。设为 0 可能导致 RAC 启动异常;设为 10 会导致安装中途卡死在ora.install.db.config.starterdb.type -
/dev/shm大小不能低于 4GB:mount -o remount,size=4G /dev/shm,仅改/etc/fstab不生效,重启前必须 remount -
transparent_hugepage必须禁用:echo never > /sys/kernel/mm/transparent_hugepage/enabled,且要写入/etc/rc.d/rc.local,否则重启失效
安装后 /etc/init.d/oracledb_ORCLCDB-19c configure 卡住不动怎么办
这个脚本本质是调用 dbca -silent 创建数据库,卡住通常不是性能问题,而是权限或路径不对。
- 确保
ORACLE_HOME已在 root 环境变量中(不只是 oracle 用户),否则脚本找不到dbca - 检查
/opt/oracle/oradata(或你指定的数据目录)是否由oracle:oinstall拥有且权限为755,777反而会触发安全校验失败 - 如果卡在 “Copying database files”,看
/opt/oracle/cfgtoollogs/dbca/ORCLCDB下最新日志,大概率是libaio版本太低或ulimit -n未达 65536
为什么建议用 oracle-database-preinstall-19c 而非手调内核参数
这个 RPM 不只是改几个 sysctl 值,它做了三件人工容易漏的事:
- 自动适配当前内核版本:RHEL 7.6 和 7.9 的
kernel.sem推荐值不同,它动态计算 - 修复 PAM 限制:把
session required pam_limits.so插入到/etc/pam.d/login和/etc/pam.d/sshd,否则su - oracle后 ulimit 不生效 - 禁用冲突服务:
avahi-daemon和chronyd(若启用 NTP client)会被临时 stop 并 mask,避免监听端口冲突
实际部署中,最易被忽略的是 /etc/hosts 文件里主机名解析必须双向通:既能 ping oracle19c,也要能 hostname -i 返回 IPv4 地址(不能是 ::1)。Oracle 19c 的 dbca 会校验这个,失败时不报错,只静默退出。


















