Oracle Database 21c官方仅支持RHEL 8.4–8.6(含UEK5/6),安装前须验证/etc/redhat-release和uname -r,禁用SELinux,确保glibc、libaio等包更新,正确配置hosts与响应文件,严格按runInstaller→root.sh→dbca顺序执行,并验证pmon进程、监听状态及实例OPEN。

确认 RHEL 8 系统状态和内核兼容性
Oracle Database 21c 官方仅明确支持 RHEL 8.4–8.6(含 UEK5/6),RHEL 8.7+ 需自行验证。安装前必须检查:/etc/redhat-release 和 uname -r 输出,避免在 8.7 或更新的 minor 版本上直接套用 8.6 的静默参数——部分内核模块(如 libaio 行为)有细微差异,会导致 runInstaller 在链接阶段报 libaio.so.1: cannot open shared object file。
关键动作包括:
- 运行
dnf update -y确保系统包最新,尤其glibc、libaio、libnsl、libxcrypt-compat(RHEL 8.6+ 引入)必须到位 - 禁用 SELinux:临时用
setenforce 0,永久修改/etc/selinux/config中SELINUX=disabled;不关会卡在dbca创建监听器步骤 - 确认
/etc/hosts包含完整 FQDN 条目,例如192.168.56.107 ol21c.localdomain ol21c;少写主机别名或 IP 写成127.0.0.1会导致静默建库时DBCA解析失败并退出
准备响应文件:db_install.rsp 和 dbca.rsp
21c 静默安装依赖两个核心响应文件:db_install.rsp(装软件)和 dbca.rsp(建库)。不能复用 19c 的模板——21c 新增了 oracle.install.db.isACFSUpgrade、oracle.install.db.enableDiagnostics 等字段,漏填或设错值(如把 TRUE 写成 true)会导致 runInstaller 直接终止并输出模糊错误 PRVG-11333 : Failed to verify the value for property 'oracle.install.db.isACFSUpgrade'。
实操要点:
-
INVENTORY_LOCATION必须设为非/tmp路径(如/u01/app/oraInventory),否则安装中途因权限或空间不足失败 -
oracle.install.db.config.starterdb.type建议显式设为GENERAL_PURPOSE;若留空,dbca.rsp中databaseConfigType必须同步设为SINGLE,否则提示ORA-12547: TNS:lost contact -
oracle.install.db.config.starterdb.globalDBName和oracle.install.db.config.starterdb.SID必须一致(如都用ORCL),不一致将导致监听注册失败,sqlplus / as sysdba可连但tnsping ORCL不通
执行静默安装命令链与常见中断点
顺序执行三步不可跳过:runInstaller -silent -responseFile → root.sh → dbca -silent -responseFile。中间任意一步失败,后续命令不会自动重试,且残留进程(如 oraagent)可能锁住端口或共享内存段。
典型中断场景:
-
runInstaller卡在INFO: Completed prerequisite checks.后无响应:大概率是DISPLAY环境变量未清空(即使静默模式也会读取),执行unset DISPLAY再重试 -
root.sh报ERROR: Unable to create directory /u01/app/oracle/product/21c/dbhome_1/install/:说明ORACLE_HOME路径权限不对,需确保oracle用户对该路径有rwx,且父目录/u01/app/oracle/product所属组为oinstall -
dbca进度停在Creating and starting Oracle instance超过 10 分钟:检查/proc/sys/vm/swappiness是否 >10,21c 对内存压力敏感,建议设为1并重启systemd服务
验证安装结果与立即要做的三件事
安装成功不等于数据库可用。必须立刻验证三项:
- 用
ps -ef | grep pmon确认ora_pmon_ORCL进程存在;若只有ora_w000_ORCL没有pmon,说明实例未真正启动,需查$ORACLE_HOME/cfgtoollogs/dbca/ORCL/ORCL.log - 执行
lsnrctl status,输出中必须含Service "ORCL" has 1 instance(s);若显示Service "ORCLXDB" has 1 instance(s)但主服务缺失,是dbca.rsp中createAsContainerDatabase设为TRUE但未配 CDB 参数所致 - 运行
sqlplus / as sysdba后执行SELECT status FROM v$instance;,返回OPEN才算完成;若为MOUNTED,说明控制文件未正确加载,需检查dbca.rsp中datafileDestination路径是否存在且可写
最容易被忽略的是:21c 默认启用统一审计(Unified Auditing),首次连接时会触发审计策略初始化,若 /u01/app/oracle/admin/ORCL/adump 目录不存在或权限不足,sqlplus 会卡住数分钟才报错——这个目录必须在运行 dbca 前手动创建并 chown oracle:oinstall。











