본문 바로가기
ORACLE

ORA-12154 오류 원인과 해결 방법 | Oracle TNS 오류 완벽 가이드

by samie 2025. 4. 4.
ORA-12154 오류 원인과 해결 방법 | Oracle TNS 오류 완벽 가이드

ORA-12154: TNS: 지정된 접속 식별자를 확인할 수 없습니다

Oracle을 사용하면서 ORA-12154 오류를 경험하신 적 있으신가요? 이 오류는 데이터베이스에 연결을 시도할 때 자주 발생하며, 주로 TNS 설정 문제에서 비롯됩니다.

1. ORA-12154란?

ORA-12154: TNS: 지정된 접속 식별자를 확인할 수 없습니다 오류는 Oracle 클라이언트가 tnsnames.ora 파일에서 지정된 서비스 이름 (TNS alias)을 찾을 수 없을 때 발생합니다. 이 오류는 Windows, Linux 환경 모두에서 발생할 수 있습니다.

2. 오류 발생 원인

이 오류의 주요 원인은 다음과 같습니다:

  • 1️⃣ TNSNAMES.ORA 파일 내 오타 또는 누락
  • 2️⃣ 환경 변수 ORACLE_HOME 또는 TNS_ADMIN 경로 오류
  • 3️⃣ SQL*Plus 또는 다른 도구에서 잘못된 접속 문자열 사용
  • 4️⃣ 클라이언트가 여러 개의 Oracle 인스턴스를 참조 중일 때
  • 5️⃣ 접속하려는 TNS alias가 지정되지 않았을 경우

3. 해결 방법

문제 해결을 위해 다음 단계를 하나씩 확인하세요:

✔️ 1. TNSNAMES.ORA 파일 확인


# 위치 예: C:\oracle\product\12.2.0\dbhome_1\network\admin\tnsnames.ora
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

서비스 이름(예: ORCL)이 정확히 일치하는지 확인하세요.

✔️ 2. 환경 변수 확인

Windows에서 환경 변수 > 시스템 변수에 다음 항목이 설정되어야 합니다:

  • ORACLE_HOME: Oracle이 설치된 디렉토리
  • TNS_ADMIN: TNSNAMES.ORA가 위치한 경로

✔️ 3. 접속 문자열 점검

SQL*Plus 또는 애플리케이션에서 사용하는 접속 문자열이 정확한지 확인합니다.


sqlplus username/password@ORCL

여기서 ORCL은 TNSNAMES.ORA에 등록된 alias여야 합니다.

✔️ 4. Oracle 인스턴스가 다수 설치된 경우

여러 버전의 Oracle이 설치되어 있다면 PATH 우선순위를 조정하세요.


# cmd에서 Oracle Net Manager 실행
%ORACLE_HOME%\bin\netmgr

4. TNS 설정 예제

아래는 일반적인 TNSNAMES.ORA 설정 예시입니다.


MYDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.10)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = mydb.local)
    )
  )

접속은 다음과 같이 할 수 있습니다:


sqlplus hr/hr123@MYDB

5. 추가 팁 및 주의사항

  • 🚫 파일 확장자.ora.txt가 되지 않도록 주의하세요.
  • 🔍 Oracle Net Manager로 설정 파일을 검증하세요.
  • 🔁 시스템 재시작 없이 적용하려면, SQL*Plus를 완전히 종료 후 다시 실행하세요.
  • 🧪 Linux의 경우 $ORACLE_HOME/network/admin 경로를 확인하세요.

🔚 마무리

ORA-12154 오류는 대부분 tnsnames.ora 또는 환경 변수 설정 문제에서 비롯됩니다. 위 가이드를 참고해 하나씩 점검해보면 대부분의 오류는 쉽게 해결할 수 있습니다.

Oracle 네트워크 설정은 초보자에게는 다소 복잡할 수 있지만, 이번 포스팅을 통해 여러분의 문제가 해결되길 바랍니다.

도움이 되셨다면 댓글 또는 공감 부탁드립니다 😊