温馨提示×

debian如何测试lsnrctl连通性

小樊
40
2026-07-22 09:50:04
栏目: 智能运维

Debian 上测试 lsnrctl 的连通性,通常是指 Oracle Listener 是否正常运行、是否可连接lsnrctl 是 Oracle 数据库监听器的管理工具,不是 Debian 自带软件,而是 Oracle 客户端或数据库软件的一部分

下面分步说明如何测试。


一、确认 lsnrctl 是否可用

1. 查找 lsnrctl

which lsnrctl

ls $ORACLE_HOME/bin/lsnrctl

常见路径:

/u01/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl

如果找不到,说明:

  • Oracle 未安装
  • 或环境变量未配置

二、配置 Oracle 环境变量(非常重要)

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

(路径和 SID 按实际情况修改)


三、测试 Listener 是否运行(最常用)

1. 查看 listener 状态

lsnrctl status

✅ 正常示例:

Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
Services Summary...

❌ 常见错误:

  • TNS-12541: TNS:no listener
  • TNS-12560: TNS:protocol adapter error

2. 启动 listener(如果没启动)

lsnrctl start

停止:

lsnrctl stop

四、测试 Listener 端口连通性(网络层)

1. 测试 1521 端口是否监听

ss -lntp | grep 1521

netstat -lntp | grep 1521

2. 本机测试端口连通

telnet localhost 1521

nc -vz localhost 1521

✅ 成功:

Connection to localhost 1521 port [tcp/*] succeeded!

五、使用 tnsping 测试 Listener 连通性(推荐)

tnsping ORCL

ORCLtnsnames.ora 中的服务名

✅ 正常:

OK (10 msec)

❌ 常见错误:

  • TNS-12541: no listener
  • TNS-12560
  • TNS-03505: Failed to resolve name

六、通过 SQL*Plus 测试真实连接

sqlplus system/password@localhost:1521/orcl

sqlplus system/password@orcl

✅ 能登录说明 Listener + 数据库都正常


七、常见问题排查

1. Debian 上 Oracle 支持情况

  • Oracle Instant Client:支持
  • Oracle Server:官方不支持 Debian,但可强行安装
  • ❌ 官方推荐:RHEL / Oracle Linux

2. 防火墙问题

iptables -L -n

或(新系统):

nft list ruleset

确保 1521 端口放行。


3. listener.ora 检查

vi $ORACLE_HOME/network/admin/listener.ora

重点检查:

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

八、快速检查清单(总结)

echo $ORACLE_HOME
which lsnrctl
lsnrctl status
nc -vz localhost 1521
tnsping ORCL
sqlplus user/pass@orcl

如果你愿意,可以告诉我:

  • ✅ 是 Oracle Server 还是 Instant Client
  • ✅ Debian 版本
  • ✅ 报错信息

我可以帮你精确分析是哪一层的问题(网络 / listener / tns / 数据库)。

0