Wie erstelle ich eine tnsnames.ora-Datei, um eine Verbindung zu einer Oracle-Datenbank herzustellen?

22

Ich habe Oracle 11g installiert und kann mich sysmanmit der Oracle-Datenbank verbinden, aber es gibt keine tnsnames.oraDatei, die ich finden kann.

Muss ich die Datei tnsnames.ora selbst generieren? Wenn ja, wo platziere ich es? Wenn nicht, wie generiert Oracle es für mich? Welche Syntax ist für die Datei geeignet, wenn sie generiert werden muss?

user897237
quelle

Antworten:

15

Sie können problemlos eine tnsnames.ora [text] -Datei erstellen. Es sollte sich in $ ORACLE_HOME / network / admin / befinden und ungefähr so ​​aussehen:

 ORATST=
 (description=
   (address_list=
     (address = (protocol = TCP)(host = fu.bar)(port = 1521))
   )
 (connect_data =
   (service_name=oratst)
 )
)
Aaron
quelle
Gute Antwort, obwohl ich feststellte, dass ich meine Datei benennen musste $HOME/.tnsnames.ora; Der in der Antwort vorgeschlagene Pfad schien von sqlplus ignoriert zu werden.
DuffJ
@DuffJ dann stimmt etwas nicht mit deiner Umgebung.
miracle173
11

Das Standardverzeichnis für eine tnsnames.ora-Datei lautet

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

Inhalt:

<alias> = (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <ip>)(PORT = <port>))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = <dbname>)
    )
  )
  • alias: Sie können dies auswählen und später als Verbindungszeichenfolge verwenden.
  • port: Die Standardeinstellung ist 1521

Weitere Informationen finden Sie hier: http://docs.oracle.com/cd/B28359_01/network.111/b28317/tnsnames.htm

Munchi
quelle
6
Das Standardverzeichnis ist nichts dergleichen. Es ist relativ zu $ORACLE_HOMEund wird es daher sein $ORACLE_HOME/network/admin(wobei $ORACLE_HOMEes mehrere verschiedene Verzeichnisse geben kann, in denen es mehr als eine Oracle-Installations- / Patch-Ebene gibt) oder es kann von der $TNS_ADMINUmgebungsvariablen überschrieben werden . Es liegt ganz bei dem Benutzer, in dem sich die Software befindet.
Philᵀᴹ
4
Ehrlich gesagt ist es die Standardeinstellung auf einem Linux-System ... Wenn Sie nichts anfassen, wird es dort abgelegt ... und ist somit die Standardeinstellung. Aber wenn $ ORACLE_HOME nicht manipuliert wird, ist dies in der Tat eine bessere Lösung.
Munchi
Ich habe Oracle auf buchstäblich Hunderten von Linux-Systemen ausgeführt, und das ist NICHT die Standardeinstellung, und so etwas gibt es auch nicht. Vielleicht meinst du, das ist das Beispiel in der Dokumentation. Nun, sie mussten etwas auswählen. Es gibt keine Linux-Distribution, von der ich weiß, dass sie "standardmäßig" ein / u01-Dateisystem hat. Sie müssen es erstellt und Oracle angewiesen haben, es zu verwenden!
Gaius
2

$ORACLE_HOME/network/administ das Verzeichnis, in dem die tnsnames.oraDatei von DBCA und / oder NetCA erstellt wird.

$ORACLE_HOMEist ein Pfad wie /u01/app ..., es ist ein OFA-konformer Pfad, den der Installer als Standard verwendet, wenn er nicht vom Installer überschrieben wird.

Sam Ravindhran
quelle
2

Wenn Sie Windows 10 verwenden , finden Sie die tnsnames.oraDatei unter folgendem Pfad:

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

Wo myAccountist Ihr Windows-Kontoname?

S. Mayol
quelle
1
Mit anderen Worten, es ist %ORACLE_HOME%\NETWORK\ADMINrichtig?
Andriy M
Ja, das ist richtig. Speichern Sie Oracle standardmäßig im Verzeichnis $ ORACLE_HOME / network / admin unter UNIX-Betriebssystemen und im Verzeichnis% ORACLE_HOME% \ network \ admin unter Windows-Betriebssystemen.
S. Mayol
$ ORACLE_HOME hat in meiner Umgebung nicht funktioniert, daher hat es mir wirklich geholfen, den vollständigen Pfad zu kennen ... nur zu wissen, dass er sich in C: \ app \ befindet ... gab mir den Start, den ich brauchte, und ich konnte ihn ausfindig machen Dort. Habe mir stundenlanges Suchen erspart!
Gallus
1

Soweit ich weiß, tnsnames.oramuss der <ORA_INSTALL_FOLDER>\product\11.1.0\client_1\network\admin\Ordner platziert werden

Dokumentation finden Sie hier

Viper
quelle