TNS-12543 / TNS-00513 오류: 호스트 연결 실패 원인과 점검·복구 방법
Oracle 접속 또는 tnsping 수행 중 TNS-12543, TNS-00513 오류가 함께 나타나는 경우가 많습니다.
이 조합은 대체로 “리스너 문제” 이전 단계인 목적지 호스트에 네트워크 레벨로 도달하지 못했다는 의미로 해석됩니다.
운영 환경에서는 DNS/라우팅/방화벽/네트워크 분리(망간) 변경이 원인인 경우가 많으므로,
호스트 도달성 → 포트 → 리스너/서비스 순서로 점검하면 빠릅니다.
따라서 리스너 재기동부터 하기보다, 먼저 ping/tracepath + 포트 체크로 “갈 수 있냐”를 확인하는 게 시간 절약입니다.
개요
TNS-12543은 “destination host unreachable(목적지 호스트 도달 불가)” 상황에서 발생하는 대표 오류이며, TNS-00513은 Oracle Net 계층에서 같은 내용을 보조적으로 표기하는 경우가 많습니다. 즉, 아래 중 하나일 가능성이 큽니다.
- HOST가 잘못됨(DNS 오해결/오해석, 잘못된 IP 매핑)
- 라우팅/게이트웨이 문제(서브넷/망간 경로 없음)
- 방화벽/보안장비에서 ICMP/ TCP 차단(특히 1521 등 포트)
- 목적지 서버 다운 또는 NIC/네트워크 장애
- 클러스터/SCAN/VIP 변경 이후 클라이언트 tnsnames.ora 미반영
환경
- 클라이언트: SQL*Plus / 애플리케이션 / 배치 서버
- 접속: tnsnames.ora 또는 EZCONNECT(호스트:포트/서비스)
- 기본 포트: 1521(환경에 따라 상이)
- 서버: 단일 인스턴스 또는 RAC(Scan/VIP 포함 가능)
증상
다음과 같은 출력 패턴이 자주 보입니다.
TNS-12543: TNS:destination host unreachable
TNS-00513: Destination host unreachable
주의: 만약 TNS-12541 (no listener) 또는 ORA-12514가 함께 보인다면,
“호스트 도달은 되지만 리스너/서비스가 문제”인 케이스로 분기됩니다.
본 문서는 TNS-12543/TNS-00513 중심으로 “도달 불가” 케이스를 우선 다룹니다.
1차 점검
1) tnsnames.ora에서 HOST/PORT 확인
# 클라이언트에서 tnsnames.ora 확인(경로는 환경별)
# $TNS_ADMIN/tnsnames.ora 또는 $ORACLE_HOME/network/admin/tnsnames.ora
<ALIAS> =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db-host.example.com)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orclpdb1)
)
)
2) DNS/호스트 해석 확인(클라이언트)
# Linux
getent hosts db-host.example.com
nslookup db-host.example.com
# Windows
nslookup db-host.example.com
3) 목적지 도달성 확인(ping/trace)
# Linux
ping -c 3 db-host.example.com
tracepath db-host.example.com # 또는 traceroute
# Windows
ping db-host.example.com
tracert db-host.example.com
4) 포트 오픈 여부 확인(1521 등)
# Linux
nc -vz db-host.example.com 1521
# 또는
telnet db-host.example.com 1521
# Windows PowerShell
Test-NetConnection db-host.example.com -Port 1521
2) ping/trace가 끊김이면: 라우팅/망간 정책/방화벽(네트워크팀) 이슈 가능성 큼.
3) ping은 되는데 포트가 닫힘이면: 방화벽/보안장비 또는 서버 리스너 미기동/바인딩 문제로 이동.
심화 분석
A. 목적지 서버 네트워크 상태 확인(서버 측)
# 서버에서 NIC/라우팅 확인(Linux 예시)
ip a
ip r
ss -lntp | grep 1521
B. 리스너가 특정 IP에만 바인딩된 경우
서버가 멀티 NIC이거나 VIP/SCAN이 섞여 있을 때, 리스너가 특정 IP에만 바인딩되면 클라이언트가 다른 IP로 접속을 시도하다 실패할 수 있습니다.
# 서버에서
lsnrctl status
C. RAC/SCAN/VIP 변경 이후 접속 정보 불일치
RAC 환경에서 SCAN 주소 또는 VIP가 변경되었는데, 클라이언트의 tnsnames.ora가 이전 정보를 가리키면 “도달 불가”로 떨어질 수 있습니다. 특히 DR/전환 작업 후 흔하게 발생합니다.
D. MTU/네트워크 장비 이슈(간헐·특정 구간만 실패)
간헐적으로만 TNS-12543이 발생하거나 특정 대역에서만 발생한다면, 방화벽 정책 외에도 MTU mismatch, L3 장비 라우팅 정책, NAT 구간 문제를 의심해볼 수 있습니다.
E. 서버 다운/리소스 문제
서버가 살아 있으나 과부하로 네트워크 응답이 지연되면, 클라이언트에서 도달 불가처럼 보이는 경우도 있습니다. 이때는 서버의 시스템 로그/리소스(네트워크 큐, 커넥션 제한)를 함께 봐야 합니다.
복구
1) 잘못된 HOST/서비스 정정
- DNS가 잘못된 IP를 반환하면: DNS 레코드 수정 또는 hosts 파일 임시 우회
- tnsnames.ora HOST를 실제 접속 가능한 VIP/SCAN/서버 IP로 수정
- 포트가 1521이 아니라면: 실제 리스너 포트로 수정
2) 방화벽/보안장비 정책 반영
- 클라이언트 → DB 서버 TCP(포트 1521 등) 허용
- 망간(내부망↔DMZ↔외부망) 구간이 있으면 구간별 허용 정책 확인
- 서버 측 OS 방화벽(iptables/firewalld)에서도 동일 포트 허용
3) 리스너 기동 및 바인딩 확인
# 서버에서
lsnrctl status
lsnrctl start
포트는 열려 있는데 접속이 안 되면, 리스너가 올바른 IP/포트에 바인딩되어 있는지, 그리고 서비스가 정상 등록되어 있는지(정적/동적 등록)를 추가로 확인합니다.
4) 최종 검증(클라이언트)
tnsping <ALIAS>
sqlplus user/password@<ALIAS>
# EZCONNECT 사용 시 예시
sqlplus user/password@//db-host.example.com:1521/orclpdb1
재발 방지
- 변경관리: DNS/SCAN/VIP/방화벽 정책 변경 시 DB 접속 테스트를 필수 항목으로 포함
- 접속 정보 표준화: 서비스명/포트/SCAN을 문서로 고정, 클라이언트 배포 자동화(형상관리)
- 모니터링: 1521 포트 가용성, 리스너 상태, 네트워크 지연/패킷 손실을 상시 감시
- 이중 경로: 가능하면 DR/대체 경로(다중 DNS, 다중 회선, VIP 이중화) 구성 검토
- 로그 수집: 장애 시점의 클라이언트 네트워크 로그 + 서버 리스너 로그를 함께 수집하도록 절차화
운영 환경에서는 “DB가 문제”로 보이지만 실제로는 “DNS/방화벽/라우팅 변경”인 경우가 가장 많습니다. 접속 실패 이벤트가 발생하면 네트워크 레벨 테스트 결과(ping/traceroute/port check)를 함께 남겨두면 원인 규명이 빨라집니다.
부록: 장애 수집용 커맨드 모음
클라이언트(리눅스)
date
echo $TNS_ADMIN
cat $TNS_ADMIN/tnsnames.ora
getent hosts db-host.example.com
ping -c 3 db-host.example.com
tracepath db-host.example.com
nc -vz db-host.example.com 1521
tnsping <ALIAS>
서버(리눅스)
date
hostname -f
ip a
ip r
ss -lntp | grep 1521
lsnrctl status
'지식 공유 > DBMS' 카테고리의 다른 글
| ORA-16055 FAL request rejected 오류: Data Guard 갭 복구 실패 (0) | 2026.01.25 |
|---|---|
| [ORACLE] CSScan DMU TDE (0) | 2025.12.27 |
| [ORACLE] PLS-00306 조치 절차 (0) | 2025.12.24 |
| [PostgreSQL] PANIC 체크포인트 레코드 오류 (0) | 2025.12.21 |
| [MSSQL] Error 3960 Snapshot Update Conflict (0) | 2025.12.21 |