프린트 하기

OS환경 : Oracle Linux 6.8 (64bit)


DB 환경 : Oracle Database 12.2.0.1


에러 : TNS-03505: Failed to resolve name

리스너를 켜고 tnsping을 통해 내부 접속테스트를 시도하던 중 아래 메세지 발생

1
2
3
4
5
$ tnsping orcl
Used parameter files:
/oracle/product/12.2.0/db_1/network/admin/sqlnet.ora
 
TNS-03505: Failed to resolve name



해결 방법 : tnsnames.ora 오타 및 공백 확인 또는 재생성

tnsnames.ora 파일 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
$ cat tnsnames.ora 
ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ORCL)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
    )
  )
 
 
CUSTOMDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = CUSTOMDB)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = customdb)
    )
  )
      
 
#IMSI
OSCOM =
  (DESCRIPTION =
    (LOAD_BALANCE = OFF)
    (FAILOVER = ON)
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = OSCOM1)(PORT = 2521))
       (ADDRESS = (PROTOCOL = TCP)(HOST = OSCOM2)(PORT = 2521))
    )
    (CONNECT_DATA =
       (SERVER = DEDICATED)
      (SERVICE_NAME = OSCOM)
    )
  )

사용하는 tns는 ORCL 하나 뿐인데 사용하지 않는 tns들이 존재함을 확인

사용하지 않는 tns에 불필요한 공백 및 주석이 있음


해당 라인 모두 제거

1
2
3
4
5
6
7
8
9
10
11
$ cat tnsnames.ora 
ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ORCL)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCL)
    )
  )

깔끔하게 사용하는 ORCL만 남아있음


tnsping 재시도

1
2
3
4
5
6
7
8
9
10
11
12
13
$ tnsping ORCL
 
TNS Ping Utility for Linux: Version 12.2.0.1.0 - Production on 18-FEB-2019 10:28:23
 
Copyright (c) 19972016, Oracle.  All rights reserved.
 
Used parameter files:
/oracle/product/12.2.0/db_1/network/admin/sqlnet.ora
 
 
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = ORCL)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL)))
OK (0 msec)

정상적으로 tnsping이 되는것을 확인 가능함


이렇게 한뒤에도 제대로 되지 않으면

tnsnames.ora 파일을 새로 생성한 뒤 기존 tnsnames.ora에 있는 내용을 복사해 와서

불필요한 공백이 더있는지 확인한뒤 접속시도하면 됨



원인 : tnsnames.ora 파일의 오타 및 공백

불필요한 내용은 제거해주는것이 좋음



참조 :