programing

SQL Developer에 새 연결을 추가할 때 Oracle TNS 이름이 표시되지 않음

jooyons 2023. 3. 16. 21:21
반응형

SQL Developer에 새 연결을 추가할 때 Oracle TNS 이름이 표시되지 않음

SQL Developer를 사용하여 Oracle 데이터베이스에 연결하려고 합니다.

및 배치tnsnames.ora
C:\Oracle\product\11.1.0\client_1\Network\Admin

tnsnames.ora에서 다음 형식을 사용하고 있습니다.

dev =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.XXX.XXX)(PORT = XXXX))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = idpdev2)
    )
  )

SQL Developer에서 새 연결을 생성하려고 하면 TNS 이름이 옵션으로 표시되지 않습니다.

제가 놓친 게 있나요?

SQL Developer는 다음 위치에서 tnsnames.ora 파일을 이 순서로 찾습니다.

  1. $HOME/.tnsnames.ora
  2. $TNS_ADMIN/tnsnames.ora
  3. 레지스트리의 TNS_ADMIN 검색 키
  4. /etc/tnsnames.ora(Windows 이외)
  5. $ORACLE_HOME/network/admin/tnsnames.ora
  6. 로컬 머신\소프트웨어\ORACLE\ORACLE_HOME_KEY
  7. 로컬 머신\소프트웨어\ORACLE\ORACLE_HOME

되고 있는지 Developer 합니다.show tns

tnsnames.ora 파일이 인식되지 않으면 다음 절차를 수행합니다.

  1. tnsnames.ora 파일이 포함된 폴더를 가리키도록 TNS_ADMIN이라는 환경변수를 정의합니다.

    Windows 에서는 [컨트롤 패널(Control Panel)]> [시스템(System)]> [상세 시스템 설정(Advanced System settings)]> [환경변수(Environment Variables)]으로 이동합니다.

    Linux 에서는 홈디렉토리의 .profile 파일에 TNS_ADMIN 변수를 정의합니다.

  2. OS가 이 환경변수를 인식하고 있는지 확인합니다.

    Windows 명령줄에서: echo %TNS_ADM입력 %

    Linux에서 : 에코 $TNS_ADM입력

  3. SQL Developer

  4. SQL Developer에서 Connections를 오른쪽 클릭하고 New Connection...선택합니다.드롭다운 상자에서 연결 유형으로 TNS를 선택합니다.tnsnames.ora에서 입력한 내용이 여기에 표시됩니다.

SQL Developer를 엽니다.[툴(Tools)]-> [설정(Preferences)]-> [데이터베이스(Databases)]-> [상세설정(Advanced)]순서로 이동하여 Tnsnames 디렉토리를 명시적으로 설정합니다.

TNSNAMES가 올바르게 설정되었고 Toad, SQL*Plus 등에 연결할 수 있었지만 SQL Developer를 작동시키려면 이 작업을 수행해야 했습니다.인스톨도 귀찮아 Windows 7 의 문제일 가능성이 있습니다.

TNSPING을 실행하여 접속을 체크하면 항상 tnsnames.ora 파일의 위치를 확인할 수 있습니다(9i 이후).

C:\>tnsping dev

TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 08-JAN-2009 12:48:38

Copyright (c) 1997, 2005, Oracle.  All rights reserved.

Used parameter files:
C:\oracle\product\10.2.0\client_1\NETWORK\ADMIN\sqlnet.ora


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = XXX)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = DEV)))
OK (30 msec)

C:\>

경우에 따라서는 tnsnames.ora로 입력한 엔트리에 문제가 있을 수 있습니다.시스템에서 찾을 수 없는 것은 아닙니다.단, tns_admin 환경변수를 설정하는 것은 좋은 일입니다.이는 여러 Oracle 홈이 있는 시스템에서 어떤 tnsnames 파일이 사용되는지 정확하게 판단할 때 발생하는 불가피한 문제를 피하기 때문입니다.

SQLDeveloper 참조Tools --> Preferences( 래 ( ( ( ( ( )

여기에 이미지 설명 입력

기본 설정 옵션expand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory여기서 tnsnames.ora가 표시됩니다.
[확인] 을 클릭합니다.
아래 그림과 같이.

여기에 이미지 설명 입력

완료했습니다!

이것으로 TNSnames 옵션을 사용하여 접속할 수 있게 되었습니다.

Jason이 언급한 단계는 매우 좋으며 효과가 있을 것입니다.그러나 SQL Developer에는 약간의 반전이 있습니다.tnsnames.ora 파일을 처음 읽을 때 연결 사양(호스트, 서비스 이름, 포트)을 캐시합니다.tnsname.ora 파일에서 원래 엔트리가 삭제되어도 사양은 무효화되지 않습니다.SQL Developer가 종료되고 재시작된 후에도 캐시는 유지됩니다.이것은 그 상황을 처리하는 비논리적인 방법이 아니다.tnsnames.ora 파일을 일시적으로 사용할 수 없는 경우에도 SQL Developer는 원래 사양이 그대로 적용되어 있는 한 연결을 확립할 수 있습니다.문제는 그들의 다음 작은 반전에 있다.SQL Developer는 연결을 해결할 때 tnsnames.ora 파일의 서비스 이름을 대소문자를 구분하는 값으로 처리합니다.따라서 파일 내에 ABCD.world라는 엔트리가 있었는데 abcd라는 새 엔트리로 대체한 경우.SQL Developer는 ABCD.world 연결 사양을 업데이트하지 않습니다.- ABCD를 처리합니다.서로 다른 연결고리로 만들 수 있습니다.Oracle 제품이 대소문자를 구분하지 않는 Oracle 개발 파일 형식의 콘텐츠를 대소문자를 구분하는 것으로 취급하는 것은 놀라운 일이 아닙니다.

SQL Developer에서 [Tools]-> [ Preferences ]-> [ Datababae ]-> [ Advanced ]-> [ Tnsname ]디렉토리를 tnsname.ora 를 포함한 디렉토리로 설정합니다.

위의 변경은 제 경우에는 전혀 영향을 주지 않았습니다.명령 창에서 TNS_PIG를 실행할 수 있었지만 SQL Developer는 tnsnames.ora의 위치를 찾을 수 없었습니다.

제 경우(Windows 7 - 64비트 - Enterprise )의 문제는 Oracle instra가 잘못된 버전의 SQL Developer에 대한 시작 메뉴 바로 가기를 가리켰다는 것입니다.설치 관리자에는 3개의 SQL Developer 인스턴스가 포함되어 있습니다.1개는 %ORACLE_HOME%\client_1\sqldeveloper\에 있고 2개는 %ORACLE_HOME%\client_1\sqldeveloper\bin\에 있습니다.

installer는 bin 디렉토리에서 단순히 기능하지 않는 버전을 가리키는 시작 메뉴 바로 가기를 설치했습니다.SQL Developer를 기동할 때마다 패스워드를 입력하도록 요구됩니다.접속 메커니즘으로 TNS를 선택했을 때 선택한 내용이 기억나지 않고 공백 목록이 표시됩니다.또한 다른 투고에서 참조되는 데이터베이스 상세 설정의 TNS 디렉토리 필드도 없습니다.

이전 시작 숏컷을 던지고 %ORACLE_HOME%\client_1\sqldeveloper\sqldeveloper.exe 바로가기를 설치했습니다.그 변경으로 제 경우는 문제가 해결되었습니다.

Windows 에서는, 다음의 항목에 대해서, 「읽기 & 실행」의 선택을 추가할 필요가 있습니다.

  • 폴더 c:\folder\TNS_ADMIN
  • 파일 c:\filename\TNS_ADMIN\tnsnames.ora

Windows 에서는, 다음과 같이 표시됩니다.

C:\>set TNS
TNS_ADMIN=c:\oracle\TNS_ADMIN

이제 SQL Developer가 목록에 TNS를 표시합니다.

언급URL : https://stackoverflow.com/questions/425029/oracle-tns-names-not-showing-when-adding-new-connection-to-sql-developer

반응형