域名解析导致数据库连接缓慢(hosts :files dns)
因域名解析导致数据库连接延迟分析
一、现状记录
[oracle@node1 ~]$ /sbin/ifconfigeth2 Link encap:Ethernet HWaddr 00:25:90:04:AB:6Binet addr:192.168.9.140 Bcast:192.168.15.255 Mask:255.255.248.0inet6 addr: fe80::225:90ff:fe04:ab6b/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:23530402 errors:0 dropped:0 overruns:0 frame:0TX packets:10959123 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:15308483748 (14.2 GiB) TX bytes:10087987532 (9.3 GiB)--IP地址为192.168.9.140[oracle@node1 ~]$ more /etc/hosts# Do not remove the following line, or various programs# that require network functionality will fail.127.0.0.1 ecp-db localhost.localdomain localhost192.168.9.140 node1.srtcloud.com--域名node1.srtcloud.com对应ip192.168.9.140[oracle@node1 ~]$ lsnrctl statusConnecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node1.srtcloud.com)(PORT=1521)))STATUS of the LISTENER------------------------Alias LISTENERVersion TNSLSNR for Linux: Version 10.2.0.5.0 - ProductionStart Date 04-NOV-2011 09:08:51Uptime 21 days 4 hr. 58 min. 45 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /opt/oracle/product/10.2.0/db_1/network/admin/listener.oraListener Log File /opt/oracle/product/10.2.0/db_1/network/log/listener.logListening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=node1.srtcloud.com)(PORT=1521)))Services Summary...Service "ecp" has 2 instance(s).Instance "ecp", status UNKNOWN, has 1 handler(s) for this service...Instance "ecp", status READY, has 1 handler(s) for this service...Service "ecpXDB" has 1 instance(s).Instance "ecp", status READY, has 1 handler(s) for this service...Service "ecp_XPT" has 1 instance(s).Instance "ecp", status READY, has 1 handler(s) for this service...Service "ora11g" has 2 instance(s).Instance "ora11g", status UNKNOWN, has 1 handler(s) for this service...Instance "ora11g", status READY, has 1 handler(s) for this service...Service "ora11gXDB" has 1 instance(s).Instance "ora11g", status READY, has 1 handler(s) for this service...The command completed successfully--说明:ora11g是oracle 11g,ecp是oracle 10g--当前使用域名node1.srtcloud.com监听[oracle@node1 ~]$ more /opt/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora# tnsnames.ora Network Configuration File: /opt/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora# Generated by Oracle configuration tools.ECP =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = node1.srtcloud.com)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ecp)))ORA11G =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = node1.srtcloud.com)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ora11g)))--tns也通过域名访问[oracle@node1 ~]$ more /etc/resolv.confnameserver 211.155.235.201nameserver 211.155.235.188--当前有效的dns服务器[oracle@node1 ~]$ more /etc/nsswitch.conf |grep hosts:hosts: files dns--域名解析顺序二、数据库正常工作分析
1、tns工作:客户端通过tns访问数据库,tns配置的是域名访问,所以需要解析,因为此刻解析的顺序是先利用/etc/hosts解析,所以读取hosts文件,获取到ip,然后访问对应数据库,和监听接触。
2、监听工作:监听的是域名,其实也是通过hosts解析成ip的
3、这里能够正常的工作,是因为hosts文件解析了域名
三、模拟数据库访问延迟
其实因为dns延迟的现象有很多种,我这里只是举了一个最简单,比较常见的例子,在处理因dns解析的监听延迟的问题上,可以参考下面几点:
1、如果非特殊情况,尽可能使用ip地址在监听和tns中
2、如果是使用域名,请尽可能使用hosts解析,解析顺序配置为files优先(因为dns服务器有很多不确定,不可控因素)
3、如果一定要使用dns服务器解析,请把稳定的dns服务器配置在第一项,尽可能避免出现dns服务器不可达或者不存在该域名的现象
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。