ORA-12514 : listener does not currently know of service requested in connect descriptor

에러 코드: ORA-12514

에러 메시지: "TNS:listener does not currently know of service requested in connect descriptor" (TNS: 리스너가 연결 설명자에서 요청된 서비스를 현재 인식하지 못함)

 

발생 원인

ORA-12514 에러는 클라이언트가 데이터베이스에 연결을 시도할 때 Oracle Net 리스너(listener)가 요청된 서비스 이름(service name)을 인식하지 못할 때 발생합니다. 이는 주로 서비스 이름이 리스너 구성에 올바르게 등록되지 않았거나, 리스너가 아직 데이터베이스 인스턴스의 등록을 인지하지 못했을 때 발생합니다.

 

예제

다음은 클라이언트가 데이터베이스에 연결을 시도하는 상황에서 ORA-12514 에러가 발생할 수 있는 예입니다

 

-- 연결 시도
sqlplus user/password@dbname

 

여기서 dbname은 데이터베이스 서비스 이름입니다. 만약 리스너가 dbname 서비스를 인식하지 못한다면, 위 명령을 실행할 때 ORA-12514 에러가 발생할 수 있습니다.

 

해결 방법

이 에러를 해결하기 위해서는 다음과 같은 조치를 취할 수 있습니다:

  1. 리스너 구성 확인: listener.ora 파일을 확인하여 요청된 서비스 이름이 올바르게 등록되어 있는지 확인합니다.
  2. 서비스 등록 확인: 데이터베이스 인스턴스가 리스너에 올바르게 등록되어 있는지 확인합니다. 등록되지 않았다면, 데이터베이스를 재시작하여 자동 등록을 시도할 수 있습니다.
  3. tnsnames.ora 파일 검토: 클라이언트의 tnsnames.ora 파일 설정이 정확한지 확인합니다.
  4. 방화벽과 DB 접근 제어 해제 확인

대부분 3번, 4번에 의한 문제로 발생됩니다. 그렇기 때문에 DB에 문제가 있는 것으로 파악하기 보다는,  본인의 tnsnames.ora 파일, 방화벽, DB 접근 제어 해제가 정상적으로 되었는지 선 확인하는 것이 필요합니다. 

 

요약

 "ORA-12514: TNS:listener does not currently know of service requested in connect descriptor" 에러는 데이터베이스 서비스 이름이 리스너에 의해 인식되지 못할 때 발생합니다. 이 문제는 주로 리스너 구성 파일이나 데이터베이스 서비스 등록과 관련된 설정 오류 때문에 발생하며, 설정을 확인하고 필요한 조정을 함으로써 해결할 수 있습니다. 이러한 문제를 해결하기 위해서는 리스너와 데이터베이스의 서비스 이름 등록을 정확하게 관리해야 합니다.