在 Debian 上学习使用 lsnrctl,其实主要是学习 Oracle 监听控制工具(Listener Control),它本身不是 Debian 自带命令,而是 Oracle Database(或 Oracle Client) 提供的工具。
下面从「能不能用 → 怎么装 → 怎么学 → 常用命令」一步步说明。
which lsnrctl
如果返回路径(如 /u01/app/oracle/product/19c/dbhome_1/bin/lsnrctl),说明已安装。
如果提示 command not found,说明 没装 Oracle,需要先安装。
✅ 推荐方式(最简单)
docker run -d -p 1521:1521 -p 5500:5500 oracle/database:19c
进入容器:
docker exec -it <container_id> bash
su - oracle
lsnrctl
⚠️ 注意:
lsnrctl 不在 Instant Client 中,只有完整 Oracle 才有。
lsnrctl 用来管理 Oracle Listener(监听):
lsnrctl start
lsnrctl stop
lsnrctl status
示例输出重点:
lsnrctl reload
lsnrctl help
路径示例:
$ORACLE_HOME/network/admin/listener.ora
示例:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
lsnrctlstartstopstatusreloadlistener.orasqlplus 学连接❌ TNS-12541: TNS:no listener
→ 监听没启动
❌ TNS-12545: Connect failed
→ IP / 端口错
❌ Debian 直接装 Oracle 很痛苦
→ 用 Docker 最省事
如果你愿意,我可以:
你现在是「刚接触 Oracle」还是「已经在用 Debian 跑服务」?