在 Ubuntu 上,lsnrctl 是 Oracle Database 的监听控制工具,不是系统自带命令。使用前需要满足两个条件:
ORACLE_HOME 和 PATH)sudo su - oracle
⚠️ 不要用 root 直接启动监听,否则权限会出问题
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
(路径根据你的 Oracle 安装目录调整)
lsnrctl status
lsnrctl start
如果成功,你会看到类似:
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
The command completed successfully
说明:
解决:
which lsnrctl
echo $ORACLE_HOME
通常是 listener.ora 中 HOST 配置错误
检查:
vi $ORACLE_HOME/network/admin/listener.ora
Oracle 一般不推荐 systemd 强制启动,但可手动:
lsnrctl start
sqlplus / as sysdba
SQL> startup
如果你愿意,可以告诉我:
我可以一步步帮你排错。