sql >> Databáze >  >> RDS >> Oracle

Určení umístění příslušného souboru tnsnames.ora

Podle Oracle jsou tato umístění vyhledávána pomocí tnsnames.ora , resp. sqlnet.ora a ldap.ora :

  1. Soubory Oracle Net v současném pracovním adresáři (PWD/CWD)
  2. TNS_ADMIN definované relací nebo uživatelem definovaným skriptem
  3. TNS_ADMIN definována jako globální proměnná prostředí
  4. TNS_ADMIN definované v registru
  5. Soubory Oracle Net v %ORACLE_HOME/network|net80\admin (Výchozí umístění Oracle)

Nejsem si však jistý, zda každá aplikace/ovladač tento seznam dodržuje. Tento seznam jsem získal z dokumentu Oracle 111942.1 s odkazem na Oracle 9i, takže může být zastaralý.

V příručce Database Net Services Administrator's Guide je pořadí

  1. TNS_ADMIN definované proměnnou prostředí
  2. TNS_ADMIN definované v registru (pokud TNS_ADMIN proměnná prostředí není přítomna)
  3. %ORACLE_HOME%/network/admin adresář (pokud TNS_ADMIN proměnná prostředí není přítomna)

Doporučil bych definovat proměnnou prostředí pro TNS_ADMIN a použijte pouze jeden soubor tnsnames.ora. Chcete-li být na bezpečné straně, zkontrolujte také hodnoty registru.

Pokud vaše soubory nejsou umístěn v %ORACLE_HOME%\network\admin , doporučuji vytvořit na něj symbolický odkaz - jen abyste byli na velmi bezpečná strana, např. mklink /d %ORACLE_HOME%\network\admin c:\Oracle\common\settings\admin

Další poznámka, nemusíte si „hrát“ se svým souborem tnsnames.ora. S Process Monitor od Microsoft Sysinternals můžete sledovat každý přístup k souboru, tj. filtr by byl Path contains tnsnames

Aktualizovat

Když spustím test na svém počítači, dostanu následující pořadí:

  1. Proměnná prostředí TNS_ADMIN
  2. Klíč registru HKEY_CURRENT_USER\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
  3. Klíč registru HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN , resp. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN

    -> Pouze pokud TNS_ADMIN Proměnná prostředí není nastavena.

  4. %ORACLE_HOME%\network\admin
  5. Aktuální adresář (který se může lišit od adresáře, kde se nachází vaše aplikace)
  6. Složka, ve které se nachází vaše aplikace

Aktualizace 2

Je zřejmé, že neexistuje žádné hledání oprav, liší se pro různé poskytovatele/ovladače. Možná to také závisí na verzi Oracle.

Například Oracle HTTP Server čte TNS_ADMIN nastavení z opmn.xml konfigurační soubor.

Další příklad pro ODP.NET Managed Driver (Oracle.ManagedDataAccess) beta verze, našel jsem tuto objednávku na Oracle Managed a TNS Names:

  1. alias zdroje dat v sekci 'dataSources' pod <oracle.manageddataaccess.client> sekce v konfiguračním souboru .NET (tj. machine.config , web.config , user.config ).
  2. alias zdroje dat v tnsnames.ora soubor v umístění určeném TNS_ADMIN v konfiguračním souboru .NET.
  3. alias zdroje dat v tnsnames.ora soubor ve stejném adresáři jako .exe .
  4. alias zdroje dat v tnsnames.ora soubor přítomen na %TNS_ADMIN%
    (kde %TNS_ADMIN% je nastavení proměnné prostředí).
  5. alias zdroje dat v tnsnames.ora soubor na %ORACLE_HOME%\network\admin
    (kde %ORACLE_HOME% je nastavení proměnné prostředí).

V oficiální dokumentaci (12c Release 4 (12.1.0.2.4)) stojí:

  1. alias zdroje dat v dataSources sekce pod <oracle.manageddataaccess.client> sekce v konfiguračním souboru .NET (tj. machine.config , web.config , user.config ).
  2. alias zdroje dat v tnsnames.ora soubor v umístění určeném TNS_ADMIN v konfiguračním souboru .NET. Umístění mohou obsahovat absolutní nebo relativní cesty k adresáři.
  3. alias zdroje dat v tnsnames.ora soubor ve stejném adresáři jako .exe .

Na základě některých testů, které jsem provedl s ODP.NET Managed Driver (4.121.2.0), však trvá %ORACLE_HOME%\network\admin a TNS_ADMIN Proměnná prostředí v úvahu. Zámky jako v dokumentaci nejsou 100% správné.



  1. AOL/J Setup Testovací sada

  2. pořadí sloupců v příkazu SELECT * - garantováno?

  3. Explicitní spojení vs implicitní spojení?

  4. Jak vytvořit vnořenou tabulku pomocí uživatelsky definovaného datového typu v databázi Oracle