source

관련 tnsnames.ora 파일의 위치 확인

lovecheck 2023. 8. 25. 23:43
반응형

관련 tnsnames.ora 파일의 위치 확인

32비트와 64비트 Oracle 11g 드라이버를 모두 설치했습니다.PC에서 "tnsnames.ora"라는 이름의 파일을 검색하여 다음 위치에서 3개를 찾았습니다.

1. C:\Oracle\product\11203_32bit\CLIENT_1\NETWORK\ADMIN
2. C:\Oracle\product\11203_64bit\CLIENT_1\NETWORK\ADMIN
3. C:\Windows\TNS

tnsnames.ora 파일의 세 번째 위치가 있다는 것은 저를 놀라게 합니다.

PC에 다음 Oracle 클라이언트가 설치되어 있습니다.

"C:\Program Files (x86)\Quest Software\Toad for Oracle 11.6\Toad.exe"
"C:\Program Files\Devart\dbForge Studio Express for Oracle\dbforgeoracle.exe"

각 프로그램의 위치(Program Files(x86) vs. c:\Program Files)를 기준으로 볼 때 32비트 프로그램인 Toad는 32비트 드라이버를 사용하고 dbForge는 64비트 드라이버를 사용해야 합니다.

dbForge는 tnsnames. 또는 #2 또는 #3 위치에 있는 파일을 사용하는 것 같습니다.하나를 제외한 모든 tns 파일의 이름을 체계적으로 바꾼 다음 앱으로 새 연결을 만들 때 파일에서 읽은 연결 이름을 사용할 수 있는지 확인하여 이를 알고 있습니다.

그러나 Toad는 위치 #3에 있는 tnsnames.ora 파일만 인식하는 것 같고 위치 2에 있는 tnsnames.ora 파일은 전혀 인식하지 못했습니다! (32비트 프로그램이었기 때문에 위치 2에 있는 tns 파일을 인식할 것이라고 예상하지 못했습니다.)Toad 테스트를 요약하면 Toad는 위치 3에서 tns 파일만 인식했습니다.

다른 동료들은 컴퓨터의 위치 3에 tns 파일이 없습니다.왜 그런지 모르겠어요.Toad를 실행하면 다음 2개의 Home이 표시되며 32비트 Home이 활성화됩니다.

OraClient11g_home1 (11.2.0.3)
    ORACLE_HOME:C:\app\C39293\product\11.2.0\client_1
    ORACLE_HOME_NAME:OraClient11g_home1
    ORACLE_HOME_KEY:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient11g_home1
    ORACLE_SID:
    NLS_LANG:AMERICAN_AMERICA.WE8MSWIN1252
    SQLPATH:
    LOCAL:
    Client DLL:C:\app\C39293\product\11.2.0\client_1\oci.dll
    TNSNames.ora:
    SQLNet.ora:
    LDAP.ora:
    Login.sql:
    GLogin.sql:
    In system PATH:No
    Home is valid:No
OraClient11g_home1_32bit (11.2.0.3)
    ORACLE_HOME:c:\oracle\product\11203_32bit\CLIENT_1
    ORACLE_HOME_NAME:OraClient11g_home1_32bit
    ORACLE_HOME_KEY:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient11g_home1_32bit
    ORACLE_SID:
    NLS_LANG:AMERICAN_AMERICA.WE8MSWIN1252
    SQLPATH:c:\oracle\product\11203_32bit\CLIENT_1\dbs
    LOCAL:
    Client DLL:c:\oracle\product\11203_32bit\CLIENT_1\bin\oci.dll
    TNSNames.ora:
    SQLNet.ora:
    LDAP.ora:
    Login.sql:
    GLogin.sql:c:\oracle\product\11203_32bit\CLIENT_1\sqlplus\admin\glogin.sql
    In system PATH:Yes

Q1: OraClient11g_home1이 64비트 홈입니까, 아니면 Oracle 클라이언트가 두 개 설치되어 있습니까?

Q2: 왜 32비트 TOD는 위치 #3에만 있는 tns를 사용하지 않고 위치 #1에 있는 tns를 사용하지 않습니까?

Q3: 위치 3의 tns 파일에 남겨두면 dbForge와 Toad가 모두 작동하지만 tns 정보를 한 시스템에서 다른 시스템으로 이동하는 방법을 정확하게 이해할 수 있는 이유를 알고 싶습니다.

오라클에 따르면 이 위치는 검색됩니다.tnsnames.ora응답.sqlnet.ora그리고.ldap.ora:

  1. 현재 작업 디렉터리(PWD/CWD)에 있는 Oracle Net 파일
  2. TNS_ADMIN 사용자 로 정의된 경우
  3. TNS_ADMIN
  4. TNS_ADMIN에 .
  5. Net에서 오라클 할 수 있습니다.%ORACLE_HOME/network|net80\admin 위치Oracle 기본위)

그러나 각 응용 프로그램/드라이버가 이 목록을 따르는지는 잘 모르겠습니다. 목록은 Oracle Document 111942.1에서 Oracle 9i를 참조하여 얻었기 때문에 오래되었을 수 있습니다.

Database Net Services 관리자 가이드에서 순서는 다음과 같습니다.

  1. TNS_ADMIN에 의해 된 변수는 다음과 .
  2. TNS_ADMIN레스트정경우된의에리지경우▁definedTNS_ADMIN환경 변수가 없음)
  3. %ORACLE_HOME%/network/admin 디토경리우(렉경())TNS_ADMIN환경 변수가 없음)

다음에 대한 환경 변수를 정의할 것을 권장합니다.TNS_ADMIN하나의 tnsnames.ora 파일만 사용합니다.안전한 쪽으로 가기 위해 레지스트리 값도 확인합니다.

파일이 위치하지 않은 경우%ORACLE_HOME%\network\admin저는 그것에 대한 상징적인 링크를 만드는 것을 추천합니다 - 단지 매우 안전한 편에 있기 위해서. 예를 들어.mklink /d %ORACLE_HOME%\network\admin c:\Oracle\common\settings\admin

또한 tnsnames.or 파일을 가지고 "재생"할 필요가 없습니다.Microsoft Sysinternals의 Process Monitor를 사용하여 각 파일 액세스를 모니터링할 수 있습니다. 즉, 필터는Path contains tnsnames

갱신하다

컴퓨터에서 테스트를 실행하면 다음과 같은 순서가 표시됩니다.

  1. 환수변TNS_ADMIN
  2. 키:HKEY_CURRENT_USER\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
  3. 키:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN응답.HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN

    -> 다음과 같은 경우에만TNS_ADMIN환경 변수가 설정되지 않았습니다.

  4. %ORACLE_HOME%\network\admin
  5. 현재 디렉토리(애플리케이션이 있는 디렉토리와 다를 수 있음)
  6. 응용프로그램이 있는 폴더

업데이트 2

분명히 수정 검색은 없습니다. 공급자/드라이버에 따라 다릅니다.Oracle 버전에 따라 다를 수도 있습니다.

예를 들어 오라클 HTTP 서버가 읽음TNS_ADMIN에서 opmn.xml구성 파일.

또 다른 예는 ODP입니다.NET 관리 드라이버(Oracle).Managed Data Access) 베타 버전, Oracle ManagedTNS Name에서 이 주문을 찾았습니다.

  1. 소스 별칭은 'dataSources' .<oracle.manageddataaccess.client>을 참조하십시오 파일 NET 구성즉일파즉,,machine.config,web.config,user.config).
  2. 에 있는 tnsnames.ora로 지정된 에 있는 TNS_ADMIN . . . . . . . . . . . . . . . . . ..NET 구성 파일.
  3. 에 있는 tnsnames.ora동한디렉파존일과 .exe.
  4. 에 있는 tnsnames.ora파일은 있파일는에 .%TNS_ADMIN%
    서)%TNS_ADMIN%는 환경 변수 설정입니다.
  5. 에 있는 tnsnames.ora파일은 있파일는에 .%ORACLE_HOME%\network\admin
    서)%ORACLE_HOME%는 환경 변수 설정입니다.

공식 문서(12c Release 4(12.1.0.2.4))에는 다음과 같이 나와 있습니다.

  1. 에 있는 dataSources아래섹의 에 있는 .<oracle.manageddataaccess.client>을 참조하십시오 파일 NET 구성즉일파즉,,machine.config,web.config,user.config).
  2. 에 있는 tnsnames.ora로 지정된 에 있는 TNS_ADMIN . . . . . . . . . . . . . . . . . ..NET 구성 파일.위치는 절대 또는 상대 디렉토리 경로로 구성될 수 있습니다.
  3. 에 있는 tnsnames.ora동한디렉파존일과 .exe.

하지만 ODP로 만든 몇 가지 테스트를 바탕으로 합니다.Driver (는 NET 관리 드라이버(4.121.2.0).%ORACLE_HOME%\network\admin그리고.TNS_ADMIN환경 변수를 고려해야 합니다.설명서가 100% 정확하지 않은 것처럼 잠깁니다.

경로만 놓고 보면 의심스러운 대로 두 개의 클라이언트가 설치되어 있습니다(Toad 및 dbforge는 클라이언트가 아니라 도구이므로 용어가 약간 다릅니다).하나는 32비트, 다른 하나는 64비트.Toad는 설치 경로를 기준으로 32비트로 표시되지만 Toad를 실행한 후 도움말|지원 번들로 이동합니다.상단 헤더는 확인을 위해 "APPLICATION INFORMATION(32비트)" 또는 "APPLICATION INFORMATION(64비트)"로 표시됩니다.Toad 11.6은 64비트 버전을 최초로 도입했습니다.

Toad에는 동일한 플랫폼용 Oracle 클라이언트만 표시됩니다.따라서 64비트 클라이언트는 Toad와 무관합니다.C:\Windows\TNS는 TNS_ADMIN 폴더의 홀수 위치와 Toad에서 볼 수 있는 사실을 고려할 때 TNS_ADMIN 폴더에 사용되는 폴더로 나타납니다.명령 프롬프트에서 SET TNS_ADMIN을 실행하고 "를 보고하는지 확인합니다.TNS_ADMIN=C:\Windows\TNS" 이 경우 모든 도구가 해당 tnsnames.ora를 사용해야 합니다.이는 네트워크 구성 파일이 들어 있는 폴더를 가리킬 경우 글로벌 재정의입니다.TNS_ADMIN을 환경 변수로 설정하지 않은 경우 Oracle 루트 레지스트리(HKEY_LOCAL_MACHINE\Software\Oracle)에서 TNS_ADMIN을 찾습니다.

모든 도구에 공통된 연결 세트를 사용하면 tnsnames.ora 파일을 모두 삭제합니다.저는 또한 그 C:\Windows\TNS 폴더를 C:와 같이 더 적합한 위치로 이동합니다.\Oracle\Admin을 생성하고 tnsnames.ora, sqlnet.ora 및 ldap.ora(해당하는 경우)를 생성합니다.해당 위치를 가리키는 TNS_ADMIN 환경 변수를 생성합니다.

Visual Studio v2017을 사용하는 경우 tnsNames File:

32비트 설치:

c:\program files (x86)\vs2017\network\admin\tnsnames.ora용 개발자 도구를 제공합니다.

64비트 설치:

c:\program files\vs2017\network\admin\tnsnames.ora용 개발자 도구를 제공합니다.

언급URL : https://stackoverflow.com/questions/28280883/determining-location-of-relevant-tnsnames-ora-file

반응형