域名解析导致数据库连接缓慢(hosts :files dns)

因域名解析导致数据库连接延迟分析

一、现状记录

[oracle@node1 ~]$ /sbin/ifconfig

eth2      Link encap:Ethernet  HWaddr 00:25:90:04:AB:6B 

          inet addr:192.168.9.140  Bcast:192.168.15.255  Mask:255.255.248.0

          inet6 addr: fe80::225:90ff:fe04:ab6b/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:23530402 errors:0 dropped:0 overruns:0 frame:0

          TX packets:10959123 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:0

          RX 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 localhost

192.168.9.140   node1.srtcloud.com

–域名node1.srtcloud.com对应ip192.168.9.140

 

[oracle@node1 ~]$ lsnrctl status

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node1.srtcloud.com)(PORT=1521)))

STATUS of the LISTENER

————————

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 10.2.0.5.0 – Production

Start Date                04-NOV-2011 09:08:51

Uptime                    21 days 4 hr. 58 min. 45 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /opt/oracle/product/10.2.0/db_1/network/admin/listener.ora

Listener Log File         /opt/oracle/product/10.2.0/db_1/network/log/listener.log

Listening 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.conf

nameserver 211.155.235.201

nameserver 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文件解析了域名

三、模拟数据库访问延迟

[oracle@node1 ~]$ more /etc/nsswitch.conf |grep hosts:

hosts:     dns files

–先使用dns服务器解析,再使用hosts文件

 

[oracle@node1 ~]$ more /etc/resolv.conf

nameserver 11.1.1.1

–无效的dns服务器

 

[oracle@node1 ~]$ sqlplus chf/xifenfei@ora11g

 

SQL*Plus: Release 10.2.0.5.0 – Production on Fri Nov 25 14:44:55 2011

 

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

–会在这里一个很长的时间等待

 

[oracle@node1 ~]$ lsnrctl status

 

LSNRCTL for Linux: Version 10.2.0.5.0 – Production on 25-NOV-2011 14:48:26

 

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

 

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node1.srtcloud.com)(PORT=1521)))

–也会一个长时间的等待

 

–问题原因:就是因为解析域名的时候,先去访问dns服务器,因为该ip非dns服务器ip,所以会一直等待该ip超时,

–然后访问hosts文件获取ip地址(这个就是为什么我们登录或者查看监听状态的时候,会出现如此长的时间的等待)

其实因为dns延迟的现象有很多种,我这里只是举了一个最简单,比较常见的例子,在处理因dns解析的监听延迟的问题上,可以参考下面几点:

1、如果非特殊情况,尽可能使用ip地址在监听和tns中

2、如果是使用域名,请尽可能使用hosts解析,解析顺序配置为files优先(因为dns服务器有很多不确定,不可控因素)

3、如果一定要使用dns服务器解析,请把稳定的dns服务器配置在第一项,尽可能避免出现dns服务器不可达或者不存在该域名的现象

原创文章,作者:FRIOG,如若转载,请注明出处:http://www.wangzhanshi.com/n/13985.html

(0)
FRIOG的头像FRIOG
上一篇 2025年1月1日 17:04:57
下一篇 2025年1月1日 17:04:59

相关推荐

  • win7系统dns服务器故障怎么解决

    一、打开网络邻居后,打到本地连接,右键–属性  二、双击打开IPv4选项。 三、点击手动设置DNS单选框,在下面填入8.8.8.8。 四、然后,找到本地连接,…

    2025年1月1日
  • win10系统的dns未响应怎么处理

    解决方法: 1、首先,在桌面中按组合键“win+r”组合键打开运行,在输入框当中输入:services.msc点击确定打开服务。如图所示: 2、在服务列表当中找到“dns clie…

    2025年1月1日
  • 浏览器缓存,DNS,CDN及域名解析的过程是怎样的

    浏览器的缓存机制 当我们使用Ctrl+F5组合键刷新一个页面时,在HTTP的请求头中会增加一些请求头,它告诉服务端我们要获取最新的数据而不是缓存。 Cache-Control 这个…

    DNS解析 2025年1月1日
  • DNS域名解析之bind应用

    一、环境准备     虚拟机:vmware workstation 11      linux系统:centos7.3,cento…

    DNS解析 2025年1月1日
  • liunx下dns配置重启失效怎么办

    有时候能ping同ip地址,却ping不通域名,这就是dns没有配置的缘故。 但是DNS配置文件 /etc/resolv.conf 每次重启就会失效。 打开这个配置文件,发现有注释…

    DNS解析 2025年1月1日
  • 对Windows Server 的DNS服务器进行数据库备份

    最近看到一个关于对DNS进行进行数据备份的题目,查了好长时间发现DNS管理器并没有提供备份的功能,所以一直没能解决,终于在今天用Powershell解决了。 我先创建一个Chiso…

    2025年1月1日
  • DNS域名解析服务

    DNS系统在网络中的作用就是维护着一个地址数据库,它记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析和反向解析。本实验有一台linux…

    2025年1月1日
  • 轻松玩转“网络监测预警”

    当客户频频出现问题,怀疑受到×××,但查无实据时,该怎么办?大多数情况下往往不了了之。 对于客户而言,这类事情往往影响到它的核心业务,但又不涉及运营商的网络问题,导致黏性较差。 这…

    2025年1月1日
  • DNS隧道工具dns2tcp有什么用

    DNS隧道工具dns2tcp 在很多网络环境中,防火墙会限制出站流量,主机往往只能访问外网主机有限的几个端口,如DNS的53端口。这时,就可以通过DNS请求和响应机制,建立通信隧道…

    DNS解析 2025年1月1日
  • 怎样修改DNS服务器

    1、什么是DNS? DNS是指:域名服务器(Domain Name  Server)。在Internet上域名与IP地址之间是一一对应的,域名尽管便于人们回忆,但机器之间…

    DNS解析 2025年1月1日

发表回复

登录后才能评论