在Linux系统中,Oracle的监听日志(Listener Log)默认存储在以下位置:
$ORACLE_BASE/diag/tnslsnr/<hostname>/listener/trace/listener.log
环境变量依赖
$ORACLE_BASE
是Oracle的基础目录(如 /u01/app/oracle
)。<hostname>
是服务器的主机名(可通过 hostname
命令查看)。通过监听状态直接定位
执行以下命令可动态获取日志路径:
lsnrctl status
输出中会显示类似以下信息:
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=your_hostname)(PORT=1521)))
The listener supports no services
Log messages written to /u01/app/oracle/diag/tnslsnr/hostname/listener/trace/listener.log
其他相关日志文件
$ORACLE_BASE/diag/tnslsnr/<hostname>/listener/alert/log.xml
listener.log_<timestamp>
。如果监听配置(listener.ora
)中指定了 LOG_DIRECTORY
参数,则日志会存储在自定义路径。检查方法:
cat $ORACLE_HOME/network/admin/listener.ora | grep LOG_DIRECTORY
如果无法访问日志,可能需要切换至Oracle用户:
sudo su - oracle
ls -l $ORACLE_BASE/diag/tnslsnr/$(hostname)/listener/trace/listener.log
Oracle会自动轮转日志。如需手动清理,建议使用 adrci
工具或直接备份后清空文件(需确保监听服务不受影响)。
db-server
):# 查看日志路径
ls /u01/app/oracle/diag/tnslsnr/db-server/listener/trace/
# 实时监控日志
tail -f /u01/app/oracle/diag/tnslsnr/db-server/listener/trace/listener.log
如果仍有疑问,请提供 lsnrctl status
的输出以便进一步分析。