解决oracle连接很慢问题 oracle监听无响应

问题具体内容如下:

客户那边人员说oracle数据库又问题,pgsql、navicat连接很慢,很卡,经常timeout,经过重重排查,从客户那边重设服务器网络、到自己修改oracle监听文件、映射文件等其他文件,最终还是未能解决问题。最后,开外挂上google搜到了,oracle版本的一个bug,DNS解析问题导致数据库连接很慢,连不上。
查下监听日志,主要是以下内容:
TNS-12525: TNS:listener has not received client's request in time allowed  TNS-12535: TNS:operation timed out    TNS-12606: TNS: Application timeout occurred  
TNS-12518: TNS:listener could not hand off client connection  TNS-12571: TNS:packet writer failure    TNS-12560: TNS:protocol adapter error     TNS-00530: Protocol adapter error      Linux Error: 104: Connection reset by peer  
27-NOV-2012 15:43:26 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=jdbc)(USER=oracle))(SERVICE_NAME=orcl)) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.10.1.200)(PORT=61018)) * establish * orcl * 0  
数据库警告日志中也出现ora-609内容:
Fatal NI connect error 12537, connecting to:  (LOCAL=NO)
VERSION INFORMATION:  TNS for Linux: Version 11.2.0.1.0 - Production  Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.1.0 - Production  TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.1.0 - Production  Time: 29-FEB-2012 20:45:05  Tracing not turned on.  Tns error struct:  ns main err code: 12537  TNS-12537: TNS:connection closed  ns secondary err code: 12560  nt main err code: 0  nt secondary err code: 0  nt OS err code: 0  opiodr aborting process unknown ospid (12792) as a result of ORA-609

报错如下

oracle bug: Bug 9593134 - DNS or NIS mis-configuration can cause slow database connects [ID 9593134.8]

排查步骤

查看防火墙和SELinux是否关闭

查看ping是否正常

ping 127.0.0.1 正常
ping localhost 正常
ping server1    正常 server1为主机名

查看tnsping是否正常

tnsping 127.0.0.1 很慢
tnsping localhost 很慢
tnsping server1    很慢 server1为主机名

检查侦听文件listener.ora和tnsnames.ora配置是否正确

vim $ORACLE_HOME/network/admin/listener.ora
vim $ORACLE_HOME/network/admin/tnsnames.ora
listener.ora和tnsnames.ora中host必须一样

解决方法:

第一步,/etc/hosts 一定要映射主机名

通过服务器hostname命令查看主机名,然后到/etc/hosts做映射

修改服务器名
CentOS7.X :   vim /etc/hostname
CentOS6.X :  vim /etc/sysconfig/network

修改完最终如下

第二步,DNS配置

oracle配置成功,但是navicat、pgsql连接很慢、无响应,跟dns解析有关
vim  /etc/resolv.conf

重启监听后问题重现。
解决办法就是注释掉/etc/resolve.conf 中对DNS解析内容。
重启监听,OK.

原文地址:https://www.cnblogs.com/homjun/p/14445929.html