오라클 DBlink DNS timeout

김철현·2021년 10월 8일
0

Linux

목록 보기
2/7
post-thumbnail

💡 장애현상

오라클 세션 연결 후 DBLink 테이블 조회 시 약 25초후 조회되는 현상 발생
한번 조회 후엔 정상 작동

📝 장애원인

오라클 DBLink DNS 조회 시 1차로 /etc/hosts 파일 조회 후 2차로 /etc/resolv.conf를 조회하는데 모두 응답이 없어 25초 timeout 발생 후 로컬 조회하여 세션 생성

tnsnames.ora

/oracle/product/19.3.0/dbhome_1/network/admin/tnsnames.ora
파일에 HOST가 IP가 아닌 호스트네임으로 설정되어 있음

TESTSMS =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = testdb)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = testsms)
    )
  )

hosts

DNS없이 도메인에 대한 IP 질의 파일:
/etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

resolv.conf

사용할 네임서버 설정 파일:
/etc/resolv.conf

# Generated by NetworkManager
nameserver 164.124.109.142
nameserver 203.248.252.2

resolv.h

/usr/include/resolv.h

# define RES_TIMEOUT      5       /* min. seconds between retries */
# define RES_DFLRETRY     2       /* Default #/tries. */

dig.h

dig.h 소스

//DNS 일반 질의는 UDP
/*% Default UDP Timeout */
#define UDP_TIMEOUT 5 

1차 네임서버1 시도: timeout 5sec (UDP_TIMEOUT)
1차 네임서버2 시도: timeout 5sec (UDP_TIMEOUT)
1차 실패 후 대기: 5sec (RES_TIMEOUT)
2차 네임서버1 시도: timeout 5sec (UDP_TIMEOUT)
2차 네임서버2 시도: timeout 5sec (UDP_TIMEOUT)
=> 총 25sec 후 로컬 조회

✍ 장애처리

DNS 조회하지 않고 바로 로컬 조회하도록 수정
-> 아래 명령으로 resolv.conf 파일명 변경

mv /etc/resolv.conf /etc/resolv.bak.conf
profile
리팩토링만이 살 길이다

0개의 댓글