略。
某局点反馈会随机出现iMC 的智能部署监控代理会出现连接数据库异常,在连接数据库的详细信息里面提示如下报错:
com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 127.0.0.1 的 TCP/IP 连接失败。错误:“No buffer space available (maximum connections reached?): connect。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
at com.microsoft.sqlserver.jdbc.SQLServerException.ConvertConnectExceptionToSQLServerException(SQLServerException.java:241)
at com.microsoft.sqlserver.jdbc.SocketFinder.findSocket(IOBuffer.java:2243)
at com.microsoft.sqlserver.jdbc.TDSChannel.open(IOBuffer.java:491)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1309)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:991)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:827)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:154)
at com.h3c.imc.deploy.dma.EnvPanel.a(EnvPanel.java:1144)
at com.h3c.imc.deploy.dma.EnvPanel.F(EnvPanel.java:1097)
at com.h3c.imc.deploy.dma.EnvPanel.a(EnvPanel.java:128)
at com.h3c.imc.deploy.dma.az.run(EnvPanel.java:627)
根据数据库连接失败的提示可以明显看到时因为iMC通过端口 1433 连接到主机 127.0.0.1 的 TCP/IP 连接失败。错误:“No buffer space available (maximum connections reached?): connect。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。
此种情况很多情况下是因为socket句柄连接过多导致,可以通过如下反复排查:
1、下载 ***.***/zh-cn/sysinternals/downloads/handle
运行Handle.exe -a afd > result.txt
收集result.txt
文件下载和分析方法,可以参考此案例:https://zhiliao.h3c.com/Theme/details/93574
2、在收集的result文件中可以看到Syste64.exe程序占了1023条数据,占据了大部分的连接
3、通过查看Windows的任务管理器发现此进程时有时无,非常异常,无法确定具体什么服务和进程引起。
4、通过查找文件,可以看到此文件是在C盘的Windows\Fonts 目录下,这个目录是Windows存放字体的目录,一般删除是不影响IMC和系统运行的。
5、强制删除的时候回提示报错,提示有程序正在运行此文件,显示此文件是XMRing miner
6、通过此文件到网上搜索都是显示是挖矿病毒,说明Windows系统中了挖矿病毒了。
从以上分析能确定是Windows系统可能在4月18号(病毒文件的创建时间)就被下了挖矿病毒,此病毒有时会建立很多会话,从而占用很多连接,将TCP的连接数占满,进而导致iMC 连接数据库的时候因为连接数满而无法连接数据库。
通过以上分析,要解决此问题需要消灭挖矿病毒,保证IMC正常使用。
第一步:可以参考网络上的方法尝试进行修复;
第二步:如还不能解决,可尝试先将iMC的数据通过dbman进行备份,然后安装杀毒软件进行全盘查杀(如果因为IMC本身的文件也被感染了导致文件被杀毒软件删除,进而导致iMC无法正常使用,需要重新安装iMC),如果消灭病毒之后iMC能正常使用即问题解决;
第三步:如使用全盘查杀还是不能彻底消灭病毒,在备份好iMC的数据之后,请将硬盘进行格式化,然后重新安装系统、数据库、iMC,切记安装的数据库和IMC版本和当前的一致,之后进行数据修复和license文件的导入(只是重装操作系统,不会影响license,所以使用之前的license文件重新注册即可)。
该案例暂时没有网友评论
✖
案例意见反馈
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作