温馨提示×

debian lsnrctl监听如何添加

小樊
44
2026-07-22 09:48:00
栏目: 智能运维

在 Debian(以及大多数 Linux 发行版)中,lsnrctlOracle Database 的监听控制工具,不是系统自带命令。如果你已经安装了 Oracle Database(通常是 Oracle 软件,而不是通过 apt 安装的),可以按下面步骤添加/配置监听。


一、确认环境

1. 确认 lsnrctl 是否可用

which lsnrctl

lsnrctl status

如果提示找不到命令,说明:

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

2. 设置 Oracle 环境变量

通常:

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

(路径根据你的实际安装情况调整)


二、添加监听(推荐方式:netca)

方法 1:使用 netca(图形界面)

netca
  • 选择 Listener Configuration
  • 添加新监听
  • 设置监听名、端口(默认 1521)
  • 完成即可

需要 X11 或 X forwarding


三、手动添加监听(最常用)

1. 编辑 listener.ora

路径一般在:

$ORACLE_HOME/network/admin/listener.ora

示例配置(添加一个监听):

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

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

如果是 Oracle 12c+ 多租户,通常不需要 SID_LIST,PDB 会自动注册。


2. 启动监听

lsnrctl start

如果监听名不是默认的 LISTENER

lsnrctl start LISTENER

3. 查看监听状态

lsnrctl status

四、添加多个监听(示例)

LISTENER2 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1522))
    )
  )

启动:

lsnrctl start LISTENER2

五、常见问题

1. Debian 上监听启动失败

可能原因:

  • 主机名无法解析

    hostname
    cat /etc/hosts
    

    确保有:

    127.0.0.1   localhost
    127.0.1.1   debian-hostname
    
  • 端口被占用

ss -lntp | grep 1521

2. 数据库未自动注册

在数据库内执行:

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

六、总结

✅ 添加监听 = 编辑 listener.ora + lsnrctl start
✅ Debian 本身不提供 lsnrctl,必须安装 Oracle
✅ 推荐先确认 ORACLE_HOMEPATH


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

  • Oracle 版本(11g / 12c / 19c)
  • 是否使用 CDB/PDB
  • 报错信息

我可以给你一份完全贴合你环境的配置

0