在 Ubuntu 上,lsnrctl 是 Oracle 数据库监听器(Listener) 的管理工具,不是系统默认安装的命令。如果你已经安装了 Oracle 数据库(通常是 Oracle Database 或 Oracle Instant Client + 数据库组件),可以按下面的步骤启动。
which lsnrctl
如果返回路径(如 /u01/app/oracle/product/19.0.0/dbhome_1/bin/lsnrctl),说明已安装。
如果没有,需要先安装 Oracle Database 或 Oracle Client。
在 Ubuntu 上,Oracle 通常安装在 oracle 用户下:
sudo su - oracle
⚠️ 不要用 root 直接运行 lsnrctl,否则可能权限或环境变量错误。
确保以下环境变量已设置(通常在 .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
command not foundTNS-12545 / Address already in uselistener.oralibaio1、unixodbc)可以用:
sqlpluslsnrctl(那是服务端工具)如果你愿意,可以告诉我:
我可以一步步帮你排查。