Oracle Linux 7.9上安装Oracle 19c必须先装oracle-database-preinstall-19c再装oracle-database-ee-19c,因预装包自动创建用户组、配置内核参数、禁用THP等,缺之则runInstaller报错退出;其yum安装成功依赖官方源启用、GPG校验正常及系统版本确为OL7.9。

Oracle Linux 7.9 上用 RPM 安装 Oracle 19c 是最简路径,但必须严格按两步走:先装 oracle-database-preinstall-19c,再装 oracle-database-ee-19c;跳过前者或顺序颠倒,runInstaller 会直接报错退出。
为什么 yum install oracle-database-preinstall-19c 在 Oracle Linux 7.9 上能直接成功
因为该包仅存在于 Oracle Linux 官方源(ol7_latest),且已预配置 GPG 密钥和仓库启用状态。执行命令前只需确认:
-
cat /etc/os-release | grep -E "(NAME|VERSION_ID)"输出为NAME="Oracle Linux Server"和VERSION_ID="7.9" -
yum repolist enabled | grep ol7_latest有非空输出 - 未手动禁用
gpgcheck=1或替换过 baseurl —— 否则会卡在NOKEY警告后中断
一旦满足,yum install -y oracle-database-preinstall-19c 会自动创建 oinstall/dba 组、oracle 用户(UID/GID=54321),写入 /etc/sysctl.d/99-oracle-database-preinstall-19c-sysctl.conf 并生效,还禁用 THP、重挂 /dev/shm。这些动作无法被后续手动补全替代。
rpm -ivh 手动安装 preinstall 包时依赖报错怎么解
常见错误如 error: Failed dependencies: compat-libcap1 is needed by ...,本质是 yum 源缺失基础组件。别急着加 --nodeps,先做三件事:
- 运行
yum install -y bc gcc gcc-c++ libaio-devel ksh sysstat unixODBC-devel补核心工具链 - 检查
/etc/yum.repos.d/public-yum-ol7.repo中[ol7_latest]段是否启用(enabled=1)且未被镜像源覆盖 - 若用的是阿里云/腾讯云等镜像,确认其 repo 文件中
baseurl指向https://mirrors.aliyun.com/oraclelinux/OL7/latest/x86_64/这类有效路径,而非已下线的旧地址
只有当上述都通过,且你已手动执行过 groupadd oinstall; useradd -u 54321 -g oinstall oracle 等等操作,才可考虑 rpm -ivh --nodeps 强制安装——但此时它只剩写 sysctl 和 limits 的作用,风险远大于收益。
安装 oracle-database-ee-19c RPM 后必须立刻验证的三件事
RPM 安装本身不启动数据库,也不校验关键运行条件。安装完 oracle-database-ee-19c-1.0-1.x86_64.rpm 后,立即执行:
-
free -g | grep Swap—— 必须显示 ≥16G;否则runInstaller在链接阶段因 swap 不足直接失败,且不会提示具体原因 -
getenforce必须返回Disabled;只改/etc/selinux/config不够,必须同步执行setenforce 0并重启,否则监听器绑定端口被拦截 -
mount | grep shm确认/dev/shm挂载选项含size=4G;preinstall 包虽尝试 remount,但若系统此前已用 systemd-tmpfiles 创建了固定大小的 tmpfs,它可能失效
这些点不在 RPM 的 %post 脚本里,也不被 oracle-database-preinstall-19c 覆盖,属于必须人工盯死的边界条件。


















