기술 자료

TNSNames.ora를 사용하지 않는 경우 Oracle 연결 시 "ORA-12154" 오류 발생


게시 날짜: 01 Aug 2014
마지막 수정 날짜: 09 May 2022

문제

LDAP, TNSNAMES, 또는 EZCONNECT를 사용하는 컴퓨터에서 만든 Oracle 연결을 사용하거나 세 연결 매개 변수(Server, Service Port)가 모두 초기 연결 중에 구성된 경우, 연결이 더 이상 작동하지 않고 다음 오류가 발생할 수 있습니다.

"Oracle database error 12154: ORA-12154: TNS:could not resolve the connect identifier specified"(Oracle 데이터베이스 오류 12154: ORA-12154: TNS: 지정된 연결 식별자를 확인할 수 없음)

다른 두 매개 변수는 비워 둔 상태로 Server 매개 변수에 TNSNames.ora 파일의 서비스 이름을 사용하여 동일한 Oracle 데이터베이스에 연결하면 연결에 성공합니다.

이 동작은 다음 경우에 발생할 수 있습니다.
  • Tableau Desktop을 실행하는 컴퓨터 간에서 통합 문서를 공유하고, 이 중 하나에는 위 구성 파일이 있고 다른 하나에는 없습니다.
  • 위 구성 파일 중 하나를 사용하는 Tableau Desktop을 실행 중인 컴퓨터에서 구성 파일을 사용하지 않는 Tableau Server 인스턴스에 Oracle에 대한 라이브 연결을 게시합니다. (연결이 추출로 게시되면 연결이 작동하지만 새로 고쳐지지 않습니다.)

환경

  • Tableau Server
  • Tableau Desktop
  • Oracle

해결 방법

옵션 1:

Oracle 데이터베이스 관리자와 협의하여 Tableau Desktop 또는 Tableau Server를 실행하는 컴퓨터에서 Oracle 클라이언트에 대한 HOSTNAME 연결 유형을 허용하세요.

옵션 2:

다음 해결 방법으로 HOSTNAME 연결 유형을 허용할 수 있습니다.

  1. Tableau Desktop 또는 Tableau Server를 실행하는 컴퓨터에서 sqlnet.ora 파일을 찾습니다. 파일을 포함하는 폴더가 TNS_ADMIN 변수에 지정되어야 하고 TNSNames.ora 파일도 포함해야 합니다. 자세한 내용은 TNSNames.ora를 사용하도록 Oracle 연결 설정의 "TNS_Admin 환경 변수 설정" 그리고 Oracle FAQ의 Sqlnet.ora를 참조하세요.
    참고: 해당 폴더에 sqlnet.ora 파일이 포함되어 있지 않으면 sqlnet.ora 파일을 만드세요.
  2. sqlnet.ora 파일에서 NAMES.DIRECTORY_PATH 줄을 수정하여 다음을 지정하거나 sqlnet.ora 파일에 다음 줄을 추가합니다. 
    NAMES.DIRECTORY_PATH= (LDAP, TNSNAMES, HOSTNAME)
참고: Tableau Server 분산 환경에서 이 문제가 발생한 경우 모든 컴퓨터의 Tableau Server 설치에서 위 단계를 수행하세요. 서비스 이름과 포트 번호를 포함하고 연결 대화 상자의 "서버" 텍스트 필드에 FQDN(정규화된 도메인 이름)을 사용합니다.

원인

sqlnet.ora 파일은 Oracle 드라이버가 3개의 연결 매개 변수를 모두 사용하여 데이터베이스를 검색하는 것을 허용하지 않습니다.

TNSNAMES.ora 또는 LDAP.ora가 사용되고 있는 경우 이를 통해 Tableau 커넥터 외부에서 Oracle 연결 및 해당 매개 변수를 정의할 수 있습니다. "net_service_name" 부분은 서버 필드로 사용되며, 자격 증명과 함께 입력된 경우 TNSNAMES/LDAP 파일에서 서비스 이름과 포트 번호를 가져옵니다. TNSNAMES/LDAP을 사용하지 않는 컴퓨터는 연결이 작동할 수 있도록 서비스 이름과 포트 번호를 입력해야 합니다. 또한 서버에 사용자 지정 이름 대신 FQDN을 사용해야 합니다. 예를 들어 "oracle.test.tsi.lan"은 FQDN이고 "Oracle_01"은 net_service_name으로 사용할 수 있습니다.
이 문서로 문제가 해결되었습니까?