温馨提示×

ubuntu lsnrctl怎么配置

小樊
50
2026-10-22 21:42:57
栏目: 智能运维

在 Ubuntu 上,lsnrctl 是 Oracle Database Listener 的管理工具,不是 Ubuntu 自带组件,需要先安装并配置 Oracle 数据库(通常是 Oracle Database 或 Oracle Instant Client + Oracle Net)。

下面按常见场景给你一个清晰配置流程。


一、前提条件

  1. 已安装 Oracle Database(或 Oracle 客户端)

    • 服务器版:Oracle Database 11g / 12c / 19c
    • 监听程序由 listener.ora 控制
  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 文件位置

一般在:

$ORACLE_HOME/network/admin/listener.ora

三、最小可用 listener.ora 示例

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(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)
    )
  )

HOST 建议写 IP 或 hostname,不要写 localhost(远程连不上)


四、启动监听(lsnrctl)

lsnrctl start

查看状态:

lsnrctl status

停止:

lsnrctl stop

重新加载(不改端口时推荐):

lsnrctl reload

五、tnsnames.ora(客户端连接用)

位置:

$ORACLE_HOME/network/admin/tnsnames.ora

示例:

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

测试连接:

sqlplus system/password@ORCL

六、Ubuntu 常见问题

1. 端口被防火墙挡住

sudo ufw allow 1521/tcp

2. 监听启动但远程连不上

  • 检查 HOST 是否为真实 IP
  • lsnrctl status 中是否显示 READY

3. 没有 lsnrctl 命令

说明没装 Oracle 或 PATH 没配:

which lsnrctl

七、仅安装客户端也能用 lsnrctl 吗?

✅ 可以(Oracle Client / Instant Client + admin 组件)
❌ 但不能作为数据库监听(只管理监听器)


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

  • Ubuntu 版本
  • Oracle 版本
  • 是 本机连 还是 远程连
  • 是否 已安装 Oracle

我可以直接帮你写一份 可用的 listener.ora + 启动命令。

0 踩