溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

域名解析導(dǎo)致數(shù)據(jù)庫(kù)連接緩慢(hosts :files dns)

發(fā)布時(shí)間:2020-08-18 18:22:01 來(lái)源:ITPUB博客 閱讀:468 作者:li__hl8888 欄目:關(guān)系型數(shù)據(jù)庫(kù)

因域名解析導(dǎo)致數(shù)據(jù)庫(kù)連接延遲分析

一、現(xiàn)狀記錄

[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對(duì)應(yīng)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
--說(shuō)明:ora11g是oracle 11g,ecp是oracle 10g
--當(dāng)前使用域名node1.srtcloud.com監(jiān)聽(tīng)
 
[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也通過(guò)域名訪問(wèn)
 
[oracle@node1 ~]$ more /etc/resolv.conf
nameserver 211.155.235.201
nameserver 211.155.235.188
--當(dāng)前有效的dns服務(wù)器
 
[oracle@node1 ~]$ more /etc/nsswitch.conf |grep hosts:
hosts:     files dns
--域名解析順序

二、數(shù)據(jù)庫(kù)正常工作分析
1、tns工作:客戶端通過(guò)tns訪問(wèn)數(shù)據(jù)庫(kù),tns配置的是域名訪問(wèn),所以需要解析,因?yàn)榇丝探馕龅捻樞蚴窍壤?etc/hosts解析,所以讀取hosts文件,獲取到ip,然后訪問(wèn)對(duì)應(yīng)數(shù)據(jù)庫(kù),和監(jiān)聽(tīng)接觸。
2、監(jiān)聽(tīng)工作:監(jiān)聽(tīng)的是域名,其實(shí)也是通過(guò)hosts解析成ip的
3、這里能夠正常的工作,是因?yàn)閔osts文件解析了域名

三、模擬數(shù)據(jù)庫(kù)訪問(wèn)延遲

[oracle@node1 ~]$ more /etc/nsswitch.conf |grep hosts:
hosts:     dns files
--先使用dns服務(wù)器解析,再使用hosts文件
 
[oracle@node1 ~]$ more /etc/resolv.conf
nameserver 11.1.1.1
--無(wú)效的dns服務(wù)器
 
[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.
--會(huì)在這里一個(gè)很長(zhǎng)的時(shí)間等待
 
[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)))
--也會(huì)一個(gè)長(zhǎng)時(shí)間的等待
 
--問(wèn)題原因:就是因?yàn)榻馕鲇蛎臅r(shí)候,先去訪問(wèn)dns服務(wù)器,因?yàn)樵搃p非dns服務(wù)器ip,所以會(huì)一直等待該ip超時(shí),
--然后訪問(wèn)hosts文件獲取ip地址(這個(gè)就是為什么我們登錄或者查看監(jiān)聽(tīng)狀態(tài)的時(shí)候,會(huì)出現(xiàn)如此長(zhǎng)的時(shí)間的等待)

其實(shí)因?yàn)閐ns延遲的現(xiàn)象有很多種,我這里只是舉了一個(gè)最簡(jiǎn)單,比較常見(jiàn)的例子,在處理因dns解析的監(jiān)聽(tīng)延遲的問(wèn)題上,可以參考下面幾點(diǎn):
1、如果非特殊情況,盡可能使用ip地址在監(jiān)聽(tīng)和tns中
2、如果是使用域名,請(qǐng)盡可能使用hosts解析,解析順序配置為files優(yōu)先(因?yàn)閐ns服務(wù)器有很多不確定,不可控因素)
3、如果一定要使用dns服務(wù)器解析,請(qǐng)把穩(wěn)定的dns服務(wù)器配置在第一項(xiàng),盡可能避免出現(xiàn)dns服務(wù)器不可達(dá)或者不存在該域名的現(xiàn)象

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI