平时正常使用的软件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
阅读(2039) | 评论(0) | 转发(0) |