在 Ubuntu 上,lsnrctl 是 Oracle Database Listener 的管理工具,不是 Ubuntu 自带组件,需要先安装并配置 Oracle 数据库(通常是 Oracle Database 或 Oracle Instant Client + Oracle Net)。
下面按常见场景给你一个清晰配置流程。
已安装 Oracle Database(或 Oracle 客户端)
listener.ora 控制环境变量已配置(非常重要)
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl
一般在:
$ORACLE_HOME/network/admin/listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
(SID_NAME = orcl)
)
)
HOST 建议写 IP 或 hostname,不要写 localhost(远程连不上)
lsnrctl start
查看状态:
lsnrctl status
停止:
lsnrctl stop
重新加载(不改端口时推荐):
lsnrctl reload
位置:
$ORACLE_HOME/network/admin/tnsnames.ora
示例:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
测试连接:
sqlplus system/password@ORCL
sudo ufw allow 1521/tcp
HOST 是否为真实 IPlsnrctl status 中是否显示 READY说明没装 Oracle 或 PATH 没配:
which lsnrctl
✅ 可以(Oracle Client / Instant Client + admin 组件)
❌ 但不能作为数据库监听(只管理监听器)
如果你愿意,可以告诉我:
我可以直接帮你写一份 可用的 listener.ora + 启动命令。