Oracle unterscheidet zwischen SID, DB-Name, DB-Domäne, globalem Datenbanknamen, Dienstnamen, Dienstalias und Instanznamen

14

Kann mir jemand erklären, worin der Unterschied zwischen SID, DB-Name, DB-Domäne, globalem Datenbanknamen, Servicename, Servicealias und Instanzname in Oracle besteht?

Danke Michael

Michael Ellick Ang
quelle

Antworten:

11

SID = identifiziert die Datenbankinstanz (Datenbankname + Instanznummer). Wenn Ihr Datenbankname also somedb und Ihre Instanznummer 3 ist, lautet Ihre SID somedb3.

DB Name = Name der Datenbank (Datenbank kann von mehreren Instanzen gemeinsam genutzt werden)

DB Domain = In der Regel identisch mit Ihrer Unternehmensdomain (somecompany.com)

Globaler Datenbankname = Datenbankname + Datenbankdomäne (somedb.somecompany.com)

Dienstname = Ein "Konnektor" für eine oder mehrere Instanzen. Es ist oft nützlich, in einer RAC-Umgebung zusätzliche Dienstnamen zu erstellen, da der Dienst so geändert werden kann, dass bestimmte SIDs als primäre oder sekundäre Verbindungen verwendet werden oder bestimmte SIDs überhaupt nicht verwendet werden.

Dienst-Alias ​​= Ein Alias ​​für den Dienstnamen (genau wie ein CNAME usw.). Nehmen wir an, Sie machen Ihren Servicenamen für die dba zu etwas Bedeutendem, aber vielleicht ist es ein bisschen esoterisch. Erstellen Sie einen Service-Alias ​​und benennen Sie ihn mit einem für den Benutzer aussagekräftigen Namen.

Instanzname = wie SID

jswoods7
quelle
unter welchen umständen hast du eine instanznummer ist das nur mit RAC?
JonnyRaa
Also ist das default service name= global db name?
Alireza Mohamadi
4

Die Art und Weise, wie Sie SID beschreiben, ist nur das DEFAULT-Verhalten in einer RAC-Konfiguration. Die SID (== Instanzname) ist genau das: Der Name Ihrer Instanz.

Ich sehe es immer so: Eine Instanz ist eine Instanz der RDBMS-Software. Eine Instanz MOUNTS eine Steuerdatei, (alter database mount) In diese Datei wird der Speicherort der Datendateien geschrieben. die Sammlung von Datendateien (okay, und die Kontrolldatei (en)) == die Datenbank.

Eine Datenbank hat einen Namen, den Datenbanknamen und (optional) eine Domäne (Datenbankdomäne) -> zusammen Datenbankname. Stellen Sie sich nun vor, Sie replizieren (DataGuard) Ihre Datenbank. Sie möchten den DB_namen gleich lassen, oder? (Ich meine: datenmäßig ist es die gleiche Datenbank) Aber wie können Sie dann die beiden "Versionen" Ihrer Datenbank identifizieren? Gib 'DB_UNIQUE_NAME' ein ... Ja, es wird immer verwirrender ...

Meine persönliche Praxis besteht darin, die INSTANZ wie den eindeutigen Namen in einem DataGuard-Setup zu benennen und die RAC-Namen (Datenbankname + Instanznummer) in einem RAC-Setup beizubehalten. Dann sind die db_unique_names, die ich zusammenstelle, im Allgemeinen wie db_name + 1-Buchstaben-Suffix (MYDBa MYDBb usw.)

Prost, Paul

paul
quelle
0

SID ist Instanz. Vermeiden Sie besser den Begriff 'Datenbankinstanz', nur Instanz.

"SID = identifiziert die Datenbankinstanz (Datenbankname + Instanznummer)" ist falsch. "Eine Instanz ist eine Instanz der RDBMS-Software" ist falsch. Ein deinstalliertes oder installiertes DBMS ist nur DBMS.

"DB-Domain = In der Regel identisch mit Ihrer Unternehmensdomain" sollte vermieden werden. Bei der Verwendung der Domain sind Probleme aufgetreten, und die Probleme verschwinden, wenn die Domain nicht verwendet wird.

"Globaler Datenbankname = Datenbankname + Datenbankdomäne" ist ebenfalls falsch. Der globale Datenbankname ist der Dienstname. So einfach ist das.

"SID = identifiziert die Datenbankinstanz (Datenbankname + Instanznummer). Wenn Ihr Datenbankname also somedb und Ihre Instanznummer 3 ist, dann ist Ihre SID somedb3." ist falsch. Es gibt keine solche Verkettung von Identität oder Name.

Bernaridho
quelle
-1

Ich schlage vor, Sie beziehen

Knowledge Xpert for Oracle Administration > Oracle Architecture > Oracle instance, files and processes

Wenn Sie Toad installiert haben, sogar eine Testversion.

Es beschreibt das ganze Bild gründlich.

user25414
quelle