1 Oracle Architektur Ziele Nach dieser Lektion sollten Sie Folgendes können: • Oracle Server Architektur mit ihren Hauptkomponenten beschreiben • Strukturen angeben, die beteiligt sind, wenn sich Benutzer bei einer Oracle Instanz anmelden • Phasen bei der Verarbeitung angeben für: – Abfragen – DML-Anweisungen – COMMITs Überblick BenutzerProzess ServerProzess Instanz Shared Pool Library Cache Data Dict. Cache SGA Datenbank Buffer Cache Redo Log Buffer PGA SMON DBW0 PMON CKPT Parameterdatei Daten- Kontroll dateien dateien LGWR Others Redo LogDateien Passwortdatei Archivierte Log-Dateien Datenbank Oracle Datenbank-Dateien DatenDatei Kontrolldatei Parameterdatei Passwortdatei Datenbank Redo LogDatei Archivierte Log-Dateien Andere wichtige physikalische Strukturen Parameterdatei Passwortdatei Datenbank Archivierte Log-Dateien Oracle Instanz Eine Oracle Instanz: • • dient dem Zugriff auf eine Oracle Datenbank öffnet immer nur eine Datenbank Instanz Shared Pool SGA Datenbank Buffer Cache Redo Log Buffer SMON DBW0 PMON CKPT LGWR Others Speicherstrukturen Hintergrundprozesse SQL-Anweisung verarbeiten • Verbindung zu einer Instanz durch: – Benutzer-Prozess – Server-Prozess • Die Komponenten des Oracle Server werden je nach Typ der SQL-Anweisung verwendet: – Abfragen geben Zeilen zurück. – DML-Anweisungen protokollieren Änderungen. – Commit stellt Transaktionsgültigkeit sicher. • Einige Komponenten des Oracle Server beteiligen sich nicht an der Verarbeitung von SQLAnweisungen. Verbindung mit einer Instanz Benutzer Server Oracle Server Server Benutzer Client Server Anwendungsserver Benutzer Browser Server Abfragen bearbeiten • Parsen: – sucht nach identischer Anweisung – überprüft Syntax, Objektnamen und Privilegien – sperrt während der Parse-Phase verwendete Objekte – erzeugt und speichert den Ausführungsplan • Ausführen: identifiziert die ausgewählten Zeilen • Abrufen: gibt Zeilen an den Benutzer-Prozess zurück Shared Pool Shared Pool LibraryCache Data DictionaryCache • Library-Cache enthält Anweisungstext, geparsten Code und Ausführungsplan. • Data Dictionary-Cache enthält Tabellen-, Spaltenund andere Objektdefinitionen sowie Privilegien. • SHARED_POOL_SIZE definiert Größe. Datenbank Buffer-Cache Datenbank BufferCache • • • Speichert die zuletzt verwendeten Blöcke Buffer-Größe basiert auf DB_BLOCK_SIZE DB_BLOCK_BUFFERS definiert Buffer-Anzahl Program Global Area (PGA) • Nicht gemeinsam benutzbar • Nur Server-Prozess kann darauf schreiben • Enthält: – Sortierbereich – Session-Informationen – Cursor-Status – Stack Space ServerProzess PGA DML-Anweisung bearbeiten SGA BenutzerProzess Datenbank Buffer Cache Shared Pool Redo Log Buffer UPDATE emp ... 4 ServerProzess 1 1 2 3 Daten Kontroll dateien dateien Redo LogDateien Datenbank Redo Log Buffer Redo Log Buffer • • LOG_BUFFER definiert Größe • • Wird sequentiell genutzt Speichert Änderungen, die die Instanz durchgeführt hat Zyklischer Buffer Rollback-Segment Alter Zustand Neuer Zustand Tabelle Rollback-Segment DML-Anweisung COMMIT-Verarbeitung Instanz SGA 1 Datenbank Buffer Cache ServerProzess Shared Pool Redo Log Buffer 4 3 LGWR 2 BenutzerProzess Daten Kontroll Redo dateien dateien LogDateie n Datenbank Log Writer (LGWR) Instanz SGA Shared Pool LGWR schreibt, wenn: Datenbank Buffer Cache • ein Commit auftritt • der Redo Log-Buffer ein Redo Log Buffer Drittel gefüllt ist LGWR • mehr als 1 MB Redo existiert • bevor DBW0 schreibt Daten Kontroll dateien dateien Redo LogDateien Datenbank Andere Prozesse der Instanz • Andere erforderliche Prozesse: – DB-Writer (DBW0) – Process Monitor (PMON) – System Monitor (SMON) – Checkpoint (CKPT) • Der Archiver-Prozess (ARC0) wird üblicherweise bei einer Produktiv -Datenbank verwendet DB-Writer (DBW0) Instanz SGA Datenbank Buffer Cache Shared Pool DBW0 schreibt, wenn: • es viele “dirty” Redo Log Buffer Buffer gibt • es wenig freie Buffer gibt • eine Zeitüber- DBW0 schreitung aufritt • ein Checkpoint Daten Kontroll dateien dateien Redo LogDateien Datenbank aufritt SMON: System Monitor • Stellt die Instanz automatisch wieder her – Änderungen aus den Redo Logs vorwärts rollen – Datenbank für Benutzer-Zugriff öffnen – nicht festgeschriebene Transaktionen zurückrollen • • Führt freien Speicherplatz zusammen Gibt temporäre Segmente frei PMON: Process Monitor PMON führt nach Prozess-Abstürzen eine Bereinigung durch: • • • Transaktion zurückrollen Sperren freigeben andere Ressourcen freigeben Archivierung • Archivier-Modus der Datenbank – NOARCHIVELOG für Datenbanken, die kein Recovery nach Plattenfehlern benötigen – ARCHIVELOG für Produktiv-Datenbanken • ARC0-Prozess – archiviert automatisch Online Redo Logs – hält die Protokollierung aller Änderungen der Datenbank fest Zusammenfassung In dieser Lektion sollten Sie Folgendes gelernt haben: • Datenbank-Dateien erklären: Datendateien, Kontrolldateien, Online Redo Logs • SGA-Speicherstrukturen erklären: DB BufferCache, Shared SQL Pool und Redo Log Buffer • wichtige Hintergrundprozesse: DBW0, LGWR, CKPT, PMON, SMON und ARC0 • Schritte der SQL-Verarbeitung erklären: Parsen, Ausführen, Abrufen