sql >> Database teknologi >  >> RDS >> Oracle

Bestemmelse af placering af relevant tnsnames.ora fil

Ifølge Oracle søges disse steder efter tnsnames.ora , hhv. sqlnet.ora og ldap.ora :

  1. Oracle Net-filer i den nuværende arbejdsmappe (PWD/CWD)
  2. TNS_ADMIN defineret sessionelt eller af brugerdefineret script
  3. TNS_ADMIN defineret som en global miljøvariabel
  4. TNS_ADMIN defineret i registreringsdatabasen
  5. Oracle Net-filer i %ORACLE_HOME/network|net80\admin (Oracle standardplacering)

Jeg er dog ikke sikker på, om hver applikation/driver følger denne liste. Jeg fik denne liste fra Oracle Document 111942.1, der henviser til Oracle 9i, så den kan være forældet.

I Database Net Services Administrator's Guide er rækkefølgen

  1. TNS_ADMIN defineret af miljøvariabel
  2. TNS_ADMIN defineret i registreringsdatabasen (hvis TNS_ADMIN miljøvariabel er ikke til stede)
  3. %ORACLE_HOME%/network/admin bibliotek (hvis TNS_ADMIN miljøvariabel er ikke til stede)

Jeg vil anbefale at definere en miljøvariabel for TNS_ADMIN og brug kun én tnsnames.ora fil. For at være på den sikre side, tjek også dine registreringsdatabaseværdier.

Hvis dine filer er ikke placeret i %ORACLE_HOME%\network\admin , anbefaler jeg at oprette et symbolsk link til det - bare for at være på meget sikker side, f.eks. mklink /d %ORACLE_HOME%\network\admin c:\Oracle\common\settings\admin

En anden note, du behøver ikke at "lege" med din tnsnames.ora fil. Med Process Monitor fra Microsoft Sysinternals kan du overvåge hver filadgang, dvs. filteret ville være Path contains tnsnames

Opdater

Når jeg kører en test på min maskine, får jeg følgende rækkefølge:

  1. Miljøvariabel TNS_ADMIN
  2. Registreringsnøgle HKEY_CURRENT_USER\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN
  3. Registreringsnøgle HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN , hhv. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_{Oracle_Home_Name}\TNS_ADMIN

    -> Kun hvis TNS_ADMIN Miljøvariablen er ikke indstillet.

  4. %ORACLE_HOME%\network\admin
  5. Nuværende bibliotek (som kan være forskellig fra det bibliotek, hvor din applikation er placeret)
  6. Mappe, hvor din applikation er placeret

Opdatering 2

Der er naturligvis ingen rettelsessøgning, det varierer for forskellige udbydere/drivere. Måske afhænger det også af Oracle-versionen.

For eksempel Oracle HTTP-serveren læser TNS_ADMIN indstilling fra opmn.xml konfigurationsfil.

Et andet eksempel, for ODP.NET Managed Driver (Oracle.ManagedDataAccess) beta version, fandt jeg denne ordre hos Oracle Managed and TNS Names :

  1. datakildealias i afsnittet "datakilder" under <oracle.manageddataaccess.client> sektionen i .NET-konfigurationsfilen (dvs. machine.config , web.config , user.config ).
  2. datakildealias i tnsnames.ora fil på den placering, der er angivet af TNS_ADMIN i .NET-konfigurationsfilen.
  3. datakildealias i tnsnames.ora fil, der findes i samme mappe som .exe .
  4. datakildealias i tnsnames.ora fil til stede på %TNS_ADMIN%
    (hvor %TNS_ADMIN% er en miljøvariabel indstilling).
  5. datakildealias i tnsnames.ora fil til stede på %ORACLE_HOME%\network\admin
    (hvor %ORACLE_HOME% er en miljøvariabel indstilling).

I officiel dokumentation (12c Release 4 (12.1.0.2.4)) står der:

  1. datakildealias i dataSources afsnittet under <oracle.manageddataaccess.client> sektionen i .NET-konfigurationsfilen (dvs. machine.config , web.config , user.config ).
  2. datakildealias i tnsnames.ora fil på den placering, der er angivet af TNS_ADMIN i .NET-konfigurationsfilen. Placeringer kan bestå af enten absolutte eller relative mappestier.
  3. datakildealias i tnsnames.ora fil, der findes i samme mappe som .exe .

Men baseret på nogle test, jeg lavede med ODP.NET Managed Driver (4.121.2.0), tager det %ORACLE_HOME%\network\admin og TNS_ADMIN Miljøvariabel tages i betragtning. Låse som dokumentationen er ikke 100 % korrekte.



  1. Forbedring af MySQL-ydeevne med avancerede InnoDB-indstillinger

  2. Hvordan kan jeg skrive SQL i Oracle i mit tilfælde?

  3. RMAN Liste backup-kommandoer

  4. Databaseforespørgsler:Hvordan finder man en nål i en høstak?