温馨提示×

debian lsnrctl怎样排错

小樊
47
2026-09-18 18:41:55
栏目: 智能运维

在 Debian 上,lsnrctlOracle Database Listener 的管理工具,不是系统自带命令。出现问题时,通常按下面思路排查。


一、基本确认

1. 是否安装了 Oracle 客户端/数据库

which lsnrctl
  • 没有结果 → 未安装或未配置环境变量
  • 有结果 → 继续

2. 环境变量是否正确

echo $ORACLE_HOME
echo $ORACLE_SID
echo $PATH

正常应类似:

export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH

二、常见错误及处理

1. command not found: lsnrctl

原因:未安装或未配置 PATH
解决

source ~/.bash_profile
# 或手动
export ORACLE_HOME=...
export PATH=$ORACLE_HOME/bin:$PATH

2. TNS-12541: TNS:no listener

原因:监听未启动
解决

lsnrctl start

查看状态:

lsnrctl status

3. TNS-12545: Connect failed because target host or object does not exist

原因

  • listener.ora 中 HOST 写错
  • 主机名无法解析

检查

cat $ORACLE_HOME/network/admin/listener.ora

示例:

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )

测试:

ping localhost
hostname

4. TNS-12560: TNS:protocol adapter error

常见原因

  • ORACLE_HOME 不对
  • 用了错误用户(非 oracle)
  • Debian 上缺少 32 位库(老版本 Oracle)

检查

id

应类似:

uid=1001(oracle)

5. Debian 特有依赖问题

老版本 Oracle 在 Debian 上常见缺失库:

ldd $ORACLE_HOME/bin/lsnrctl

缺哪个装哪个,例如:

apt install libaio1

三、日志排查(非常重要)

监听日志位置

$ORACLE_HOME/network/log/listener.log

查看错误:

tail -f $ORACLE_HOME/network/log/listener.log

四、排错步骤总结

  1. which lsnrctl
  2. 检查 ORACLE_HOME
  3. lsnrctl status
  4. listener.ora
  5. listener.log
  6. 确认用户和权限
  7. 检查 Debian 依赖库

如果你愿意,可以把 具体报错信息lsnrctl status 的输出贴出来,我可以帮你精准分析。

0