Windows 平台上 TNS-12560 一例

2100阅读 0评论2021-02-19 brjl
分类:Oracle


平时正常使用的软件plsql ,突然无法连接数据库,提示TNS-12560错误。

验证一下,tnsping 127.0.0.1 也报这个错误。

开启搜索模式,关键字 windows tns-12560

百度搜了搜没有发现好文章。
MOS搜了搜,找到几篇,但不确定。

看看这个错误的解释:

[oracle@db1 ~]$ oerr tns 12560
12560, 00000, "TNS:protocol adapter error"
// *Cause: A generic protocol adapter error occurred.
// *Action: Check addresses used for proper protocol specification. Before
// reporting this error, look at the error stack and check for lower level
// transport errors. For further details, turn on tracing and reexecute the
// operation. Turn off tracing when the operation is complete.

需要开启跟踪,查看错误堆栈。
出问题的机器上安装了oracle客户端软件,于是打开netmgr,开启客户端和服务器端(好像这个不用)的support跟踪。

再执行 sqlplus a/a@orcl 进行连接测试,然后去ADR目录下$ORACLE_HOME/log/... trace/ 下看到有trc文件产生了。


很好,符合MOS上一篇文档的说明。

关键点是:缓冲区不足,socket操作不能执行。
但此案例不是病毒导致的,而且也不是间歇性连不上。

重启 windows 后问题临时解决。

还可以设置注册表
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Tcpip \ Parameters
增加 MaxUserPort,类型是 DWORD,值是 65534

netstat -nao | find /i "estab" /c 没有超过5000。
netstat -ab >d:\s.txt 可以看到都有哪些连接。

参考:
Windows: Intermittent TNS-12560 Error Connecting From Remote Client (Doc ID 793526.1) 
https://docs.microsoft.com/en-us/troubleshoot/windows-client/networking/connect-tcp-greater-than-5000-error-wsaenobufs-10055#resolution
上一篇:ORA-28014:无法删除管理用户【非常不推荐观看】
下一篇:ORA-27163: 内存不足