1.11G中ALERT日志中有报错ORA-609 TNS-12537 and TNS-12547 or TNS-12170  12170, 'TNS-12535等问题的解决方法:

Troubleshooting Guide for TNS-12535 or ORA-12535 or ORA-12170 Errors (文档 ID 119706.1)

TNS-12535 / ORA-12535 on Connection to Database (文档 ID 214122.1)

11g: ORA-609 TNS-12537 and TNS-12547 or TNS-12170 in 11g Alert.log (文档 ID 1116960.1)

Fatal NI Connect Error 12170, 'TNS-12535: TNS:operation timed out' Reported in 11g Alert Log (文档 ID 1286376.1)


TNS-12535 or ORA-12535从本质上来说是客户端与服务器之间计时的问题。a timing issue between the client and server.

这个错误一般是因为防火墙或网络不稳定、慢引起的超时。也可能是主机的TCP QUEUESIZE setting设置问题。

通常也须要排查监听配置文件:

listener.ora -->

CONNECT_TIMEOUT_<listener_name> (8.1.x and lower only)

   or

INBOUND_CONNECT_TIMEOUT_<listener_name> (9.2 and above)

sqlnet.ora -->

SQLNET.INBOUND_CONNECT_TIMEOUT (9.2 and up).



listener.ora: INBOUND_CONNECT_TIMEOUT_listenername

set to a value in seconds and determines how long a client has to provide the necessary authentication information to a database.

单位为秒,client须要在指定的时间内提交须要的认证信息。

sqlnet.ora: SQLNET.INBOUND_CONNECT_TIMEOUT

 INBOUND_CONNECT_TIMEOUT_listenername is set to a value in seconds and determines how long a client has to complete its connect request to the listener after the network connection has been established.

单位为秒,client与监听建立连接后多久须要完毕连接请求

比如:

Sqlnet.ora: SQLNET.INBOUND_CONNECT_TIMEOUT=180

Listener.ora: INBOUND_CONNECT_TIMEOUT_listener_name=120

參考:11g: ORA-609 TNS-12537 and TNS-12547 or TNS-12170 in 11g Alert.log (文档 ID 1116960.1)




排查方法:

1.能够PING通连接串中的主机HOST--如RAC的VIP/SCAN。检查防火墙、路由、网络慢等

2.client和server的OS平台、版本号是ORACLE支持的

3.假设使用9I或之前的Oracle Names Server,配置暂时tnsnames.ora 并在sqlnet.ora file 写入 NAMES.DIRECTORY_PATH = (TNSNAMES)

4.假设正在使用Shared Server。尝试使用SERVER=DEDICATED

5.数据库server负载高,CPU/内存等检查

6.10.1、10.2版本号 client可能在网络慢时收到ORA-12535 or ORA-12170,改动例如以下:

These parameters are set on the SERVER side:

listener.ora: INBOUND_CONNECT_TIMEOUT_listenername   --为0(无限期)

sqlnet.ora: SQLNET.INBOUND_CONNECT_TIMEOUT   --120防DOS

7.11g版数据库警报日志还可能包括12535和/或12170错误的组合。

排查client是否异常发出过多连接、连接风暴等问题。

8.监听器负载大,大量client连接积压。监听器不能及时处理。--或者连接风暴

9.server正在启动过程中。。

10.TRACE跟踪一下 DOC:文档 ID 1116960.1




解决方法:

1.8I及之前版本号。在 listener.ora中配置CONNECT_TIMEOUT_<listener_name> and make it a higher value.

2.9I及之后版本号,CONNECT_TIMEOUT_<listener_name> parameter is obsoleted.

须要依据不同版本号来设置。


3.11G中此错误 会出如今ALERT日志中。

这个错误相应用基本没有影响。通常能够忽略。

ORACLE就给了一个损招,不让监听超时错误出如今告警日志里,回到10G的形式保存在监听的LOG中。。

Fatal NI Connect Error 12170, 'TNS-12535: TNS:operation timed out' Reported in 11g Alert Log (文档 ID 1286376.1)

方法1: server's sqlnet.ora :

DIAG_ADR_ENABLED = OFF

方法2:

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

DIAG_ADR_ENABLED_LISTENER = OFF

此时出现监听超时错误仅仅出如今监听日志。注意ADR_BASE_LISTENER = /orabase   --删除此条目。

对sqlnet文件的改动是要又一次注冊监听才干生效的。



4.11G中还能够设置sqlnet.ora--文档 ID 1628949.1

SQLNET.EXPIRE_TIME=n  Where <n> is a non-zero value set in minutes.