温馨提示×

ubuntu lsnrctl怎么用

小樊
37
2026-10-08 06:44:29
栏目: 智能运维

lsnrctl 是 Oracle 数据库监听程序(Listener) 的管理工具,不是 Ubuntu 自带的命令,而是 Oracle 数据库软件(通常是 Oracle Database 或 Oracle Client)安装后提供的。

下面按常见使用场景给你讲清楚在 Ubuntu 上怎么用。


一、前提条件(很重要)

你必须在 Ubuntu 上安装了 Oracle 数据库(或 Oracle Client),并且:

  1. 使用 oracle 用户(或安装 Oracle 的用户)
  2. 已配置好环境变量
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl

⚠️ Ubuntu 官方仓库没有 lsnrctl,只能通过 Oracle 安装获得


二、基本用法

1️⃣ 查看监听状态

lsnrctl status

输出示例:

Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
Services Summary...

2️⃣ 启动监听

lsnrctl start

如果监听名不是默认的 LISTENER:

lsnrctl start LISTENER_NAME

3️⃣ 停止监听

lsnrctl stop

4️⃣ 重新加载监听配置(不中断连接)

lsnrctl reload

常用于修改 listener.ora 后


三、进入交互模式(推荐新手)

lsnrctl

进入后可用:

LSNRCTL> status
LSNRCTL> start
LSNRCTL> stop
LSNRCTL> exit

四、常见配置文件位置

$ORACLE_HOME/network/admin/listener.ora
$ORACLE_HOME/network/admin/tnsnames.ora

示例 listener.ora:

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

五、Ubuntu 常见问题

❌ command not found: lsnrctl

原因:

  • 没装 Oracle
  • PATH 没配置

解决:

which lsnrctl
echo $ORACLE_HOME

❌ 监听启动但无法连接

检查:

  • 防火墙
sudo ufw status
  • 监听地址是否 0.0.0.0 或实际 IP
  • tnsnames.ora 是否正确

六、和 Ubuntu 服务集成(可选)

Oracle 不推荐用 systemd 管监听,但你可以写脚本。


七、总结

功能 命令
查看状态 lsnrctl status
启动 lsnrctl start
停止 lsnrctl stop
重载 lsnrctl reload

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

  • ✅ Ubuntu 版本
  • ✅ Oracle 版本(11g / 19c / 21c)
  • ✅ 是本地还是远程连接

我可以给你针对性的完整配置示例。

0 踩