Frage

Warum brauche ich zwei davon?Wann muss ich das eine oder andere verwenden?

War es hilfreich?

Lösung

@DAC

Zusamenfassend:SID = der eindeutige Name von Ihre DB, ServiceName = der verwendete Alias Beim Anschließen

Stimmt nicht unbedingt..SID = eindeutiger Name der INSTANZ (z. B. der Oracle-Prozess, der auf der Maschine läuft).Oracle betrachtet die Dateien als „Datenbank“.

Dienstname = Alias ​​für eine INSTANZ (oder viele Instanzen).Der Hauptzweck besteht darin, dass, wenn Sie einen Cluster betreiben, der Client sagen kann: „Verbinden Sie mich mit SALES.acme.com“, der DBA kann im Handumdrehen die Anzahl der Instanzen ändern, die für SALES.acme.com-Anfragen verfügbar sind. oder sogar SALES.acme.com in eine völlig andere Datenbank verschieben, ohne dass der Kunde irgendwelche Einstellungen ändern muss.

Andere Tipps

Bitte sehen Sie: http://www.sap-img.com/oracle-database/finding-oracle-sid-of-a-database.htm

Was ist der Unterschied zwischen Oracle SIDs und Oracle SERVICE NAMES.Eins config-Tool sucht nach SERVICE NAME und dann sucht der nächste nach SIDs!Was weitergehend?!

Oracle SID ist der eindeutige Name, der Identifiziert Ihre Instanz/Datenbank, wobei als Service name ist der TNS-Alias, den Sie angeben Wenn Sie eine Remoteverbindung zu Ihrem Datenbank und dieser Dienstname lautet in der Datei Tnsnames.ora auf Ihrem Clients und es kann mit SID identisch sein und Sie können ihm auch jede andere Name, den Sie möchten.

SERVICE_NAME ist das neue Feature von Oracle 8i und höher, in welcher Datenbank kann sich beim Listener registrieren.Wenn Datenbank ist beim Listener registriert Auf diese Weise können Sie dann SERVICE_NAME Parameter in tnsnames.ora Andernfalls - verwenden Sie SID in tnsnames.ora.

Auch wenn Sie OPS (RAC) haben, werden Sie haben unterschiedliche SERVICE_NAME für jeden Beispiel.

SERVICE_NAMES gibt eine oder mehrere Namen für den Datenbankdienst, der die diese Instanz verbindet.Sie können Geben Sie mehrere Dienstnamen in um zwischen verschiedenen Verwendungen derselben Datenbank.Für Beispiel:

SERVICE_NAMES = sales.acme.com, widgetsales.acme.com

Sie können Dienstnamen auch verwenden, um Identifizieren Sie einen einzelnen Dienst, der verfügbar aus zwei verschiedenen Datenbanken durch den Einsatz von Replikation.

In einem Oracle Parallel Server -Umgebung müssen Sie diese Parameter für jede Instanz.

Zusamenfassend:SID = der eindeutige Name Ihrer DB-Instanz, ServiceName = der beim Herstellen der Verbindung verwendete Alias

Ich weiß, dass dies uralt ist, aber wenn es um heikle Tools, Verwendungen, Benutzer oder Symptome geht:Sid & Service Naming One kann Ihren tnsnames-Einträgen ein wenig Flexibilität verleihen, wie zum Beispiel:

mySID, mySID.whereever.com =
(DESCRIPTION =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = myHostname)(PORT = 1521))
  )
  (CONNECT_DATA =
    (SERVICE_NAME = mySID.whereever.com)
    (SID = mySID)
    (SERVER = DEDICATED)
  )
)

Ich dachte nur, dass ich das hier belasse, da es für die Frage einigermaßen relevant ist und hilfreich sein kann, wenn man versucht, einige weniger klare Eigenheiten der Oracle-Vernetzung zu umgehen.

Was ist eine SID und ein Dienstname?

Bitte schauen Sie sich die Dokumentation von Oracle an https://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htm

Falls der obige Link in Zukunft nicht mehr zugänglich sein sollte, führt Sie der obige Link zum Zeitpunkt des Verfassens dieser Antwort zum Thema „Datenbankdienst und Datenbankinstanzidentifizierung“ im Kapitel „Konnektivitätskonzepte“ des „Database Net Services-Administratorhandbuchs“. .Dieses Handbuch wird von Oracle als Teil von „Oracle Database Online Documentation, 10g Release 2 (10.2)“ veröffentlicht.

Wann muss ich das eine oder andere verwenden?Warum brauche ich zwei davon?

Betrachten Sie die folgende Zuordnung in einer RAC-Umgebung:

SID      SERVICE_NAME
bob1    bob
bob2    bob
bob3    bob
bob4    bob

Wenn der Lastausgleich konfiguriert ist, „verteilt“ der Listener die Arbeitslast auf alle vier SIDs.Selbst wenn der Lastausgleich konfiguriert ist, können Sie bei Bedarf jederzeit eine Verbindung zu bob1 herstellen, indem Sie die SID anstelle von SERVICE_NAME verwenden.

Siehe, https://community.oracle.com/thread/4049517

Gemäß Oracle Glossar:

SID ist ein eindeutiger Name für eine Oracle-Datenbankinstanz.---> So wechseln Sie zwischen Oracle-Datenbanken müssen Benutzer die gewünschte SID-<---.Das SID ist in den CONNECT DATA-Teilen der Connect-Deskriptoren enthalten in einem TNSNAMES. ORA-Datei und in der Definition des Netzwerk-Listeners im LISTENER. ORA-Datei.Auch als System-ID bekannt.Name des Oracle-Diensts kann etwas Beschreibendes wie "MyOracleServiceORCL" sein.Unter Windows Sie können Ihren Dienstnamen als Dienst unter Windows-Dienste ausführen.

Als besseren Ansatz sollten Sie SID in TNSNAMES.ORA verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top