Oracle
 sql >> база данни >  >> RDS >> Oracle

Определяне на местоположението на съответния файл tnsnames.ora

Според Oracle тези местоположения се търсят за tnsnames.ora , респ. sqlnet.ora и ldap.ora :

  1. Oracle Net файлове в настоящата работна директория (PWD/CWD)
  2. TNS_ADMIN дефинирани сесионно или чрез дефиниран от потребителя скрипт
  3. TNS_ADMIN дефиниран като глобална променлива на средата
  4. TNS_ADMIN дефинирани в регистъра
  5. Oracle Net файлове в %ORACLE_HOME/network|net80\admin (Местоположение по подразбиране на Oracle)

Не съм сигурен обаче дали всяко приложение/драйвер следва този списък. Получих този списък от Oracle Document 111942.1, отнасящ се до Oracle 9i, така че може да е остарял.

В Ръководството на администратора на Database Net Services поръчката е

  1. TNS_ADMIN дефиниран от променлива на средата
  2. TNS_ADMIN дефиниран в системния регистър (ако TNS_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.ora. С Process Monitor от Microsoft Sysinternals можете да наблюдавате всеки достъп до файл, т.е. филтърът ще бъде 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 сървърът на Oracle чете TNS_ADMIN настройка от opmn.xml конфигурационен файл.

Друг пример за ODP.NET управляван драйвер (Oracle.ManagedDataAccess) бета версия, намерих тази поръчка в Oracle Managed и TNS Names :

  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 издание 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.NET Managed Driver (4.121.2.0), отнема %ORACLE_HOME%\network\admin и TNS_ADMIN Отчитане на променливата на околната среда. Бравите като документацията не са 100% правилни.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземане на дъмп на таблици в oracle 10g чрез PL/SQL процедура

  2. Свързване на C# с Oracle

  3. Как да предадете XML като параметър към съхранената процедура в Oracle

  4. Неактивна сесия в Oracle от JDBC

  5. Влияят ли ограниченията на външния ключ върху трансформациите на заявките в Oracle?