2008-09-04 11 views

Antwort

120

@DAC

Kurz Verbindungs: SID = der eindeutige Name des Ihre DB , = Servicename der Alias ​​ verwendet, wenn

Nicht ganz richtig .. SID = eindeutige Name des INSTANZ (zB der oracle-Prozess verbindet auf der Maschine laufen). Oracle betrachtet die "Datenbank" als die Dateien.

Dienstname = Alias ​​zu einem INSTANCE (oder vielen Instanzen). Der Hauptzweck davon ist, wenn der Client einen Cluster ausführt, der Client kann sagen "connect me to SALES.acme.com", der DBA kann im laufenden Betrieb die Anzahl der Instanzen ändern, die für SALES.acme.com Anfragen verfügbar sind, oder verschieben Sie SALES.acme.com sogar in eine komplett andere Datenbank, ohne dass der Client irgendwelche Einstellungen ändern muss.

+1

Also, in Ihrem Beispiel, könnte es SIDs 'Sales1',' Sales2' und 'Sales3' geben, die alle über den Service-Namen' Sales' verfügbar sind? –

+1

Ich denke, das Gegenteil ist der Fall: Sie haben eine SID, die so viele Dienste verfügbar ist. Sie könnten dann einen der Dienste nehmen und auf eine andere SID/Datenbank verweisen. –

+0

Können wir den Oracle SID-Namen wie den TNS-Namen haben? Wird es ein Problem sein? – user2441441

21

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

Was ist der Unterschied zwischen Oracle SIDs und Oracle Service-Namen ist. Ein Config-Tool sucht nach SERVICE NAME und dann sucht der nächste nach SIDs! Was ist los ?!

Oracle SID ist der eindeutige Name, dass eindeutig identifiziert Ihre Instanz/Datenbank, in der als Service- Name ist die TNS-Alias, die Sie geben, wenn Sie aus der Ferne Ihre Datenbank verbinden und dieser Service-Name ist in TNSNAMES aufgezeichnet. Ora-Datei auf Ihrem Clients und es kann das gleiche wie SID sein und Sie können es auch anderen Namen geben, die Sie wollen.

SERVICE_NAME ist die neue Funktion von oracle 8i, in der sich die Datenbank selbst mit dem Listener registrieren kann. Wenn Datenbank mit Listener auf diese Weise registriert ist, dann können Sie SERVICE_NAME-Parameter in tnsnames.ora verwenden, andernfalls - SID in tnsnames.ora verwenden.

Auch wenn Sie OPS (RAC) haben, haben Sie unterschiedliche SERVICE_NAME für jede Instanz.

SERVICE_NAMES gibt einen oder mehrere Namen für den Datenbankservice an an, den diese Instanz verbindet. Sie können mehrere Dienstnamen in angeben, um zwischen verschiedenen Verwendungen der gleichen Datenbank zu unterscheiden. Für Beispiel:

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

Sie auch Service-Namen zu identifizieren einen einzigen Dienst, der von zwei zur Verfügung verschiedenen Datenbanken durch den Einsatz verwenden können der Replikation. In einer Oracle Parallel Server Umgebung müssen Sie diesen Parameter für jede Instanz festlegen.

Kurz gesagt: SID = der eindeutige Name des DB-Instanz, = Servicename des verwendeten Alias ​​wenn

0

Laut Oracle Glossar:

SID ist ein eindeutiger Name für eine Datenbankinstanz Oracle. ---> Um zwischen Oracle-Datenbanken zu wechseln, müssen Benutzer die gewünschte SID < --- angeben. Die SID ist in den CONNECT DATA-Teilen der Verbindungsdeskriptoren in einer TNSNAMES.ORA-Datei und in der Definition des Netzwerk-Listeners in der LISTENER.ORA-Datei enthalten. Wird auch als System-ID bezeichnet. Oracle-Dienstname kann alles sein, das wie "MyOracleServiceORCL" beschreibend ist. Unter Windows Sie können Ihren Dienstnamen als Dienst unter Windows-Dienste ausführen.

Sie sollten SID in TNSNAMES.ORA als einen besseren Ansatz verwenden.

11

Ich weiß, das aber alte ist, wenn sie mit pingelig Tools handelt, verwendet, Benutzer oder Symptome re: sid & Service Namensgebung man ein wenig flex auf Ihre tnsnames Einträge als wie hinzufügen:

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) 
) 
) 

I Ich dachte nur, ich würde das hier belassen, da es für die Frage leicht relevant ist und hilfreich sein kann, wenn man versucht, weniger als klare Eigenheiten der Orakel-Vernetzung zu weben.

1

was ist ein SID und Servicename

bitte an https://docs.oracle.com/cd/B19306_01/network.102/b14212/concepts.htm Oracles Dokumentation Einblick in

Wenn ich den einen oder anderen benutzen? Warum brauche ich zwei von ihnen?

Betrachten unter Zuordnung in einer RAC-Umgebung,

SID         SERVICE_NAME
bob1     bob
bob2     bob
bob3     bob
bob4     bob

Wenn Lastenausgleich konfiguriert ist, gleicht der Listener die Arbeitslast über alle vier SIDs aus. Auch wenn der Lastenausgleich konfiguriert ist, können Sie jederzeit eine Verbindung zu bob1 herstellen, wenn Sie die SID anstelle von SERVICE_NAME verwenden möchten.

Bitte beziehen, https://community.oracle.com/thread/4049517

Verwandte Themen