上一篇
最新动态(2025年8月):近期Oracle官方发布补丁集Patch 35681234,部分用户反馈该补丁可能引发TNS服务间歇性拒绝连接问题,若您的环境在更新后出现ORA-12564错误,可暂时回退补丁或参考下文"服务冲突排查"章节处理。
当你信心满满地输入sqlplus username/password@orcl
,却看到这样的提示:
ORA-12564: TNS:connection refused
这感觉就像敲门时发现主人明明在家,却故意不给你开门,别急,这个问题90%的情况都能远程解决。
ps -ef | grep tns # 检查监听进程是否存在 lsnrctl status # 查看监听状态
listener.ora
可能出现: 在数据库服务器执行:
sqlplus / as sysdba SQL> select status from v$instance; -- 确认数据库状态 SQL> host lsnrctl start -- 如果监听未启动
定位$ORACLE_HOME/network/admin/listener.ora
,重点查看:
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 实际IP或主机名)(PORT = 1521))
)
避坑提示:云环境避免使用localhost
或0.0.1
!
从客户端执行:
telnet 数据库IP 1521 # 如果无响应,说明网络层有问题 nc -zv 数据库IP 1521 # Linux替代方案
firewall-cmd --list-ports | grep 1521 # CentOS/RHEL ufw status | grep 1521 # Ubuntu
确保连接字符串与服务器配置匹配:
# tnsnames.ora正确示例
ORCL_REMOTE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)
tail -100f $ORACLE_HOME/network/log/listener.log
SQL> show parameter background_dump_dest;
如果急需数据且无法立即修复:
ssh -L 1522:localhost:1521 oracle_user@数据库IP
监听器健康监控脚本(示例):
#!/bin/bash if ! lsnrctl status | grep -q "STATUS"; then echo "$(date) 监听器异常!" | mail -s "Oracle告警" admin@example.com fi
云环境特别提示:
连接池优化参数:
ALTER SYSTEM SET processes=300 SCOPE=SPFILE; ALTER SYSTEM SET sessions=335 SCOPE=SPFILE;
遇到顽固性ORA-12564时,记住这个诊断链条:服务状态 → 网络可达 → 配置一致 → 日志线索,按照这个顺序排查,大多数连接拒绝问题都能迎刃而解。
本文由 越碧曼 于2025-08-06发表在【云服务器提供商】,文中图片由(越碧曼)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://up.7tqx.com/wenda/550256.html
发表评论