在 Debian 上,lsnrctl 是 Oracle Database 的监听器管理工具,属于 Oracle Instant Client 或完整 Oracle 安装 的一部分,并不是 Debian 自带软件。
下面按常见场景说明如何在 Debian 上让 lsnrctl 监听数据库。
lsnrctl 位于:$ORACLE_HOME/bin/lsnrctl
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl
vi $ORACLE_HOME/network/admin/listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521))
)
)
✅ 表示监听 所有网卡、1521 端口
生产环境建议:
HOST = your_hostname_or_ip
lsnrctl start
成功示例:
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
The listener supports no services
在数据库内执行:
ALTER SYSTEM SET LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))';
ALTER SYSTEM REGISTER;
查看:
lsnrctl status
应看到:
Services Summary...
Service "orcl" has 1 instance(s).
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/19.3.0/dbhome_1)
(SID_NAME = orcl)
)
)
然后:
lsnrctl reload
lsnrctl status
lsnrctl services
netstat -tulnp | grep 1521
bash: lsnrctl: command not found
✅ 解决:
source ~/.bashrc
# 或
. /u01/app/oracle/product/19.3.0/dbhome_1/bin/lsnrctl
HOST 配置错误安装 Oracle
→ 配置 listener.ora
→ lsnrctl start
→ 数据库注册监听
→ lsnrctl status
如果你愿意,可以告诉我:
我可以给你完全针对你环境的配置示例。