温馨提示×

debian lsnrctl如何加监听

小樊
52
2026-09-24 22:52:35
栏目: 智能运维

在 Debian 上(通常是安装了 Oracle 数据库 或 Oracle Client 后才会有 lsnrctl),添加监听(listener)一般是通过修改 listener.ora 文件,然后用 lsnrctl 启动/重载。

下面按步骤说明。


一、确认环境

which lsnrctl

如果没有命令,说明没装 Oracle 软件(Database 或 Client)。

通常路径类似:

$ORACLE_HOME/bin/lsnrctl

确保已设置:

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

二、找到 listener.ora 文件

一般位置:

$ORACLE_HOME/network/admin/listener.ora

或者:

$ORACLE_BASE/network/admin/listener.ora

三、添加监听(示例)

1️⃣ 新增一个监听(如 LISTENER2)

编辑 listener.ora:

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

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

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

说明:

  • LISTENER2:监听名(可自定义)
  • HOST:服务器 IP 或 hostname
  • PORT:监听端口
  • SID_LIST_*:非必须,但静态注册时需要

四、启动新监听

lsnrctl start LISTENER2

查看状态:

lsnrctl status LISTENER2

五、重载已有监听(不改名)

lsnrctl reload LISTENER

六、开机自启(Debian)

Debian 一般 不会 自动起监听,可:

方法 1:rc.local(简单)

su - oracle -c "$ORACLE_HOME/bin/lsnrctl start LISTENER2"

方法 2:systemd(推荐)

创建:

/etc/systemd/system/oracle-listener.service
[Unit]
Description=Oracle Listener
After=network.target

[Service]
User=oracle
Environment="ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1"
ExecStart=/u01/app/oracle/product/19.3.0/dbhome_1/bin/lsnrctl start LISTENER2
ExecStop=/u01/app/oracle/product/19.3.0/dbhome_1/bin/lsnrctl stop LISTENER2

[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable oracle-listener

七、常见问题

✅ 端口被占用

netstat -tunlp | grep 1522

✅ 主机名解析失败
在 /etc/hosts 中确认 IP 和 HOST 对应

✅ 监听起了但连不上

  • 防火墙
  • 数据库未注册(静态 SID_LIST)

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

  • Oracle 版本
  • 是否用 ASM / RAC
  • 想加的是 新端口监听 还是 新数据库

我可以直接帮你写一份可用的 listener.ora。

0 踩