ITPub博客

首页 > Linux操作系统 > Linux操作系统 > DNS导致数据库登录缓慢的问题解决

DNS导致数据库登录缓慢的问题解决

原创 Linux操作系统 作者:westzq1984 时间:2012-12-17 16:58:02 0 删除 编辑
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE今天远程支持了下同事处理一个故障

某运营商的一个IT管理系统,AIX平台,数据库登录缓慢,包括sqlplus本机sysdba登录也及其缓慢,大概要1分钟以上才能登录

 

进行了如下测试

1.    由于没走监听,那肯定和监听也没有关系了

2.    sqlplus登录,看到进程立刻就产生了服务器进程,但是在数据库里面查询v$process,没有该进程

3.    等待一段时间后,可以从v$process中观察到该进程,但是仍然没有登录进去。这时查看v$session,没有异常等待

 

感觉可能和主机配置相关,那么truss了下sqlplus登录过程,并且和一台正常的机器的sqlplus登录的truss跟踪文件比对,发现主要慢在如下地方,进程多次请求socket,然后sleep

[11:10:35]176296: socket(2, 2, 0)                                 = 8

[11:10:35]176296: getsockopt(8, 65535, 4104, 0x0FFFFFFFFFFF70D4, 0x0FFFFFFFFFFF70D0) = 0

[11:10:35]176296: connext(8, 0x09001000A0022A68, 16)              = 0

[11:10:35]176296: _esend(8, 0x0FFFFFFFFFFF7FE0, 23, 0, 0x0000000000000000) = 23

[11:10:35]176296: _poll(0x0FFFFFFFFFFF71A0, 1, 5000)              = 1

[11:10:35]176296: _enrecvfrom(8, 0x0FFFFFFFFFFF9310, 1024, 0, 0x0FFFFFFFFFFF7960, 0x0FFFFFFFFFFF7188, 0x0000000000000000) = 23

[11:10:35]176296: close(8)                                        = 0

[11:10:35]176296: socket(2, 2, 0)                                 = 8

[11:10:35]176296: _esendto(8, 0x0FFFFFFFFFFF7FE0, 23, 0, 0x09001000A0022A78, 16, 0x0000000000000000) = 23

[11:10:36]90574:  kread(8, "\0 E\0\006\0\0\0\0\002 g".., 2064) (sleeping...)

[11:10:36]176296: _poll(0x0FFFFFFFFFFF71A0, 1, 5000) (sleeping...)

[11:10:39]176296: _poll(0x0FFFFFFFFFFF71A0, 1, 5000)              = 0

[11:10:39]176296: close(8)                                        = 0

[11:10:39]176296: socket(2, 2, 0)                                 = 8

[11:10:39]176296: _esendto(8, 0x0FFFFFFFFFFF7FE0, 23, 0, 0x09001000A0022A78, 16, 0x0000000000000000) = 23

[11:10:42]176296: _poll(0x0FFFFFFFFFFF71A0, 1, 5000) (sleeping...)

[11:10:44]176296: _poll(0x0FFFFFFFFFFF71A0, 1, 5000)              = 0

[11:10:44]176296: close(8)                                        = 0

[11:10:44]176296: socket(2, 2, 0)                                 = 8

[11:10:44]176296: _esendto(8, 0x0FFFFFFFFFFF7FE0, 23, 0, 0x09001000A0022A78, 16, 0x0000000000000000) = 23

[11:10:46]176296: _poll(0x0FFFFFFFFFFF71A0, 1, 10000) (sleeping...)

[11:10:54]176296: _poll(0x0FFFFFFFFFFF71A0, 1, 10000)             = 0

[11:10:54]176296: close(8)                                        = 0

[11:10:54]176296: socket(2, 2, 0)                                 = 8

[11:10:54]176296: _esendto(8, 0x0FFFFFFFFFFF7FE0, 23, 0, 0x09001000A0022A78, 16, 0x0000000000000000) = 23

[11:10:57]176296: _poll(0x0FFFFFFFFFFF71A0, 1, 20000) (sleeping...)

[11:11:15]176296: _poll(0x0FFFFFFFFFFF71A0, 1, 20000)             = 0

[11:11:15]176296: close(8)                                        = 0

 

马上感觉是网络配置问题,尝试ping主机名,要等待很久后才开始ping,但是ping IP地址就很快

 

难道是DNS解析有问题?但是ping无法truss。立刻重新阅读sqlplus的truss文件

发现故障机器多读了个/etc/resolv.conf,也就是设置DNS服务器的文件。而其他机器都没得该文件

立马想到了LINUX下,ftp的反向解析的问题。

 

让现场工程师和客户确认能否删除下该文件

确认可以删除测试后,删除该文件测试,sqlplus飞速登录,ping主机名也一切正常

 

DNS的问题我就不知道,反正问题解决了,有空在研究。

sqlplus本地登录的机制,也可以再研究下

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8242091/viewspace-751225/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: read mostly locking
请登录后发表评论 登录
全部评论

注册时间:2009-04-06

  • 博文量
    251
  • 访问量
    1042190