Backup / Recovery
Fundamentals
Namensauflösung unter Oracle
  Contents
  Index
Subsections
Shared Server
Der Oracle Shared Server wurde aus dem Oracle Multithreaded Server weiterentwickelt.
Bei der Multithreaded Server-Konfiguration übernimmt ein Dispatcher-Prozess die Zuordnung von Benutzer-Prozessen und Server-Prozessen.
Wird eine neue Benutzer-Verbindung zur Datenbank hergestellt, so werden alle Anweisungen dieser Benutzer-Verbindung durch den Dispatcher-Prozess in eine Anforderungs-Warteschlange (Request-Queue) eingeordnet.
Die Server-Prozesse holen nun die Anweisungen aus der Request-Queue heraus und führen diese Anweisungen in der Datenbank aus.
Das Ergebnis der Anweisung wird in einer Antwort-Warteschlange (Response-Queue) abgelegt, um vom Dispatcher-Prozess an den Benutzerprozess weitergeleitet zu werden.
Es kann somit beispielsweise 100 Benutzerprozesse geben, die von lediglich 10 oder 20 Serverprozessen bedient werden.
Erhält der Listener eine Anforderung von einem Client für eine Shared-Server-Verbindung, so leitet der Listener die Anforderung an den am wenigsten beschäftigten Dispatcher weiter.
Dieser kommuniziert nun mit dem Client, um eine Verbindung herzustellen.
Diese Vorgehensweise wird als Direct Handoff bezeichnet.
Der Client kommuniziert immer mit dem gleichen Dispatcher.
Vor Oracle 9i hat der Listener die Adresse des Dispatchers an den Client zurückgegeben.
Der Client hat dann die Verbindung initiiert.
Da ein Dispatcher-Prozess nur ein Kommunikationsprotokoll 'bedienen' kann, brauchen Sie für jedes Kommunikationsprotokoll einen Dispatcher-Prozess.
Die Server-Prozesse starten beim Starten der Instanz.
Connection Pooling
Wenn alle Dispatchers belegt sind, könnten sich keine neuen User verbinden.
Welche Session ist untätig (Idle ca. >3 Sekunden)?
Diese Session wird temporär getrennt und muß jetzt selber warten bis eine andere Session Idle wird.
Der PMON regelt dies.
Aktivierung des Connection Pooling
alter system set
dispatchers = '(protocol = tcp)
(dispatchers = 3)
(pool=on)'
;
Hinweis:
DISPATCHER ist per Default gleich 0.
Dies muss unbedingt erhöht werden, da sonst nur dedizierte Prozesse laufen.
SHARED_SERVERS
alter system set
shared_servers = 2
max_shared_servers = 20
;
Empfehlung von Oracle:
SHARED_SERVERS >= 1 (Default = 0).
Default für MAX_SHARED_SERVERS ist 20 oder 2 * SHARED_SERVERS.
Views
select * from V$SESSION;
select * from V$DISPATCHER;
select * from V$QUEUE;
select * from V$SHARED_SERVER;
Backup / Recovery
Fundamentals
Namensauflösung unter Oracle
  Contents
  Index
Stefan Hietel dama.go GmbH, Robert Warnke http://rowa.giso.de