Oracle Datenbank Architektur nicht nur für Einsteiger Martin Klier Klug GmbH integrierte Systeme, Teunz DOAG Webinar, 08.03.2012
Referent Martin Klier Datenbankadministrator für Fachliche Schwerpunkte: - Performanceoptimierung / Tuning hochverfügbare Systeme Cluster und Replikation Linux seit 1997 Oracle Database seit 2003
Referent Vorträge 2012 April: Las Vegas Oktober: San Francisco 2012 Kontakt: martin.klier@klug-is.de Weblog: http://www.usn-it.de November: Nürnberg
Unternehmen Klug GmbH integrierte Systeme Lindenweg 13 92552 Teunz http://www.klug-is.de Führendes und erfolgreiches Unternehmen der Software- und Steuerungssysteme für die Intralogistik Konzeption, Beratung, Softwareerstellung, Elektronik, Kommissioniertechnik, Hardware,... 270 Mitarbeiter / 50 Auszubildende
Dieses Webinar... Oracle Datenbank-Architektur - Verbindung, Namespace(s) und Abschottung - Instanz und Datenbank - Alles Blöcke, oder was? -, Undo und was man damit macht Stets das Ziel: Das Konzept dahinter verstehen Primär für Einsteiger = Vertiefung für Erfahrene
Grundbegriffe Instance Host (=Server) SERVICE_NAME =DWH Listener :1521 Memory Segment(s) Registrieren SERVICE_NAME =INTRANET Database Processes Schema SchemaObject X Object X Anwender mit Clients
Connection + Session Instance Host (=Server) Mem.S. 3 4 Processes Database 5 Session 2 Schema SchemaObject X Object X Listener :1521 SERVICE_NAME =DWH 1 Client TNS 1. Verbindungsaufbau 2. Anforderung Session 3. Start Session 4. Übergabe Verb. 5. Kommunikation
Abschottung / Schemas Instance Host (=Server) Mem.S. Session Processes Database select * from BOB.EMPLOYEES where...; ALICE BOB EMPLOYEES EMPLOYEES User ALICE grant select on EMPLOYEES to ALICE; Schemas
Datenbank-Link DBserver1 DBserver2 Listener :1521 select * from EMP@DB_LNK where... ; Listener :1521 Aufbau einer Session EMP DB_LNK EMP Anwender mit Clients speichert / impliziert Zugangsdaten Architektur
Architekturschema (vereinfacht) SGA Listener :1521 Session Session Session Shared Pool PGAs Buffer Cache Log Buffer PMON CKPT LGWR SMON DBWn ARCn TEMP Online Tablespace Undo Tbs. Archived
Lesevorgang Buffer SGA select... ; Listener :1521 Session Shared Pool Sort, Hash, Merge Buffer Cache PGAs TEMP Tablespace Blöcke
Daten-Änderung, Database Writer SGA Listener :1521 update...; Session Shared Pool PGAs Buffer Cache PMON CKPT LGWR SMON DBWn ARCn Tablespace Blöcke TEMP Aber: Database Writer ist ein Lazy Writer! Schreibvorgang auf HDD kann extrem nachhängen!
Daten-Änderung (nur ) SGA Listener :1521 Session commit; PGAs Buffer Cache Log Buffer PMON CKPT LGWR SMON DBWn ARCn TEMP Online Tablespace Blöcke Archived
Crash! commit; TEMP Online Tablespace Blöcke Archived
Crash Recovery (nur ) SGA Listener :1521? Buffer Cache Log Buffer PMON CKPT LGWR SMON DBWn ARCn TEMP Online Tablespace Blöcke Archived
Detail: Online Group 1 INACTIVE darf überschrieben werden Members Group 2 DBWn ACTIVE darf NICHT überschrieben w. DBWn synchronisiert auf TBS LGWR CURRENT LGWR befüllt gerade aus Log Buffer Log Switch Group 3 Group 4 UNUSED war noch nie CURRENT
Log Writer Schreibt den Log Buffer ins Online Log - bei jedem Commit - wenn Log Buffer voll - nach spätestens 3 Sekunden Laufzeit bestimmt Commit-Zeit Läuft mit höchster Priorität LGWR Log Buffer Online
Online dienen der Absicherung des Cache müssen aufbewahrt werden so lange DBWn nicht in Tablespace geschrieben hat müssen aufbewahrt werden so lange ARCn nicht in Archived Log geschrieben hat werden später zyklisch überschrieben ARCn LGWR Log Buffer Online Archived
Archived werden pro RL- Group vom Archiver (ARCn) erzeugt - frühestens: nach Log Switch - spätestens: vor Überschreiben Online Log dienen dem Nachfahren von verlorenen Operationen beim Recovery aus einem Backup - Complete Recovery ARCn - Point-in-Time-Recovery werden min. bis zum nächsten Archived Backup aufbewahrt - nie überschrieben Online - später gelöscht
Das war aber nur die halbe Wahrheit... Das benötigte Transaktionsverfahren macht die Sache etwas komplizierter. Was ist UNDO...?
Undo-Konzept SGA Listener :1521 update...; Session rollback; Shared Pool Buffer Cache PMON CKPT LGWR SMON DBWn ARCn Tablespace Undo Tbs. Blöcke PGAs TEMP
Undo Records dienen dem Zurückrollen von Änderungen kein Undo- Hintergrundprozess (Session / Job / etc. schreibt selbst) werden später überschrieben ( Ringpuffer ) - frühestens: nach Abschluss der Transaktion - meist: nach Ablauf der Undo Retention - spätestens: bei Platzbedarf weitere Verwendung - für konsistentes Lesen (stets) - Flashback-Technologien (optional) Undo Tbs.
Undo: Konsistentes Lesen select * from TABLE where... ; ITL Eintrag Before Image Session geänderte, aber nicht committete Rows Undo Tbs. Undo Records
Daten-Änderung (komplett) SGA Listener :1521 update...; Session Shared Pool PGAs Buffer Cache Log Buffer PMON CKPT LGWR SMON DBWn ARCn TEMP Online Tablespace Undo Tbs. Blöcke Archived
Crash TEMP Online Tablespace Blöcke Undo Tbs. Archived
Crash Recovery SGA Listener :1521? Buffer Cache Log Buffer PMON CKPT LGWR SMON DBWn ARCn TEMP Online Tablespace Blöcke Undo Tbs. Archived
SMON nach Crash Recovery Konkurr. Abfrage select... ; SGA Listener :1521 Session rollback by SMON Shared Pool PGAs Buffer Cache Log Buffer PMON CKPT LGWR SMON DBWn ARCn TEMP Online Tablespace Blöcke Undo Tbs. Archived X
Q&A
Abschluß Quellen: http://www.oracle.com/technology http://wikipedia.org http://www.usn-it.de (eigenes Blog) Alle Marken und Logos sind Eigentum der jeweiligen Unternehmen. Diese Präsentation dient zu Schulungszwecken und stellt keine Werbung und keine Leistungszusicherung dar, weder durch den Autor, den Referenten noch durch die Klug GmbH integrierte Systeme. Irrtum und Änderungen vorbehalten. (c) 2013 by Martin Klier, Klug GmbH integrierte Systeme, Teunz Dieses Werk steht unter der Creative-Commons-Lizenz by-sa Vielen Dank für Ihre Aufmerksamkeit!