今日发现数据库的连接非常慢,甚至是无法连接,想要我检查看看

#su - oracle
$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 17-MAY-2018 12:29:11

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracletest)(PORT=1521)))    ## 到这里,
hang住了,一直没有响应

从其他主机做了个tnsping测试:

oracle@IBlvs02:/u01/app/oracle/11.2/db_1/network/admin> tnsping oracletest

TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 17-MAY-2018 12:54:20

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Used parameter files:

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.121.134)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = wdadb)))    ## 这里也是hang住, 一直没有响应

最后检查DNS配置时,发现有:

 # cat /etc/resolv.conf 
nameserver 211.141.90.68
系统配置有DNS,这是内网主机,根本用不到DNS,所以把这个DNS去掉后恢复正常。

其实可以考虑开启listener的trace进行查看的。

或修改sshd配置文件UseDNS参数为no,不解析dns

#vi /etc/ssh/sshd_config
UseDNS no

这样即使保留了/etc/resolv.conf系统配置DNS也没有关系。