Oracle 18c XE 仅支持 RHEL 7/CentOS 7(内核≥3.10、glibc≥2.17)、x86_64 架构、内存≥1GB、根分区≥6.5GB,且需关闭 SELinux、安装 libnsl、配置 oracle 用户 shell 为 /bin/bash、确保 /dev/shm≥4G 并正确设置权限。
安装 Oracle 18c XE RPM 包前必须确认的系统条件
oracle 18c xe 的 oracle-database-xe-18c-1.0-1.x86_64.rpm 不支持 centos 8 / rhel 8 及以上,只兼容 rhel 7/centos 7(内核 ≥ 3.10,glibc ≥ 2.17)。装错系统会卡在 preinstall 检查或直接报 failed dependencies。
- 运行
cat /etc/redhat-release确认是 CentOS 7.x 或 RHEL 7.x - 执行
getconf LONG_BIT必须输出64(仅支持 x86_64) -
free -h查内存:最低要求 1GB,推荐 ≥ 2GB;df -h /确保根分区 ≥ 6.5GB 可用空间 - 关闭 SELinux:临时用
setenforce 0,永久改/etc/selinux/config中SELINUX=disabled
rpm -ivh 安装后自动执行失败的常见原因
RPM 安装本身很快,但后续自动触发的 oracle-xe-18c-configure 脚本常卡住或报错,本质是环境没预置好,不是安装包问题。
- 未安装
libnsl:CentOS 7.6+ 默认不带,必须手动yum install -y libnsl - 未配置
oracle用户 shell:检查grep oracle /etc/passwd,确保其 shell 是/bin/bash(不是/sbin/nologin) - 防火墙拦截:
systemctl stop firewalld或放行端口,否则配置脚本连不上本地监听器 - 如果提示
ERROR: unable to start Oracle instance,大概率是/dev/shm太小——执行mount -o remount,size=4G /dev/shm并写入/etc/fstab
修改 Oracle 18c XE 默认端口(EM Express 和监听端口)
安装后默认 HTTP 端口是 5500(EM Express),数据库监听端口是 1521。改端口不能只改配置文件,必须进 SQL*Plus 用命令生效。
- 先以
oracle用户登录:sudo -u oracle sqlplus / as sysdba - 改 EM Express 端口(比如改成
8080):EXEC DBMS_XDB.SETHTTPPORT(8080); - 改数据库监听端口(需重启监听):编辑
$ORACLE_HOME/network/admin/listener.ora,改PORT = 1521为新值,再运行lsnrctl reload - 注意:EM Express 端口修改后,访问地址变成
https://your-host:8080/em,且必须用 HTTPS(HTTP 会重定向失败)
启动失败时快速定位的关键日志和命令
执行 systemctl start oracle-xe 报错,别急着重装,先看三处输出。
- 服务状态详情:
systemctl status oracle-xe -l(加-l才显示完整错误行) - 数据库告警日志:
tail -20 $ORACLE_BASE/diag/rdbms/xe/XE/trace/alert_XE.log,常见报错如ORA-00845: MEMORY_TARGET not supported on this system(/dev/shm 不够)、ORA-01078: failure in processing system parameters(init.ora 语法错) - 监听器日志:
tail -10 $ORACLE_HOME/network/log/listener.log,确认是否 bind 到新端口成功 - 如果
sqlplus / as sysdba连不上,先试ps -ef | grep pmon看ora_pmon_XE进程是否存在
端口和权限问题占实际部署失败的八成以上,反复检查 /dev/shm 大小、oracle 用户家目录权限(必须是 755)、以及 $ORACLE_HOME 下所有子目录属主是否都是 oracle:oinstall —— 这些地方改错一个,后面全白忙。

















