必须先安装compat-libcap1和compat-libstdc++-33,再安装oracle-database-preinstall-19c,否则因依赖缺失导致安装失败;该预安装包会自动创建oinstall/dba组、oracle用户,并配置sysctl.conf、limits.conf等关键参数。

依赖包必须按顺序安装,否则 oracle-database-preinstall-19c 会失败
直接运行 yum install oracle-database-preinstall-19c 很可能报错“Missing dependency”,因为这个 RPM 包本身依赖 compat-libcap1 和 compat-libstdc++-33,但它们不在 CentOS 7 默认源里,且不能靠 yum 自动拉取——必须手动先装。
正确顺序是:
yum install -y compat-libcap1-1.10-7.el7.x86_64.rpmyum install -y compat-libstdc++-33-3.2.3-72.el7.x86_64.rpmyum install -y oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
这两个 compat 包在官方 Oracle 安装介质同级目录里通常能找到;若缺失,可去 https://pkgs.org/ 搜索下载,注意架构必须是 x86_64,系统版本严格匹配 el7。
oracle-database-preinstall-19c 能自动做哪些事?别重复操作
这个预安装包不是“可选”,而是强烈推荐用——它会一次性完成:创建 oinstall/dba 组、oracle 用户、设置 /etc/sysctl.conf 内核参数、配置 /etc/security/limits.conf、调整 tmpfs 大小。你再手动改这些,反而容易和它的配置冲突。
验证是否生效:
- 检查用户:
id oracle应显示属于oinstall和dba - 检查内核参数:
sysctl fs.aio-max-nr输出应为1048576 - 检查 limits:
su - oracle -c 'ulimit -n'应返回65536
如果没生效,别急着手改,先确认 RPM 是否真安装成功:rpm -qi oracle-database-preinstall-19c。
Yum 源失效时,gcc-c++ 和 elfutils-libelf-devel 最容易缺
CentOS 7 默认源有时不包含开发工具链的完整子包,尤其 gcc-c++(非 gcc)和 elfutils-libelf-devel 常被遗漏,导致静默安装时卡在 “Linking Oracle binaries” 阶段,报错类似 undefined reference to 'std::string::...' 或 libelf.h: No such file。
补全命令:
-
yum groupinstall -y "Development Tools"(覆盖大部分) yum install -y gcc-c++ elfutils-libelf-devel ksh sysstat unixODBC-devel
注意:ksh 不是可选——Oracle 安装脚本硬依赖 /bin/ksh,CentOS 7 默认只有 bash,不装会直接退出。
防火墙和 SELinux 关闭后,仍连不上?检查 net-tools 是否装了
net-tools(含 ifconfig、netstat)本身不影响安装,但它是诊断远程连接问题的必备工具。很多教程跳过这步,结果发现 lsnrctl status 显示监听正常,telnet ip 1521 却不通,又查不出网卡配置或端口绑定问题。
装上它再排查:
yum install -y net-tools- 用
ifconfig确认 IP 是你要连的那个(别用 127.0.0.1) - 用
netstat -tlnp | grep :1521看监听是否绑定了*:1521而非127.0.0.1:1521
后者就是典型症状:数据库装好了,但只接受本地连接——因为 listener.ora 生成时用了 localhost,而 net-tools 缺失让你没法快速发现。
真正麻烦的从来不是装多少包,而是某个包没装、某个参数没刷进内核、或者监听地址写死了 loopback。每一步做完,立刻用对应命令验证输出,比重装三遍快得多。


















