一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

如何在Oracle Linux 8上安装Oracle 21c

时间:2026-08-21 09:44:49 编辑:袖梨 来源:一聚教程网

Oracle Linux 8安装Oracle 21c必须严格按顺序执行:先dnf install oracle-database-preinstall-21c(自动创建oracle用户、设组、配limits和sysctl),再安装主RPM包;root运行/etc/init.d/oracledb_ORCLCDB-21c configure初始化监听与数据库;SELinux和firewalld须彻底禁用;sqlplus需alias rlwrap支持方向键。

oracle-database-ee-21c 在 Oracle Linux 8 上不是直接 yum install 就能装完的,必须分步处理预依赖、用户环境、内核参数和初始化脚本,否则 /etc/init.d/oracledb_ORCLCDB-21c configure 会失败或监听起不来。

先装 oracle-database-preinstall-21c 再装主包

跳过这一步,oracle 用户不会被自动创建,/u01 目录权限、sysctl 参数、limits.conf 都不会生效,后续所有操作都会卡在权限或资源限制上。

  1. dnf install -y oracle-database-preinstall-21c 必须最先执行(它会建 oracle 用户、设组、改 /etc/security/limits.d/oracle-database-preinstall-21c.conf
  2. 再用 dnf install -y oracle-database-ee-21c-1.0-1.ol8.x86_64.rpm(RPM 文件需提前从 Oracle 正式下载,不能靠 yum repo 自动拉取)
  3. 别用 dnf localinstall —— 它不保证依赖顺序,容易漏掉 libnslcompat-libstdc++ 等隐式依赖

setenforce 0 和 firewalld 关闭要彻底

SELinux 半开状态(permissive)会导致 sqlplus 连接时出现 ORA-12547: TNS:lost contactfirewalld 没停干净会让 lsnrctl start 成功但外部连不上 1521 端口。

  1. setenforce 0 是临时关闭,必须同步改 /etc/selinux/configSELINUX=disabled,否则重启后失效
  2. systemctl disable --now firewalld.service 比单独 stop 更可靠,避免下次 reboot 自启
  3. 验证:运行 sestatus 应输出 disabledsystemctl is-active firewalld 应输出 inactive

监听和数据库初始化必须用 root 执行脚本

oracle 用户没权限写 /etc/init.d/ 下的服务脚本,也不能直接调用 oradimdbca 创建实例——这些都得由 root 走封装好的初始化流程。

  1. 安装完 RPM 后,直接运行:/etc/init.d/oracledb_ORCLCDB-21c configure
  2. 该脚本会:
    1. oracle 用户身份调用 dbca -silent -createDatabase
    2. 生成监听配置 $ORACLE_HOME/network/admin/listener.ora
    3. 注册 systemd service(oracledb_ORCLCDB-21c)并启用
  3. 如果中途失败,删掉 /opt/oracle/oradata/ORCLCDB$ORACLE_HOME/network/admin/listener.ora 再重试,不要手动跑 dbca

sqlplus 方向键失效?装 rlwrap 并包装 alias

默认 sqlplus 不支持上下箭头翻历史命令,这不是 bug,是 Oracle RPM 包没打包 readline 支持。

  1. 先装:dnf install -y rlwrap(注意不是 epel 源里的旧版,要用 OL8 AppStream 仓库的)
  2. 然后在 /home/oracle/.bash_profile 里加:alias sqlplus='rlwrap sqlplus'
  3. 别用 which sqlplus 路径硬写——RPM 安装后 sqlplus/usr/bin/sqlplus,但 alias 机制更稳定
  4. 重新登录 oracle 用户或执行 source ~/.bash_profile 生效
Oracle Linux 8 上装 21c 最容易被忽略的点是:预安装包必须先于主 RPM 执行,且 configure 脚本必须由 root 运行——这两步一旦顺序错或权限错,后续所有数据库启动、监听、连接问题几乎都源于此。

热门栏目