oracle 19c rpm安装前必须检查:1. /etc/hosts需含本机hostname完整解析;2. 内存≥4gb且swap≥2gb;3. oracle用户须属oinstall和dba组且家目录权限非755;4. selinux须设为permissive。
oracle 19c rpm安装前必须检查的4个系统前提
RPM安装不是扔个包就能跑,yum localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm 执行失败八成卡在这几步:
-
/etc/hosts里必须有本机 hostname 的完整解析(不能只有127.0.0.1 localhost),否则runInstaller启动时直接报PRVG-11335 : Failed to resolve the host name - 内存低于 4GB 或 swap 小于 2GB 时,
oracle-database-preinstall-19c包会静默跳过内核参数配置,导致后续建库卡在ORA-00845: MEMORY_TARGET not supported on this system -
oracle用户必须属于oinstall和dba组,且家目录权限不能是755(RPM 脚本会拒绝执行) - SELinux 必须设为
permissive,enforcing模式下oradim创建实例会因权限拒绝失败,错误日志里藏在$ORACLE_BASE/cfgtoollogs/下的oui*.log里
rpm -ivh 安装后为什么 /opt/oracle/product/19c/dbhome_1 是空的
这不是安装失败,是 Oracle 19c RPM 的设计逻辑:它只解压二进制和预置脚本,不自动运行 runInstaller。你看到的空目录其实是“占位符”,真实安装发生在后续配置阶段:
-
oracle-database-ee-19cRPM 只负责部署oracle-database-preinstall-19c、创建用户/组、设置 sysctl 和 limits,不触碰 $ORACLE_HOME - 真正把数据库软件拷进
/opt/oracle/product/19c/dbhome_1的,是/etc/init.d/oracledb_ORCLCDB-19c这个服务脚本首次启动时调用的setup.sh - 如果手动执行过
runInstaller或用dbca图形界面,反而会导致路径冲突——RPM 机制和图形安装器互不感知,$ORACLE_HOME可能被写两次
用 oracledb_ORCLCDB-19c 服务脚本快速建库的关键参数
这个脚本封装了 dbca 静默建库逻辑,但默认参数太保守,生产环境必须改:
-
ORACLE_SID默认是ORCLCDB,想改就得先改/etc/init.d/oracledb_ORCLCDB-19c里的ORACLE_SID变量,再重载服务(别指望靠环境变量覆盖) - 字符集默认
AL32UTF8没问题,但MEMORY_TARGET默认仅 2G,内存 >16G 的机器建议在脚本里加-initParams memory_target=6G - 如果要禁用 CDB 架构(即传统单租户),必须传
-createAsContainerDatabase false,否则即使dbca -silent -createDatabase命令里写了,RPM 脚本也会忽略 - 日志路径固定在
$ORACLE_BASE/cfgtoollogs/dbca,但脚本不会自动创建父目录;如果$ORACLE_BASE下没有cfgtoollogs,服务启动直接退出,错误只写在systemctl status oracledb_ORCLCDB-19c的 stderr 里
建库成功后监听没起来?检查 listener.ora 的两个硬编码路径
oracledb_ORCLCDB-19c 启动后,lsnrctl status 显示 “TNS-12541: TNS:no listener” 很常见,根源在生成的 $ORACLE_HOME/network/admin/listener.ora:
-
ADR_BASE被硬写成/u01/app/oracle,但 RPM 安装实际用的是/opt/oracle,导致监听日志写入失败,监听器进程秒退 -
HOST值默认填的是localhost,而不是主机真实 hostname,客户端连tnsnames.ora里配的 IP 时会解析失败,报ORA-12170: TNS:Connect timeout occurred - 解决方法不是手动改
listener.ora,而是删掉它,然后执行netca -silent -responseFile /etc/sysconfig/oracle-database-19c.conf,这个响应文件里的路径和主机名才是 RPM 认证过的
Oracle 19c RPM 部署真正的复杂点不在安装命令本身,而在于它把“软件分发”“系统配置”“数据库初始化”三件事拆成三个独立阶段,且每个阶段的日志分散在不同位置:/var/log/oracle-database-19c.log、$ORACLE_BASE/cfgtoollogs/、journalctl -u oracledb_ORCLCDB-19c —— 漏看任何一个,问题就卡死在那里。










