Kapitel 10
Oracle Net Services
248
Folgende Features werden in Oracle 12c nicht mehr unterstützt:
Oracle Net Connection Pooling
Oracle Names
Oracle Net Listener-Passwort
10.1 Die Oracle Net-Architektur
Oracle bietet im Client/Server-Bereich zwei Architekturen an. Die Dedicated Ser-
ver-Architektur zeichnet sich dadurch aus, dass für jeden Client ein Prozess auf
dem Datenbankserver gestartet wird. Der Client kommuniziert ausschließlich mit
dem Serverprozess, der Operationen für den Client ausführt. Die zweite Architek-
tur ist die Shared Server-Konfiguration. In diesem Fall bedient ein Serverprozess
mehrere Clients. Auf die Shared Server-Architektur kommen wir im weiteren Ver-
lauf des Kapitels noch zurück.
Die Oracle Net-Architektur lässt sich am besten durch die Darstellung der ein-
zelnen Kommunikationsebenen beschreiben. Oracle Net setzt mit mehreren
Ebenen direkt auf ein Netzwerkprotokoll auf, das am weitesten verbreitet ist:
TCP/IP. Die unterste Ebene bildet der Oracle Protokoll Support Layer. Er dient als
Übersetzer zwischen der TNS-Funktionalität und dem Netzwerkprotokoll.
Damit war es möglich, den TNS-Layer unabhängig vom unterliegenden Netz-
werkprotokoll zu gestalten. Der Oracle Protokoll Support Layer unterstützt die
folgenden Netzwerkprotokolle:
TCP/IP
TCP/IP mit Secure Socket Layer
Named Pipes
Sockets Directory-Protokoll (SDP)
Die nächste Schicht bildet der Oracle Net Foundation Layer. Die damit verbundene
Funktionalität wird als Transparent Network Substrate (TNS) bezeichnet. Mit TNS
kann eine Peer-to-peer-Verbindung zwischen mehreren Computern aufgebaut
werden.
Der Presentation Layer kümmert sich um Unterschiede in den Zeichensätzen und
Datentypen zwischen den Computern und löst diese auf. Die häufigste Ursache
für unterschiedliche Zeichensätze sind verschiedene Betriebssysteme.
Der Application Layer wird charakterisiert durch das Oracle Call Interface (OCI). Es
übersetzt SQL-Anweisungen in eine für den Datenbankserver verständliche Form.
Viele übergeordnete Programmiersprachen und Treiber wie JDBC bedienen sich
der OCI-Schnittstelle. Der Thin JDBC-Treiber benutzt den OCI-Layer nicht.
10.1
Die Oracle Net-Architektur
249
Abb. 10.1: Die Oracle Net-Protokollschichten
Der Oracle Listener dient dem Verbindungsaufbau zwischen Client und Daten-
bankserver. Er läuft als Prozess auf dem Datenbankserver und wartet auf Verbin-
dungsanfragen von Clients. Er hört auf einem vorgegebenen Port, der
Standardport ist 1521. Ein Verbindungsaufbau zwischen Client und Server
besteht aus den folgenden Schritten:
1. In Abhängigkeit von der vorgegebenen Benennungsmethode nimmt der Client
eine Namensauflösung vor und erhält die Verbindungsparameter.
2. Der Client kontaktiert den Listener und beantragt Zugang zur Datenbank.
3. Es findet ein Authentifizierungsprozess zwischen Server und Client statt.
4. Bei erfolgreicher Authentifizierung startet der Listener einen Prozess auf dem
Datenbankserver.
5. Der Listener sendet die Verbindungsinformationen für den Serverprozess an den
Client, und die Verbindung zwischen Client und Serverprozess wird hergestellt.
6. Der Listener löst seine Verbindung mit dem Client. Damit wird der Port wieder
frei, und der Listener kann weitere Verbindungsanfragen bearbeiten.
Die Art und Weise, wie der Client versucht, die Verbindungsinformation zum
Datenbankserver aufzulösen, hängt von der gewählten Methode der Namensauflö-
sung ab. Oracle stellt die folgenden Methoden zur Verfügung:
Hinweis
Detaillierte Informationen zum Authentifizierungsprozess finden Sie in den
Kapiteln 11 und 19, die sich mit dem Thema Sicherheit befassen.
Kapitel 10
Oracle Net Services
250
Local Naming Option (Tnsnames). Die Verbindungsbeschreibung befindet sich
in der Datei tnsnames.ora auf der Client-Seite.
Hostnaming Option. Diese Option steht nur für das TCP/IP-Protokoll zur Verfü-
gung. Voraussetzung ist, dass ein externer Dienst zur Namensauflösung wie
DNS oder die Hosts-Datei verwendet wird.
External Naming Service Option. Die Verbindungsinformationen werden von
Drittanbieter-Software geliefert. Diese Methode wird selten eingesetzt.
LDAP Option. Die Verbindungsinformationen sind in einem LDAP-Server wie
dem Oracle Internet Directory gespeichert.
Easy Connect Naming Option. Die Angabe aller Verbindungsinformationen er-
folgt direkt in der CONNECT-Anweisung.
Die Benennungsmethode wird durch den Parameter »NAMES.DIRECTO-
RY_PATH« in der Datei sqlnet.ora festgelegt. Sie können mehrere Methoden ange-
ben. In diesem Fall beginnt Oracle mit der ersten Methode und versucht alle weiteren,
bis es zu einer erfolgreichen Auflösung kommt. Im folgenden Beispiel sind die
Benennungsmethoden Local Naming, Easy Connect und Hostnaming konfiguriert.
Die Konfiguration der Datei sqlnet.ora kann durch Eintragen der Parameter mit
einem Texteditor, so wie in Tabelle 10.1, oder mithilfe des Oracle Net Manager erfol-
gen. Der Net Manager ist ein Java-Programm mit grafischer Oberfläche und wird
Hinweis
Beachten Sie, dass eine weitere Methode, der Oracle Names Server (ONS), seit
der Version 10g nicht mehr ausgerollt wird. Verwenden Sie stattdessen die
LDAP-Option.
# sqlnet.ora Network Configuration File: /opt/oracle/product/12.1.0/dbhome_1/
network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
NAMES.DIRECTORY_PATH = (TNSNAMES, EZCONNECT, HOSTNAME)
Listing 10.1: Benennungsmethoden in der Datei sqlnet.ora
Parameter Namensauflösung
TNSNAMES Die Auflösung erfolgt durch die Datei
tnsnames.ora.
EZCONNECT Eingabe aller Verbindungsinformationen in der CONNECT-Anweisung.
LDAP Die Auflösung wird durch einen LDAP-Server vorgenommen.
HOSTNAME Die Auflösung erfolgt über DNS oder HOSTS-Datei.
NIS Externe Auflösung über Network Information Service.
Tabelle 10.1: Werte des Parameters »NAMES.DIRECTORY_PATH«

Get Oracle 12c - Das umfassende Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.