Oracle Fatal NI connect error 12170

 

故障描述:

新布署的ORACLE ,已经跑了十多天,这几天南方十堰电信客户反应用总是很慢(应用数据包单向慢,ping和tracert网络正常),让网络工程师查了半天最终还是确认为南方电信和北方网通互相限制流量所至,于是我们老大想了个办法,让客户那边将应用数据包转发到铁通服务器网络,再通过铁通转发数据包到公司(因为铁通不会对电信和网参通做流量限制),但是新的问题又产生了,网络也不给力数据经过几次的转发才到公司发布的数据库端口(网络有点延迟),客户那边PL/SQL连接不上,经查看alter日志发现“Fatal NI connect error 12170” 错误信息.

(养成看警报的习惯还是很有必要的,经常可以发现一些错误信息并及时处理)

网上搜了一下关键字,看来很多人遇到这个问题。

alter log图片如下:

 

查看错误信息:

# oerr tns 12170
12170, 00000, "TNS:Connect timeout occurred"
// *Cause: The server shut down because connection establishment or
// communication with a client failed to complete within the allotted time
// interval. This may be a result of network or system delays; or this may
// indicate that a malicious client is trying to cause a Denial of Service
// attack on the server.
// *Action: If the error occurred because of a slow network or system,
// reconfigure one or all of the parameters SQLNET.INBOUND_CONNECT_TIMEOUT,
// SQLNET.SEND_TIMEOUT, SQLNET.RECV_TIMEOUT in sqlnet.ora to larger values.
// If a malicious client is suspected, use the address in sqlnet.log to
// identify the source and restrict access. Note that logged addresses may
// not be reliable as they can be forged (e.g. in TCP/IP).

处理方法:


1,在sqlnet.ora 中末增加以下参数: (建议操作前先备份原文件)
SQLNET.INBOUND_CONNECT_TIMEOUT = 30
SQLNET.RECV_TIMEOUT = 30
SQLNET.SEND_TIMEOUT = 30


2,在 listener.ora 末增加以下参数:
INBOUND_CONNECT_TIMEOUT_LISTENER = 30


3,重读监听器配置文件:
lsnrctl reload

再查看alter log警报日志,正常。

 

 Note the time of the client corresponding client connection(s) in the listener log.  Here you may find a particular client, set of clients or particular applications that are improperly disconnecting causing the timeout errors to be raised and recorder in the database alert log.

You may choose to revert from the new Automatic Diagnostic Repository (ADR) method to prevent the Oracle Net diagnostic details from being written to the alert log(s) by setting the following Oracle Net configuration parameters:


To revert to Oracle Net Server tracing/logging, set following parameter in the server's sqlnet.ora :

DIAG_ADR_ENABLED = OFF

Also, to back out the ADR diag for the Listener component, set following parameter in the server's listener.ora:

DIAG_ADR_ENABLED_ = OFF

   - Where the would be replaced with the actual name of the configured listener(s) in the listener.ora configuration file.  For example, if the listener name is 'LISTENER', the parameter would read:

DIAG_ADR_ENABLED_LISTENER = OFF

-Reload or restart the TNS Listener for the parameter change to take effect.

===================================================================================

版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任! 谢谢合作!

QQ: [email protected]
Sina: weibo.com/kaijunfeng
Yahoo: [email protected]

你可能感兴趣的:(ORA-Error)