温馨提示×

为什么ubuntu没有lsnrctl

小樊
40
2026-10-08 06:45:30
栏目: 智能运维

lsnrctl 并不是 Ubuntu(或 Linux 通用)系统自带的命令,而是 Oracle Database 的专用工具,具体来说是 Oracle Listener Control 工具,用于管理 Oracle 监听程序(Listener)。

为什么 Ubuntu 默认没有 lsnrctl?

  1. 它不是操作系统组件

    • lsnrctl 是 Oracle 数据库软件的一部分
    • Ubuntu 是通用 Linux 发行版,默认不包含任何商业数据库软件
  2. Oracle 不是开源预装软件

    • Ubuntu 默认包含的是:
      • bash、ls、systemctl 等系统命令
      • 开源数据库如 MySQL / PostgreSQL(需手动安装)
    • Oracle Database 需要:
      • 单独下载
      • 手动安装
      • 配置环境变量
  3. 只有安装 Oracle 后才会有

    • 安装路径通常在:
      $ORACLE_HOME/bin/lsnrctl
      
    • 例如:
      /u01/app/oracle/product/19.3.0/dbhome_1/bin/lsnrctl
      

如何获得 lsnrctl

如果你需要使用它:

  1. 安装 Oracle Database(或 Oracle Instant Client + 完整服务端)

    • Oracle Database Express Edition (XE)(免费)
    • Oracle Database Enterprise / Standard
  2. 设置环境变量

    export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
    export PATH=$ORACLE_HOME/bin:$PATH
    
  3. 验证

    which lsnrctl
    lsnrctl status
    

常见误解

  • ❌ “Ubuntu 不适合 Oracle” → 错,Ubuntu 可以装 Oracle(官方也支持)
  • ❌ “lsnrctl 是 Linux 命令” → 错,是 Oracle 命令
  • ✅ netstat / ss 才能查端口监听(系统级)

替代方案(如果你只是想看监听端口)

ss -lntp
netstat -lntp

如果你愿意,可以告诉我你是 想装 Oracle、只是误以为 Ubuntu 该有这个命令,还是 在排查数据库连接问题,我可以更具体地帮你。

0 踩