ubuntu 中 lsnrctl 日志位置与查看方法
一、常见日志路径
经典路径(旧版本或传统配置):$oracle_home/network/log/listener.log。这是最常见的监听器日志位置,直接查看该文件即可。若设置了 oracle_home,可用命令快速定位:echo $oracle_home 并拼接 /network/log/listener.log。
诊断目录路径(11g 及以上使用 adr,更常见):$diag/tnslsnr/lsnrctl status 输出的 “log files:” 字段确认实际路径;若未设置 diag 环境变量,可用 echo $diag 查看,或到 /u01/app/oracle/diag/tnslsnr/ 下按主机名与监听器名查找。
二、快速定位与查看
确认 oracle 环境变量(建议以 oracle 用户执行):echo $oracle_home、echo $diag。这有助于判断使用哪类路径。
查看监听状态并定位日志文件:lsnrctl status。在输出的 “log files:” 行可直接看到完整日志路径,复制后用 less 或 tail 查看。
实时查看日志:tail -f /path/to/listener.log(或 adr 路径下的 alert 日志)。如需过滤关键字,可配合 grep 使用。
权限提示:若提示无权限,切换到 oracle 用户或使用 sudo 提升权限后再查看。
三、实用示例
示例 1(经典路径):tail -f $oracle_home/network/log/listener.log
示例 2(adr 路径):tail -f $diag/tnslsnr/$(hostname)/listener/alert/listener.log
示例 3(从状态输出复制路径):lsnrctl status → 复制 “log files:” 后的路径 → less <copied_path>