某运营商的一个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博客 ” ,链接:http://blog.itpub.net/8242091/viewspace-751225/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8242091/viewspace-751225/