yum install oracle-database-ee-19c会失败,因官方未在标准yum源中注册该简写包名,必须使用yum localinstall指定完整rpm文件路径,并前置安装oracle-database-preinstall-19c、确保/etc/hosts解析正确及cfgtoollogs目录存在。
yum install oracle-database-ee-19c 这条命令不能直接执行成功,它会失败或静默跳过——因为 oracle 官方并未在标准 yum 源中发布 oracle-database-ee-19c 这个包名,而是提供带完整版本号和架构的 rpm 文件(如 oracle-database-ee-19c-1.0-1.x86_64.rpm),必须显式指定路径或 url。
为什么 yum install oracle-database-ee-19c 会失败
这不是拼写错误或网络问题,而是设计使然:oracle-database-ee-19c 是软件包的“名称”(Name),但 RPM 包管理器在 yum 中查找时,依赖的是 name-version-release.arch 全称。官方仓库里没有注册该简写名的元数据,所以 yum 无法解析。
- 执行
yum install oracle-database-ee-19c通常返回No package oracle-database-ee-19c available - 即使你已下载 RPM 文件到本地,
yum install也不会自动扫描当前目录;它只查 repo 配置里的源 -
yum localinstall才是正确入口,它专为本地 RPM 文件设计(虽在较新 yum 版本中已被yum install ./xxx.rpm取代,但兼容性上仍推荐显式用localinstall)
yum localinstall oracle-database-ee-19c-*.rpm 的实操要点
这是真正起效的安装命令,但有三个关键动作必须前置完成,否则安装中途会报错退出:
- 必须先装好
oracle-database-preinstall-19c包(用yum install -y https://.../oracle-database-preinstall-19c-*.rpm或yum localinstall)——它创建用户、组、内核参数,缺它则oracle用户不存在,RPM 脚本直接拒绝运行 - RPM 文件需放在有执行权限的目录(如
/tmp或/root),且 root 用户对其有读取权;放在/home/oracle下常因 SELinux 或权限被拒 - 确保
/etc/hosts包含本机 hostname 的完整正向+反向解析,例如:192.168.56.101 db19c.localdomain db19c—— 缺这项,后续runInstaller启动时抛PRVG-11335
安装后 /opt/oracle/product/19c/dbhome_1 为空怎么办
这不是失败,是 RPM 的分阶段设计:它只解压脚本、设置服务、占位目录,不拷贝数据库二进制文件。
- 真实安装发生在首次运行
/etc/init.d/oracledb_ORCLCDB-19c configure时,该脚本内部调用setup.sh把软件从 RPM 归档提取到$ORACLE_HOME - 若你手动执行过图形化
runInstaller或静默dbca,可能导致$ORACLE_HOME被写入两套内容,引发冲突(比如监听器启动失败、sqlplus找不到库) - 验证是否真空:检查
ls -A /opt/oracle/product/19c/dbhome_1—— 正常应有bin/、lib/、network/等空目录;若连这些都没有,说明 preinstall 包没装成功或 SELinux 仍在 enforcing 模式
服务脚本 oracledb_ORCLCDB-19c 启动前必改的参数
这个脚本封装了 dbca -silent,但默认值不适合多数场景,硬编码在文件里,环境变量无效:
-
ORACLE_SID:默认是ORCLCDB,想改必须编辑/etc/init.d/oracledb_ORCLCDB-19c,搜ORACLE_SID=行并替换,然后systemctl daemon-reload -
MEMORY_TARGET:默认仅2G,内存 ≥16GB 的机器建议加-initParams memory_target=6G到脚本中dbca命令行部分 - CDB 控制:要禁用多租户(即传统非 CDB),必须加
-createAsContainerDatabase false;光在命令行传参没用,脚本里没透传逻辑 - 日志目录:脚本固定写日志到
$ORACLE_BASE/cfgtoollogs/dbca,但不会自动创建cfgtoollogs目录——如果$ORACLE_BASE下无此目录,服务会卡在 “Preparing to execute database configuration” 阶段
实际部署中最容易被忽略的,是 /etc/hosts 解析和 cfgtoollogs 父目录的预创建——它们不出现在任何报错标题里,只藏在 oui*.log 或服务启动超时中。











