You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS虚拟机上Oracle XE 21c Listener无法启动求助

Oracle XE 21c Listener启动错误排查与解决思路

问题现象

执行lsnrctl start时触发以下错误:

[root@192 ~]# sudo /opt/oracle/product/21c/dbhomeXE/bin/lsnrctl start

LSNRCTL for Linux: Version 21.0.0.0.0 - Production on 04-AUG-2022 15:47:50

Copyright (c) 1991, 2021, Oracle.  All rights reserved.

Message 1070 not found; No message file for product=network, facility=TNSTNS-12545: Message 12545 not found; No message file for product=network, facility=TNS
 TNS-12560: Message 12560 not found; No message file for product=network, facility=TNS
  TNS-00515: Message 515 not found; No message file for product=network, facility=TNS
   Linux Error: 2: No such file or directory

已配置ORACLE相关环境变量、TNS_ADMIN及LD_LIBRARY_PATH,修改listener.ora和tnsnames.ora的HOST为0.0.0.0,oracle-xe-21c服务显示已运行,但问题仍未解决。

环境变量配置

[root@192 ~]# env
LC_PAPER=es_UY.UTF-8
XDG_SESSION_ID=14
LC_ADDRESS=es_UY.UTF-8
HOSTNAME=192.168.50.253
LC_MONETARY=es_UY.UTF-8
SELINUX_ROLE_REQUESTED=
TERM=xterm-256color
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.122.1 55502 22
SELINUX_USE_CURRENT_RANGE=
LC_NUMERIC=es_UY.UTF-8
SSH_TTY=/dev/pts/1
USER=root
LD_LIBRARY_PATH=/opt/oracle/product/21c/dbhomeXE/lib
LS_COLORS=rs=0:di=38;5;27:ln=38;5;51:mh=44;38;5;15:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=05;48;5;232;38;5;15:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;34:*.tar=38;5;9:*.tgz=38;5;9:*.arc=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lha=38;5;9:*.lz4=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.tzo=38;5;9:*.t7z=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.Z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lrz=38;5;9:*.lz=38;5;9:*.lzo=38;5;9:*.xz=38;5;9:*.bz2=38;5;9:*.bz=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38;5;9:*.sar=38;5;9:*.rar=38;5;9:*.alz=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.cab=38;5;9:*.jpg=38;5;13:*.jpeg=38;5;13:*.gif=38;5;13:*.bmp=38;5;13:*.pbm=38;5;13:*.pgm=38;5;13:*.ppm=38;5;13:*.tga=38;5;13:*.xbm=38;5;13:*.xpm=38;5;13:*.tif=38;5;13:*.tiff=38;5;13:*.png=38;5;13:*.svg=38;5;13:*.svgz=38;5;13:*.mng=38;5;13:*.pcx=38;5;13:*.mov=38;5;13:*.mpg=38;5;13:*.mpeg=38;5;13:*.m2v=38;5;13:*.mkv=38;5;13:*.webm=38;5;13:*.ogm=38;5;13:*.mp4=38;5;13:*.m4v=38;5;13:*.mp4v=38;5;13:*.vob=38;5;13:*.qt=38;5;13:*.nuv=38;5;13:*.wmv=38;5;13:*.asf=38;5;13:*.rm=38;5;13:*.rmvb=38;5;13:*.flc=38;5;13:*.avi=38;5;13:*.fli=38;5;13:*.flv=38;5;13:*.gl=38;5;13:*.dl=38;5;13:*.xcf=38;5;13:*.xwd=38;5;13:*.yuv=38;5;13:*.cgm=38;5;13:*.emf=38;5;13:*.axv=38;5;13:*.anx=38;5;13:*.ogv=38;5;13:*.ogx=38;5;13:*.aac=38;5;45:*.au=38;5;45:*.flac=38;5;45:*.mid=38;5;45:*.midi=38;5;45:*.mka=38;5;45:*.mp3=38;5;45:*.mpc=38;5;45:*.ogg=38;5;45:*.ra=38;5;45:*.wav=38;5;45:*.axa=38;5;45:*.oga=38;5;45:*.spx=38;5;45:*.xspf=38;5;45:
LC_TELEPHONE=es_UY.UTF-8
ORACLE_SID=XE
ORACLE_BASE=/opt/oracle
TNS_ADMIN=/opt/oracle/homes/OraDBHome21cXE/network/admin
MAIL=/var/spool/mail/root
PATH=/opt/oracle/product/21c/dbhomeXE/bin:/opt/oracle/product/21c/dbhomeXE/bin:/opt/oracle/product/21c/dbhomeXE/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin
LC_IDENTIFICATION=es_UY.UTF-8
PWD=/root
LANG=en_US.UTF-8
LC_MEASUREMENT=es_UY.UTF-8
SELINUX_LEVEL_REQUESTED=
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
SSH_CONNECTION=192.168.122.1 55502 192.168.50.253 22
LESSOPEN=||/usr/bin/lesspipe.sh %s
XDG_RUNTIME_DIR=/run/user/0
ORACLE_HOME=/opt/oracle/product/21c/dbhomeXE
LC_TIME=es_UY.UTF-8
LC_NAME=es_UY.UTF-8
_=/usr/bin/env

监听配置文件

listener.ora

[root@192 ~]# cat /opt/oracle/homes/OraDBHome21cXE/network/admin/listener.ora
# listener.ora Network Configuration File: /opt/oracle/homes/OraDBHome21cXE/network/admin/listener.ora
# Generated by Oracle configuration tools.
# OLD IP = 10.0.2.15

DEFAULT_SERVICE_LISTENER = XE

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

tnsnames.ora

[root@192 ~]# cat /opt/oracle/homes/OraDBHome21cXE/network/admin/tnsnames.ora 
# tnsnames.ora Network Configuration File: /opt/oracle/homes/OraDBHome21cXE/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

LISTENER_XE =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))

服务状态

[root@192 ~]# systemctl -l status oracle-xe-21c
● oracle-xe-21c.service - SYSV: This script is responsible for taking care of configuring the RPM Oracle XE Database and its associated services.
   Loaded: loaded (/etc/rc.d/init.d/oracle-xe-21c; bad; vendor preset: disabled)
   Active: active (exited) since jue 2022-08-04 14:53:57 -03; 59min ago
     Docs: man:systemd-sysv-generator(8)
  Process: 5588 ExecStop=/etc/rc.d/init.d/oracle-xe-21c stop (code=exited, status=1/FAILURE)
  Process: 6027 ExecStart=/etc/rc.d/init.d/oracle-xe-21c start (code=exited, status=0/SUCCESS)

ago 04 14:53:57 192.168.50.253 systemd[1]: Starting SYSV: This script is responsible for taking care of configuring the RPM Oracle XE Database and its associated services....
ago 04 14:53:57 192.168.50.253 oracle-xe-21c[6027]: The Oracle Database instance XE is already started.
ago 04 14:53:57 192.168.50.253 systemd[1]: Started SYSV: This script is responsible for taking care of configuring the RPM Oracle XE Database and its associated services..

解决思路

1. 验证消息文件完整性

错误提示No message file for product=network,说明lsnrctl无法找到对应消息文件。检查Oracle消息文件目录是否存在且完整:

ls -l $ORACLE_HOME/network/mesg

若目录缺失或文件不完整,需重新安装Oracle XE 21c,或从完整安装包中提取对应文件补充。

2. 使用oracle用户执行命令

Oracle官方建议用oracle用户管理监听和数据库服务,避免root用户权限冲突:

su - oracle
lsnrctl start

若切换用户后环境变量丢失,需在~/.bash_profile中配置ORACLE相关环境变量。

3. 对齐TNS_ADMIN路径

确认TNS_ADMIN指向的目录与$ORACLE_HOME/network/admin一致:

ls -l $ORACLE_HOME/network/admin
ls -l $TNS_ADMIN

Oracle XE 21c默认配置文件路径为$ORACLE_HOME/network/admin,若TNS_ADMIN指向其他路径,修改为默认路径后重试。

4. 清理异常监听进程

若监听进程残留异常,先清理再重启:

# 查找并杀死监听进程
ps -ef | grep tnslsnr
kill -9 <监听进程PID>

# 重启监听
lsnrctl start

5. 检查SELinux限制

SELinux可能阻止监听程序访问必要文件,临时关闭测试:

setenforce 0
lsnrctl start

若能正常启动,需配置SELinux规则允许Oracle监听运行,或设置SELinux为宽容模式。

6. 验证主机名解析

确认系统主机名可正确解析:

hostname -i

若返回IP不符合预期,修改/etc/hosts添加主机名与IP的映射关系。


内容的提问来源于stack exchange,提问作者F. Carratto

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 08:15:36