温馨提示×

ubuntu lsnrctl怎样加监听

小樊
38
2026-10-17 01:15:04
栏目: 智能运维

在 Ubuntu(其实是 Oracle 数据库环境,不是 Ubuntu 特有的命令)里,lsnrctl 是用来管理 Oracle Listener(监听) 的工具。

下面按常见场景说明怎么“加监听”。


一、理解:lsnrctl 本身不能直接“新建”监听

lsnrctl 只能:

  • 启动 / 停止 / 查看监听
  • 不能创建监听

监听是在 listener.ora 文件里配置的


二、配置文件位置

一般在:

$ORACLE_HOME/network/admin/listener.ora

查看环境变量:

echo $ORACLE_HOME

三、添加一个新监听(示例)

1️⃣ 编辑 listener.ora

vi $ORACLE_HOME/network/admin/listener.ora

2️⃣ 添加监听配置(示例)

假设新增一个监听名叫 LISTENER2,端口 1522

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

如果是原监听加端口(不改名):

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

四、使用 lsnrctl 启动新监听

lsnrctl start LISTENER2

查看状态:

lsnrctl status LISTENER2

五、让监听识别数据库(可选)

在 listener.ora 中加:

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

六、开机自动启动(Ubuntu)

Ubuntu 不会自动起监听,可:

lsnrctl start

写进:

/etc/rc.local

或用 systemd(高级)


七、常见问题

✅ 端口被占用

netstat -tunlp | grep 1522

✅ 权限问题

whoami   # 必须是 oracle 用户

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

  • Oracle 版本(11g / 12c / 19c)
  • 是加端口还是加新监听名
  • 是否用 静态注册

我可以给你精确配置。

0 踩