温馨提示×

ubuntu lsnrctl如何使用

小樊
36
2026-08-01 17:58:49
栏目: 智能运维

在 Ubuntu(以及大多数 Linux 发行版)里,lsnrctl 不是系统自带命令,它是 Oracle Database 的监听控制工具,属于 Oracle Instant Client 或完整 Oracle Database 安装 的一部分。

下面分情况说明 如何在 Ubuntu 上使用 lsnrctl


一、确认你是否真的需要 lsnrctl

lsnrctl 用于:

  • 启动 / 停止 Oracle Listener
  • 查看监听状态
  • 管理 Oracle 数据库网络连接

✅ 如果你 没有安装 Oracle Database 或 Oracle Instant Client,那 Ubuntu 默认是 没有这个命令的


二、在 Ubuntu 上安装 lsnrctl

方式 1:安装完整 Oracle Database(最常见)

如果你是要运行 Oracle 数据库:

  1. 安装 Oracle Database(如 19c / 21c)
  2. 配置 Oracle 环境变量
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl

然后验证:

which lsnrctl
lsnrctl

方式 2:仅安装 Oracle Instant Client(无 listener)

⚠️ 注意
Oracle Instant Client 不包含 lsnrctl,只能用于客户端连接,不能启动监听。

如果你只是连接远程 Oracle 数据库,不需要 lsnrctl


三、lsnrctl 常用命令(安装后)

1️⃣ 查看监听状态

lsnrctl status

指定监听名:

lsnrctl status LISTENER

2️⃣ 启动监听

lsnrctl start

或:

lsnrctl start LISTENER

3️⃣ 停止监听

lsnrctl stop

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

lsnrctl reload

5️⃣ 查看监听帮助

lsnrctl help

四、常见错误及解决方法

❌ 1. lsnrctl: command not found

原因:

  • Oracle 未安装
  • ORACLE_HOME/bin 未加入 PATH

✅ 解决:

export ORACLE_HOME=/path/to/oracle
export PATH=$ORACLE_HOME/bin:$PATH

❌ 2. TNS-12541: TNS:no listener

原因:

  • 监听未启动
  • listener.ora 配置错误

✅ 解决:

lsnrctl start

检查配置:

$ORACLE_HOME/network/admin/listener.ora

❌ 3. Ubuntu 上无法安装 Oracle?

Oracle Database 官方 不支持 Ubuntu,但可运行(不推荐生产环境):

  • 使用 Oracle Linux / RHEL / CentOS
  • 或使用 Docker

✅ Docker 示例(推荐):

docker run -d \
  --name oracle \
  -p 1521:1521 \
  container-registry.oracle.com/database/enterprise:19.3.0.0

五、总结

场景 是否有 lsnrctl
仅连接远程 Oracle ❌ 不需要
安装 Oracle Instant Client ❌ 没有
安装 Oracle Database ✅ 有
使用 Docker Oracle ✅ 容器内

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

  • ✅ 你是 连接数据库 还是 搭建数据库
  • ✅ Ubuntu 版本
  • ✅ 是否已有 Oracle 安装路径

我可以给你 精确到命令级别 的指导。

0