본문 바로가기
ORACLE

ORA-12514 오류 해결 방법 | Oracle TNS Listener 오류 완벽 가이드

by samie 2025. 4. 5.
ORA-12514 오류 해결 방법 | Oracle TNS Listener 오류 완벽 가이드

ORA-12514: TNS: 리스너가 현재 요청된 서비스를 알지 못합니다

Oracle DB 연결 시 ORA-12514 오류는 매우 자주 발생하는 문제 중 하나입니다. 이 오류는 Oracle Listener가 요청된 Service Name을 알지 못할 때 나타납니다. 해결 방법은 의외로 간단하지만, 설정 파일을 정확히 이해해야 해결이 가능합니다.

1. ORA-12514 오류란?

ORA-12514: TNS: 리스너가 현재 요청된 서비스를 알지 못합니다 오류는 클라이언트가 데이터베이스에 연결을 시도할 때, 리스너가 요청된 서비스 이름을 인식하지 못하는 경우 발생합니다.

즉, Listener는 연결 요청은 받았지만, 어떤 DB 인스턴스로 연결해야 할지 알 수 없는 상태입니다.

2. 오류 발생 원인

주요 원인은 다음과 같습니다:

  • 🔍 SERVICE_NAME 값이 리스너에 등록되어 있지 않음
  • ✏️ TNSNAMES.ORA 파일의 서비스 이름 오타
  • 🔄 리스너 재시작 누락
  • ⚙️ 리스너가 인스턴스 정보를 동적으로 인식하지 못함

3. 해결 방법

✔️ 1. 서비스 이름 확인

SQL*Plus 또는 SQL Developer에서 아래 쿼리로 실제 서비스 이름을 확인하세요:


SELECT name FROM v$services;

이 결과값이 tnsnames.ora 파일의 SERVICE_NAME 항목과 일치해야 합니다.

✔️ 2. 리스너 상태 확인


lsnrctl status

출력 결과에 SERVICE_NAME이 포함되어야 합니다. 누락된 경우 리스너를 재시작합니다:


lsnrctl stop
lsnrctl start

✔️ 3. TNSNAMES.ORA 파일 수정

TNSNAMES.ORA에 정확한 서비스 이름이 기재되어 있는지 확인하세요.


MYDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = orcl.localdomain)
    )
  )

✔️ 4. 동적 등록 설정 확인

리스너 설정 파일 listener.ora에서 동적 등록이 가능하도록 설정되어 있는지 확인하세요.


SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl.localdomain)
      (SID_NAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/21.0.0/dbhome_1)
    )
  )

4. 설정 예제 및 접속 테스트

✔️ TNSNAMES.ORA 설정 예시


XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = XE)
    )
  )

✔️ 접속 명령어


sqlplus system/oracle@XE

✔️ 리스너 상태 결과 예시


Service "XE" has 1 instance(s).
  Instance "xe", status READY, has 1 handler(s) for this service...

위와 같이 SERVICE_NAME이 "XE"로 등록되어 있어야 오류가 발생하지 않습니다.

5. 추가 팁 및 주의사항

  • 📁 listener.ora 변경 후에는 반드시 리스너를 재시작하세요.
  • 🔧 DBCA로 생성된 DB는 자동으로 SERVICE_NAME이 등록됩니다. 수동 DB는 직접 등록 필요.
  • 🧩 서비스 이름과 SID는 다릅니다. SERVICE_NAME을 정확히 입력해야 합니다.
  • 🧼 파일 오타 및 공백 주의: 특수문자나 줄바꿈 오류도 영향을 줄 수 있습니다.

🔚 마무리

ORA-12514 오류는 대부분 서비스 이름 불일치 문제로 인해 발생합니다. 정확한 SERVICE_NAME 확인과 리스너 등록 상태 점검으로 대부분 해결이 가능합니다.

이 글이 도움이 되셨다면 댓글이나 좋아요로 피드백 부탁드립니다. Oracle 설정 관련 포스팅은 시리즈로 계속 업데이트 예정이니 즐겨찾기 해주세요!