Come posso generare un file tnsnames.ora per connettermi a un database Oracle?


22

Ho installato Oracle 11g e posso collegarmi sysmanal database Oracle, ma non è tnsnames.orapossibile trovare alcun file.

Devo generare il file tnsnames.ora da solo? In tal caso, dove lo posiziono? In caso contrario, come lo genera Oracle per me? Se devo generarlo, qual è la sintassi appropriata per il file?

Risposte:


15

È possibile creare facilmente un file [testo] tnsnames.ora. Dovrebbe essere in $ ORACLE_HOME / network / admin / e dovrebbe avere un aspetto simile al seguente:

 ORATST=
 (description=
   (address_list=
     (address = (protocol = TCP)(host = fu.bar)(port = 1521))
   )
 (connect_data =
   (service_name=oratst)
 )
)

Buona risposta, anche se ho scoperto che dovevo nominare il mio file $HOME/.tnsnames.ora; il percorso suggerito nella risposta sembrava essere ignorato da sqlplus.
DuffJ,

@DuffJ allora qualcosa non va nel tuo ambiente.
miracolo173

11

La directory predefinita per un file tnsnames.ora è

/u01/app/oracle/product/<version>/<dbname>/network/admin/tnsnames.ora

Contenuto:

<alias> = (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <ip>)(PORT = <port>))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = <dbname>)
    )
  )
  • alias: puoi scegliere questo e usarlo come stringa di connessione in seguito.
  • port: il valore predefinito è 1521

Maggiori informazioni qui: http://docs.oracle.com/cd/B28359_01/network.111/b28317/tnsnames.htm


6
La directory predefinita non è del tipo. È relativo $ORACLE_HOMEe quindi sarà $ORACLE_HOME/network/admin(dove $ORACLE_HOMEpossono essere più directory diverse in cui è presente più di un livello di installazione / patch Oracle) o può essere sovrascritto dalla $TNS_ADMINvariabile di ambiente. Dipende completamente dall'utente in cui risiede il software.
Phil,

4
Onestamente è il default su un sistema linux ... Se non tocchi una cosa, verrà messo lì ... essendo quindi il default. Ma $ ORACLE_HOME se non manomesso è davvero una soluzione migliore.
Munchi,

Ho eseguito Oracle su letteralmente centinaia di sistemi Linux e questo NON è il valore predefinito, né esiste una cosa del genere. Forse vuoi dire che è l'esempio nella documentazione, beh, hanno dovuto scegliere qualcosa. Non esiste una distro Linux che conosco che abbia un filesystem / u01 "di default", devi averlo creato e detto a Oracle di usarlo!
Gaius,

2

$ORACLE_HOME/network/adminè la directory in cui il tnsnames.orafile viene creato da DBCA e / o NetCA.

$ORACLE_HOMEè un percorso simile /u01/app ..., è un percorso conforme OFA che il programma di installazione utilizza come predefinito se non sostituito dal programma di installazione.


2

Se il tuo sistema operativo è Windows 10 , puoi trovare il tnsnames.orafile nel seguente percorso unc:

C:\app\myAccount\product\11.2.0\dbhome_1\NETWORK\ADMIN

Dov'è myAccountil nome del tuo account di Windows.


1
In altre parole, è %ORACLE_HOME%\NETWORK\ADMINvero?
Andriy M,

Si è giusto. Ricorda Oracle per impostazione predefinita, tnsnames.ora nella directory $ ORACLE_HOME / network / admin sui sistemi operativi UNIX e nella directory% ORACLE_HOME% \ network \ admin sui sistemi operativi Windows.
S. Mayol,

$ ORACLE_HOME non funzionava per me nel mio ambiente, quindi conoscere il percorso completo mi ha davvero aiutato ... solo sapere che era in C: \ app \ ... mi ha dato l'inizio di cui avevo bisogno e sono stato in grado di rintracciarlo da Là. Mi ha risparmiato ore di ricerca!
Gallo

1

Per quanto ne so, tnsnames.oradeve essere inserito nella <ORA_INSTALL_FOLDER>\product\11.1.0\client_1\network\admin\cartella

La documentazione è disponibile qui

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.