在 Debian 上 lsnrctl 连不上(通常是 lsnrctl status 或 lsnrctl start 报错),常见原因和排查思路如下:
lsnrctl 依赖以下环境变量:
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH
如果没有设置,lsnrctl 可能:
TNS-12545 / TNS-12560✅ 解决:
source ~/.bash_profile
# 或
. oraenv
lsnrctl status
如果提示:
TNS-12541: TNS:no listener
说明 listener 没起。
✅ 启动:
lsnrctl start
文件位置:
$ORACLE_HOME/network/admin/listener.ora
常见错误:
示例:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
)
)
Debian 默认可能启用 nftables / iptables:
sudo iptables -L
sudo nft list ruleset
✅ 开放端口:
sudo iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
在 Debian 上:
lsnrctlsu - oracle
否则会:
Debian 不是 Oracle 官方支持系统,常见问题:
ldd $ORACLE_HOME/bin/lsnrctl
常见缺失:
✅ 安装:
sudo apt install libaio1 libaio-dev
whoami
echo $ORACLE_HOME
echo $ORACLE_SID
lsnrctl status
netstat -tlnp | grep 1521
cat $ORACLE_HOME/network/log/listener.log
你可以贴出:
lsnrctl status 的完整报错listener.ora我可以直接帮你定位是哪一条原因。