window服务器端口短时间使用完导致oracle监听报错

               接到操作人员反馈系统无法登陆,然后连接到服务器,引用服务器检查服务的cpu,内存,磁盘资源都正常

    从应用服务器远程数据库服务器发现不能远程,从应用服务器连接数据库连接报TNS超时  怀疑是数据库服务器的问题,从阿里云的控制台连接到数据库服务器

     发现数据库服务器正常cpu,内存,磁盘资源都很空闲,oracle监听也没有问题,于是就从其他的阿里云的服务器远程和连接数据库都正常,就怀疑是应用服务

     器的问题。应用服务器cpu,内存,磁盘资源都正常为什么不能建立连接呢,怀疑是端口被占用导致的

               查看应用服务器的系统日志报tcpip 4227


查看本机数据监听

C:\Users\Administrator>lsnrctl status
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 19-7月 -2017 11:22:28
Copyright (c) 1991, 2010, Oracle.  All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=iZ23g5p9kd3Z)(PORT=1521)))
TNS-12560: TNS: 协议适配器错误
 TNS-00530: 协议适配器错误
  64-bit Windows Error: 55: Unknown error

正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
LISTENER 的 STATUS
------------------------
别名                      LISTENER
版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
启动日期                  16-7月 -2017 13:23:20
正常运行时间              2 天 21 小时 59 分 33 秒
跟踪级别                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
监听程序参数文件          D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener
监听程序日志文件          d:\app\administrator\diag\tnslsnr\iZ23g5p9kd3Z\listener\alert\log.x
监听端点概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=iZ23g5p9kd3Z)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
  实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 2 个处理程序...
服务 "orcl" 包含 1 个实例。
  实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
服务 "orclXDB" 包含 1 个实例。
  实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功

监听停掉之后就无法启动了

报TNS错误

查看4227事件

当客户端应用程序尝试连接到 Windows 服务器 2008 Service Pack 2 (SP2)-基于的服务器在动态端口分配过程中,该连接将失败,并且应用程序不能按预期方式。此外,在服务器上,将记录事件 ID 4227 和客户端应用程序收到一个 WinSock 错误 10048 (WSAEADDRINUSE)。

TCP/IP failed to establish an outgoing connection because the selected local endpoint was recently used to connect to the same remote endpoint. This error typically occurs when outgoing connections are opened and closed at a high rate, causing all available local ports to be used and forcing TCP/IP to reuse a local port for an outgoing connection. To minimize the risk of data corruption, the TCP/IP standard requires a minimum time period to elapse between successive connections from a given local endpoint to a given remote endpoint.

如下处理

https://technet.microsoft.com/en-us/library/cc735929(v=ws.10).aspx

这样处理只能暂时的解决

把应用服务器上的测试tomcat停掉,服务器也恢复正常了


但过了一段时间,症状有出现了

最后解决window的端口数量设置大一点


SOCKET 端口数量默认5000最大为65535,设置服务器为60000

1. 启动注册表编辑器。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
2. 新建
值名称:MaxUserPort
值类型: DWORD
值数据: 65534(用十进制的方法写进去就可以,如果是十六进制,是FFFE,因为4个F是65535嘛)  www.2cto.com  
有效范围: 5000 - 65534 (十进制)
默认: 0x1388 5000 (十进制)


最后再观察问题是否还会出现







猜你喜欢

转载自blog.csdn.net/weiwangsisoftstone/article/details/75363635