Datenbankidentifikation nach Dienstname

Eine Oracle-Datenbank kann über mehrere Instanzen auf mehreren Rechnern reichen, so daß der Datenbankdienst zu einem verteilten Dienst wird.

Vor Oracle8i wurde ein Oracle-Datenbankdienst mit einem Oracle-Systembezeichner (SID) identifiziert. Der SID wurde außerdem intern von der Datenbank als Zeiger zu der System Global Area (SGA) verwendet. Clients haben sich bei einer Datenbankinstanz durch Angabe des SID im Verbindungsdeskriptor angemeldet. Bei diesem Benennungsschema wurden Dienste nicht von Instanzen unterschieden.

In Oracle8i wurde ein neues Benennungsschema implementiert. Da eine Oracle-Datenbank über mehrere Computer reichen kann, werden sowohl der Dienst als Ganzes als auch jede der Instanzen angegeben.

Dienstname

Eine Datenbank wird jetzt mit ihrem Dienstnamen mit dem Parameter SERVICE_NAMES in der Initialisierungsdatei identifiziert. SERVICE_NAMES gibt den Namen der View der obersten Ebene des Oracle-Datenbankdienstes an, die über mehrere Instanzen und/oder Knoten reichen kann. SERVICE_NAMES entspricht standardmäßig dem globalen Datenbanknamen, einem Namen, der aus dem Datenbanknamen (DB_NAME) und Domänennamen (DB_DOMAIN) besteht.

Instanzname

Datenbankinstanzen werden mit einem Instanznamen mit dem Parameter INSTANCE_NAME in der Initialisierungsdatei identifiziert. INSTANCE_NAME entspricht dem SID der Instanz.

Verbindungsdeskriptoren

Verbindungsdeskriptoren, die von Clients benutzt werden, müssen mit dem Parameter SERVICE_NAME (ohne S) konfiguriert werden, um sich bei einer Oracle8i-Datenbank anmelden zu können. Mit dem Net8-Konfigurationsassistenten können Sie Verbindungsdeskriptoren mit dem Parameter SERVICE_NAME in einer Datei tnsnames.ora konfigurieren. So enthält z.B. der folgende Verbindungsdeskriptor die Adresse eines Listeners auf sales1-sun, der auf Verbindungsanforderungen für einen Datenbankdienst mit der Bezeichnung sales.us.acme.com hört:

 
sales=
(description=
(address=(protocol=tcp)(host=sales-sun1)(port=1521))
(connect_data=
(service_name=sales.us.acme.com)))

Siehe auch: Net Service Names erstellen

Optional kann der Verbindungsdeskriptor auch mit dem Parameter INSTANCE_NAME konfiguriert werden, wenn die Verbindung zu einer bestimmten Instanz der Datenbank hergestellt werden soll. Dies ist möglicherweise bei einem Oracle Parallel Server mit mehreren Instanzen erforderlich.

Der folgende Verbindungsdeskriptor enthält z.B. die Adresse eines Listeners auf sales-sun1, der auf Verbindungsanforderungen für eine Instanz mit der Bezeichnung sales1 hört, die mit der Datenbank sales.us.acme.com verknüpft ist:

   
sales=
(description=
(address=(protocol=tcp)(host=sales-sun1)(port=1521))
(connect_data=
(instance_name=sales1)
(service_name=sales.us.acme.com)))

Dies ist eine erweiterte Funktion, die vom Net8-Konfigurationsassistenten nicht unterstützt wird.

Siehe auch: Optionen für erweiterte Verbindungsdaten konfigurieren