# Linux/Unix
lsnrctl status
# Windows
检查服务列表中"OracleOraDB19Home1TNSListener"是否运行
如果服务未运行,尝试启动:
lsnrctl start
# 测试是否能ping通服务器
ping <服务器IP>
# 测试端口连通性(默认1521)
telnet <服务器IP> 1521
# 或使用
nc -zv <服务器IP> 1521
确保1521端口(或自定义监听端口)在防火墙中开放:
# Linux查看防火墙规则
iptables -L -n
# 或
firewall-cmd --list-ports
# Windows检查防火墙入站规则
查看$ORACLE_HOME/network/admin/listener.ora
文件:
cat $ORACLE_HOME/network/admin/listener.ora
确保包含类似内容:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = <主机名或IP>)(PORT = 1521))
)
查看$ORACLE_HOME/network/admin/tnsnames.ora
文件:
cat $ORACLE_HOME/network/admin/tnsnames.ora
确保连接字符串配置正确,例如:
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = <服务器IP>)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
-- 以sysdba身份登录SQL*Plus
sqlplus / as sysdba
-- 检查实例状态
SELECT status FROM v$instance;
cat $ORACLE_HOME/network/log/listener.log
使用tnsping测试TNS连接
tnsping <服务名>
使用Oracle Net Manager检查配置
netmgr
使用trcroute追踪连接路径
trcroute <服务名>
错误:ORA-12541: TNS:no listener - 监听服务未启动 - 监听配置的主机名/IP不正确
错误:ORA-12514: TNS:listener does not currently know of service requested - 服务名拼写错误 - 实例未注册到监听器
错误:ORA-12170: TNS:Connect timeout occurred - 网络问题 - 防火墙阻止 - 服务器负载过高
如需更具体的帮助,请提供您遇到的错误信息和环境配置详情。