Oracle 23c Free Edition 安装是基于RPM的一键式部署,需满足FQDN校验(/etc/hostname与/etc/hosts配置完整域名)、GPG密钥就位、密码符合复杂度要求(≥8位,含大小写字母和数字),默认服务名为FREEPDB1,监听端口为1521,所有操作须在oracle用户下并正确设置ORACLE_HOME与ORACLE_SID。Oracle 23c Free Edition 的安装不是「配置一堆参数再编译」的过程,而是基于 RPM 的一键式部署——只要系统满足最低要求、网络通、GPG 密钥就位,5 分钟内就能跑起一个带 FREEPDB1 的可插拔数据库。
必须先配好 /etc/hosts 和主机名
oracle 安装脚本会校验 fqdn(完整域名),不满足直接报错或静默失败。常见现象是 /etc/init.d/oracle-free-23c configure 卡住、监听器启动后 lsnrctl status 显示无服务、sql*plus 连接报 ora-12545。
-
/etc/hostname必须是形如ol8-23.localdomain的完整域名,不能只是ol8-23 -
/etc/hosts中需包含对应条目:127.0.0.1 ol8-23.localdomain ol8-23(IP 可用实际网卡 IP 替代,但 localhost 行必须存在) - 改完执行
hostname -f应能输出完整域名,否则重启systemd-hostnamed或直接 reboot
dnf install 失败常因 GPG 密钥缺失或仓库未启用
错误信息如 Curl error (37): Couldn't read a file:// file 或 GPG key retrieval failed,本质是 yum.oracle.com 的签名密钥没导入或 repo 配置未生效。
- 手动导入密钥:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle - 确认仓库启用:
dnf repolist | grep -i oracle,若无输出,需创建/etc/yum.repos.d/public-yum-ol8.repo并启用ol8_baseos_latest和ol8_appstream - 预安装包
oracle-database-preinstall-23c必须用dnf install(非localinstall),它依赖在线仓库拉取compat-openssl10等组件
/etc/init.d/oracle-free-23c configure 交互式密码输入有硬性规则
脚本会拒绝弱口令并退出,不提示具体哪条不满足,只显示“password does not meet requirements”。这是最容易卡住的环节。
- 必须 ≥8 字符,含至少 1 个大写、1 个小写、1 个数字(标点符号非必需,但加了更稳)
- 不能包含用户名(如
sys、FREE)、不能是常见单词(oracle、password会被拒) - 若想跳过交互,可提前设环境变量:
export DB_PASSWORD='MyPass123',再运行configure;但注意该密码将同时用于SYS、SYSTEM、PDBADMIN
连接串和服务名别记混:默认是 FREEPDB1,不是 FREE
安装完成后,日志里写的 VM-130-23-tencentos:1539/FREEPDB1 是标准连接串,但很多人误用 FREE(CDB 名)或 ORCLPDB1(旧版命名习惯)导致连不上。
- 监听端口固定为
1521(不是 1539,那是文档示例里的虚拟机端口映射值) - 服务名查法:
sqlplus / as sysdba→SHOW CON_NAME和SELECT name FROM v$pdbs; - 本地连接推荐用 Easy Connect:
sqlplus system/MyPass123@localhost:1521/FREEPDB1
oracle 用户所有,/opt/oracle 下的 oradata、diag、cfgtoollogs 目录不可被 root 直接读写;改密码、建用户等操作必须切换到 oracle 用户,且 ORACLE_HOME 和 ORACLE_SID 环境变量必须正确设置——这点在非交互式 shell(如 cron、systemd service)里尤其容易出错。











