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