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) 1997, 2016, 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 파일의 오타 및 공백
불필요한 내용은 제거해주는것이 좋음
참조 :