温馨提示×

怎样启动ubuntu lsnrctl

小樊
45
2026-10-25 21:36:45
栏目: 智能运维

在 Ubuntu 上,lsnrctl 是 Oracle 数据库监听器(Listener) 的管理工具,不是系统默认安装的命令。如果你已经安装了 Oracle 数据库(通常是 Oracle Database 或 Oracle Instant Client + 数据库组件),可以按下面的步骤启动。


一、确认 lsnrctl 是否已安装

which lsnrctl

如果返回路径(如 /u01/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl),说明已安装。

如果没有,需要先安装 Oracle Database 或 Oracle Client。


二、切换到 Oracle 用户(重要)

在 Ubuntu 上,Oracle 通常安装在 oracle 用户下:

sudo su - oracle

⚠️ 不要用 root 直接运行 lsnrctl,否则可能权限或环境变量错误。


三、设置 Oracle 环境变量

确保以下环境变量已设置(通常在 .bashrc 或 .profile 中):

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

(路径根据你的 Oracle 版本和安装目录调整)

使环境变量生效:

source ~/.bashrc

四、启动监听器

lsnrctl start

如果成功,会看到类似:

TNS-12541: TNS:no listener
...
Listener started successfully

查看监听器状态:

lsnrctl status

五、停止 / 重启监听器(可选)

lsnrctl stop
lsnrctl reload

六、常见问题

1️⃣ 报错:command not found

  • 没安装 Oracle
  • 环境变量没设置
  • 当前不是 oracle 用户

2️⃣ 报错:TNS-12545 / Address already in use

  • 端口(默认 1521)被占用
  • 检查 listener.ora

3️⃣ Ubuntu 上 Oracle 安装注意

  • Ubuntu 不是 Oracle 官方支持系统
  • 通常需要额外依赖(如 libaio1、unixodbc)

七、如果你只是想连 Oracle(不装数据库)

可以用:

  • sqlplus
  • Oracle Instant Client
  • 不需要 lsnrctl(那是服务端工具)

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

  • Oracle 版本(11g / 12c / 19c)
  • 是否已安装
  • 报错信息

我可以一步步帮你排查。

0 踩