联系:手机/微信(+86 17813235971) QQ(107644445)
标题:hosts中缺少localhost.localdomain导致监听启动时间超长
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
0、基本信息
[oracle@localhost ~]$ uname -a
Linux localhost.localdomain 2.6.18-194.el5PAE #1 SMP Tue Mar 16 22:00:21 EDT 2010 i686 i686 i386 GNU/Linux
[oracle@localhost ~]$ hostname
localhost.localdomain
[oracle@localhost ~]$ /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:14:22:10:96:AE
inet addr:192.168.9.66 Bcast:192.168.11.255 Mask:255.255.252.0
inet6 addr: fe80::214:22ff:fe10:96ae/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6597875 errors:0 dropped:0 overruns:0 frame:0
TX packets:9785915 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:2526369384 (2.3 GiB) TX bytes:295978844 (282.2 MiB)
eth0:1 Link encap:Ethernet HWaddr 00:14:22:10:96:AE
inet addr:外网ip Bcast:211.155.227.175 Mask:255.255.255.240
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
eth1 Link encap:Ethernet HWaddr 00:14:22:10:96:AF
inet addr:192.168.11.50 Bcast:192.168.11.255 Mask:255.255.252.0
inet6 addr: fe80::214:22ff:fe10:96af/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:999903 errors:0 dropped:0 overruns:0 frame:0
TX packets:283 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:104688608 (99.8 MiB) TX bytes:22777 (22.2 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8816738 errors:0 dropped:0 overruns:0 frame:0
TX packets:8816738 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2726275798 (2.5 GiB) TX bytes:2726275798 (2.5 GiB)
[oracle@localhost ~]$ more /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=localhost.localdomain
1、hosts文件
[oracle@localhost ~]$ more /etc/hosts 127.0.0.1 localhost
2、监听文件
[oracle@localhost ~]$ more /opt/oracle/product/10g/network/admin/listener.ora
# listener.ora Network Configuration File: /opt/oracle/product/10g/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = gaxt)
(ORACLE_HOME = /opt/oracle/product/10g)
(SID_NAME = gaxt)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 外网IP)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)
3、启动监听
[oracle@localhost ~]$ lsnrctl start LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 15-DEC-2011 23:27:32 Copyright (c) 1991, 2007, Oracle. All rights reserved. Starting /opt/oracle/product/10g/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 10.2.0.4.0 - Production System parameter file is /opt/oracle/product/10g/network/admin/listener.ora Log messages written to /opt/oracle/product/10g/network/log/listener.log Trace information written to /tmp/listener_trc.trc Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=外网IP)(PORT=1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=外网IP)(PORT=1521))) --这里卡了很久很久才显示成功 STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 10.2.0.4.0 - Production Start Date 15-DEC-2011 23:27:32 Uptime 0 days 0 hr. 3 min. 9 sec Trace Level support Security ON: Local OS Authentication SNMP OFF Listener Parameter File /opt/oracle/product/10g/network/admin/listener.ora Listener Log File /opt/oracle/product/10g/network/log/listener.log Listener Trace File /tmp/listener_trc.trc Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=外网IP)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))) Services Summary... Service "gaxt" has 1 instance(s). Instance "gaxt", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully
4、开启监听trace
--在/opt/oracle/product/10g/network/admin/listener.ora中加入下列参数 TRACE_LEVEL_LISTENER = 16 TRACE_FILE_LISTENER= LISTENER_TRC TRACE_DIRECTORY_LISTENER=/tmp
6、重启监听查看trace文件
[15-DEC-2011 23:33:32:938] --- TRACE CONFIGURATION INFORMATION FOLLOWS --- [15-DEC-2011 23:33:32:938] New trace stream is /tmp/listener_trc.trc [15-DEC-2011 23:33:32:938] New trace level is 16 ………………………… [15-DEC-2011 23:33:32:981] nsnainconn: no native services in use - returning [15-DEC-2011 23:33:32:981] nsnainconn: signalling that calling function should not continue [15-DEC-2011 23:33:32:982] nsnainconn: normal exit [15-DEC-2011 23:33:32:982] nsnaconn: normal exit [15-DEC-2011 23:33:32:982] nsaccept: exit (0) [15-DEC-2011 23:36:41:965] nsglma: WARNING - SNMP master agent is not running OR snmp.ora file does not exist. [15-DEC-2011 23:36:41:965] nsevwait: entry [15-DEC-2011 23:36:41:965] nsevwait: 3 registered connection(s) [15-DEC-2011 23:36:41:965] nsevwait: 0 pre-posted event(s) [15-DEC-2011 23:36:41:965] nsevwait: waiting for transport event (1 thru 4)... [15-DEC-2011 23:36:41:965] nsevwait: 1 newly-posted event(s)
这里可以看出监听启动的过程中,在这个地方等待了3分钟之久
MOS:Lsnrctl Start is Extremely Slow or Appears to Hang
7、修改hosts文件
[oracle@localhost ~]$ more /etc/hosts 127.0.0.1 localhost.localdomain localhost
8、重启监听查看trace文件
[15-DEC-2011 23:43:44:555] --- TRACE CONFIGURATION INFORMATION FOLLOWS --- [15-DEC-2011 23:43:44:555] New trace stream is /tmp/listener_trc.trc …………………… [15-DEC-2011 23:43:44:627] nsevwait: entry [15-DEC-2011 23:43:44:627] nsevwait: 3 registered connection(s) [15-DEC-2011 23:43:44:627] nsevwait: 0 pre-posted event(s) [15-DEC-2011 23:43:44:627] nsevwait: waiting for transport event (1 thru 4)...
这里可以看出监听启动一共使用时间为:几十毫秒
9、结论
在主机名为localhost.localdomain的hosts文件中缺少127.0.0.1 localhost.localdomain,哪怕监听中配置的是ip地址,也将导致监听启动时间非常长。如果主机名不是localhost.localdomain,那hosts中缺少localhost.localdomain没有影响监听启动。