温馨提示×

怎样用ubuntu lsnrctl

小樊
41
2026-10-14 04:00:36
栏目: 智能运维

在 Ubuntu 上,lsnrctl 是 Oracle Database Listener 的管理工具,并不是系统自带命令,需要先安装并配置 Oracle 数据库(或 Oracle Instant Client + 监听组件)。下面按常见情况说明。


一、确认是否安装了 Oracle

lsnrctl 通常位于:

$ORACLE_HOME/bin/lsnrctl

例如:

/u01/app/oracle/product/19.3.0/dbhome_1/bin/lsnrctl

检查是否存在:

which lsnrctl

如果没有,说明 Oracle 未安装或未配置环境变量。


二、配置环境变量(关键)

在使用 lsnrctl 前,需要设置:

export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl

(路径按你的实际安装位置修改)

可写入:

~/.bashrc

然后:

source ~/.bashrc

三、常用 lsnrctl 命令

1️⃣ 启动监听

lsnrctl start

2️⃣ 停止监听

lsnrctl stop

3️⃣ 查看监听状态

lsnrctl status

4️⃣ 重新加载监听配置

lsnrctl reload

5️⃣ 查看监听服务名

lsnrctl services

四、监听配置文件位置

监听配置一般在:

$ORACLE_HOME/network/admin/listener.ora

示例:

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

修改后执行:

lsnrctl reload

五、Ubuntu 常见问题

❌ 1. 命令找不到

lsnrctl: command not found

✅ 解决:确认 Oracle 已安装,并正确设置 ORACLE_HOME 和 PATH

❌ 2. 权限问题

TNS-01190: The user is not authorized

✅ 解决:使用安装 Oracle 的用户(通常是 oracle):

su - oracle

❌ 3. 端口被占用

TNS-12542: TNS:address already in use

✅ 解决:

netstat -tunlp | grep 1521

修改 listener.ora 端口或释放端口


六、如果你只是“想连 Oracle”

如果你 只是客户端,不需要 lsnrctl,只需要:

  • sqlplus
  • tnsnames.ora

lsnrctl 只在 数据库服务器端 使用。


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

  • Ubuntu 版本
  • Oracle 版本(11g / 12c / 19c)
  • 是服务器还是客户端

我可以给你 一步步命令级指导。

0 踩