温馨提示×

Debian lsnrctl如何监听

小樊
43
2026-08-21 05:44:50
栏目: 智能运维

Debian 上,lsnrctlOracle Database 的监听器管理工具,属于 Oracle Instant Client 或完整 Oracle 安装 的一部分,并不是 Debian 自带软件。
下面按常见场景说明如何在 Debian 上让 lsnrctl 监听数据库。


一、前提条件

  1. 已安装 Oracle Database(或 Oracle 客户端)
    • lsnrctl 位于:
      $ORACLE_HOME/bin/lsnrctl
      
  2. 环境变量已设置
    export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
    export PATH=$ORACLE_HOME/bin:$PATH
    export ORACLE_SID=orcl
    

二、配置监听器(listener.ora)

1️⃣ 找到配置文件

vi $ORACLE_HOME/network/admin/listener.ora

2️⃣ 最小可用配置示例

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

✅ 表示监听 所有网卡、1521 端口

生产环境建议:

HOST = your_hostname_or_ip

三、启动监听

lsnrctl start

成功示例:

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
The listener supports no services

四、注册数据库到监听

方式一:自动注册(推荐)

在数据库内执行:

ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))';
ALTER SYSTEM REGISTER;

查看:

lsnrctl status

应看到:

Services Summary...
Service "orcl" has 1 instance(s).

方式二:静态注册(listener.ora)

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
      (SID_NAME = orcl)
    )
  )

然后:

lsnrctl reload

五、常见检查命令

lsnrctl status
lsnrctl services
netstat -tulnp | grep 1521

六、Debian 常见问题

❌ 命令找不到

bash: lsnrctl: command not found

✅ 解决:

source ~/.bashrc
# 或
. /u01/app/oracle/product/19.3.0/dbhome_1/bin/lsnrctl

❌ 监听启动但无法连接

  • 防火墙未放行 1521
  • HOST 配置错误
  • 数据库未启动

七、总结流程

安装 Oracle
→ 配置 listener.ora
→ lsnrctl start
→ 数据库注册监听
→ lsnrctl status

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

  • ✅ Oracle 版本(11g / 12c / 19c / 21c)
  • ✅ Debian 版本
  • ✅ 是 本地监听 还是 远程连接

我可以给你完全针对你环境的配置示例

0