可能产生的原因:
1, 网络攻击
2, Client在默认时间里没有完成认证
3, Db负载太高
原来我认为是db负载太高造成的,今天看了sqlnet.log里发现是一个IP为39的机器试图连接数据库,但是问了公司的网管他就不知道有39这个服务器。那就有可能是恶意的连接了。
Ora-3136这个错误和sqlnet.inbound_connect_timeout这个参数有关,这个参数是9I里开始引入的,指定客户端连接服务器并且提供认证信息的超时时间。主要是防止dos攻击,恶意攻击者可以通过不停的开启大量连接请求,占用服务器资源。
解决方法:
Lsnrctl --进入监听
Lsnrctl > Show inbound_connect_time --查看当前的状态
Connecting to
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=LHXXDBS)(PORT=1568)))
LISTENER parameter "inbound_connect_timeout" set to 60
The command completed successfully
Lsnrctl > set inbound_connect_time 0 --把连接超时时间改为0
即可。
或
修改listener.ora文件,加入: INBOUND_CONNECT_TIMEOUT_LISTENER_NAME=0
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25099483/viewspace-697956/ ,如需转载,请注明出处,否则将追究法律责任。