Frage

Ich bin mit SQL-Server und ich bin jetzt konfrontiert mit der Verbindung zu Oracle.Kann ich einige ganz eindeutige Beschreibungen für das, was Sie alle Felder, die ich ausfüllen muss sind?

Insbesondere möchte ich verstehen, was diese sind:

Home
Hostname
Port
SID
Service name

Netzwerk-Alias
Connect identifier

Mein grundlegendes Verständnis ist, dass der hostname ist der pooter er setzte sich auf, aber ist dies anders zu Hause?Port ist die TCP-port ist standardmäßig 1521 - das scheint ziemlich klar.

Ich brauche nur eine SID-oder service-Namen?Und was ist der Unterschied - warum ein oder der andere?

Wenn ich eine TNS-Datei, was ist die Netzwerk-alias und verbinden identifier?Sind diese sowieso das gleiche wie die anderen Felder, die ich, wenn ich nicht ein TNS-Datei?

Sorry so ein noob, aber meine vorläufige Suche nach Antworten zu bekommen, noch hat mich sehr verwirrt.

Vielen Dank!

War es hilfreich?

Lösung

Home:     ORACLE_HOME, an environment variable that points to the location 
of the Oracle binaries (either location Instance runs from on server or client
runs from on client)
Hostname: name of the server
Port:     Port on which the Listener is listening for Oracle connections
SID:      **S**ervice **ID**entifier.  The name of the the Database.  This is
one of the identifiers that the Listener will expose
Service name: An alternate identifier that may be exposed by the Listener

Auf einer vorhandenen, konfigurierten Ort der einfachste Weg zu finden diese details ist von eine tnsnames.ora Datei auf dem client (oder server) aus, die verbindungen zur Datenbank hergestellt.Blick unter $ORACLE(Unterstrich)HOME/network/admin.Finden Sie das ORACLE(Unterstrich)zu HAUSE mit einem Satz " (Windows) oder env (Unix) - Befehl.Die tnsnames.ora kann sich auch in eine Lage spitzt sich zu, indem die variable $TNS_ADMIN.

Wenn eine tnsnames.ora kann nicht gefunden werden und Sie haben Zugang zum server, versuchen Sie den folgenden Befehl, in der Regel als Benutzer Oracle

lsnrctl status

lsnrctl ist der Hörer.Status zeigt SIDs-und Service-Namen, die es kennt (und ein paar andere details)

Oder suchen Sie nach den Dateien listener.ora und SQL.ora unter $ORACLE_HOME/network/admin oder in der Lage spitzt sich zu durch die env-variable " $TNS_ADMIN

In der Regel gibt es ein Zuhörer pro host, also einen Port je host (es könnte mehr sein, aber es ist nicht gemeinsame)

Um eine Verbindung zu Oracle müssen Sie den client, um die Hörer an einem Speicherort, indem Sie einen Hostnamen/Port-Kombination auf und erzählen es die SID oder Service, um eine Verbindung herzustellen.

DCookie Kommentar über SID versus Service-name ist im wesentlichen korrekt.

Die SID kann gefunden werden mit (je nach version)

select db_unique_name from v$database
   or
select db_name from v$database

Oder suchen Sie in der Datei $ORACLE_HOME/dbs/init(SID-NAME).ora oder durch

ps -ef | grep pmon

und in Anbetracht der Letzte Teil des Prozesses Namen, z.B.ora(Unterstrich)pmon(Unterstrich)SID

Andere Tipps

Wenn Sie Oracle 10g oder höher ist, verwenden Sie Easy Connect syntax:

//servername/dbname

, wie in:

sqlplus scott/tiger@//servername/dbname

Wenn Sie verwenden müssen TNS, hier ist das Beispiel TNSNAMES.ORA:

XE = 
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = XE)
    )
  )

In CONNECT_DATA, Sie können entweder SERVICE_NAME (was ist ein Bezeichner für eine Instanz registriert einen listener), oder SID (was ist ein Datenbank-identifier).

In ein paar Worten:

  • SERVICE_NAME ist ein Bezeichner für die Instanz:einer Laufenden Oracle ausführbare Datei, die Sie verbinden
  • SID ist ein Bezeichner der Datenbank:ein Satz von Dateien, die Ihre Daten gespeichert werden.

Eine Datenbank kann von mehreren genutzt werden Oracle Instanzen.

Wenn Sie Zweifel haben, verwenden SERVICE_NAME.

Verbinden Sie In diesem Fall wie folgt:

sqlplus scott/tiger@XE
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top