Oracle Datenbank - Architektur H.-G. Hopf Georg-Simon-Ohm Fachhochschule Nürnberg Datenbank-Architektur / 1 Η. G.Hopf / 27.03.2003
Inhaltsverzeichnis Einleitung Datenbank - Dateien Logische Datenbankstruktur Datenbank-Architektur Datenbank-Architektur / 2 Η. G.Hopf / 27.03.2003
Inhaltsverzeichnis Einleitung Datenbank - Dateien Logische Datenbankstruktur Datenbank-Architektur Datenbank-Architektur / 3 Η. G.Hopf / 27.03.2003
Einleitung ORACLE» ORDBMS: object-relational database management system» Version: 8.1.7» Version: 9.2.0.2.0 Datenbank-Architektur / 4 Η. G.Hopf / 27.03.2003
Einleitung ORACLE 8i ORDBMS Kernel SQL SQL*Plus PL/SQL SQL*DBA SQL*Loader EXPORT/IMPORT SQL*Report ORA*Forms ORA*Reports CONTEXT Oracle*Graphics Developer2000 Designer2000 Datenbank-Architektur / 5 Η. G.Hopf / 27.03.2003
Einleitung ORACLE 8i Oracle Webserver and developer tools Oracle Video Server and developer tools SVRMGR Oracle Enterprise Manager Oracle Enterprise Backup Oracle Precompilers Oracle Procedure Builder JDBC SQLJ Java Datenbank-Architektur / 6 Η. G.Hopf / 27.03.2003
Einleitung 3 Ebenen-Konzept Anwender-Ebene Externe Ebene Anwendung Anwendung Anwendung Externe Sicht Logische Ebene Konzeptionelle / logische Sicht Interne Ebene Interne Sicht Datenbank-Architektur / 7 Η. G.Hopf / 27.03.2003
Inhaltsverzeichnis Einleitung Datenbank - Dateien Logische Datenbankstruktur Datenbank-Architektur Datenbank-Architektur / 8 Η. G.Hopf / 27.03.2003
Datenbank-Dateien Eine Datenbank besteht aus einem Programmpaket zur Manipulation von gespeicherten Daten. In einer Datenbank werden zwei Arten von Daten gespeichert:» Benutzerdaten (user data)» Verwaltungsdaten (system data) Datenbank-Architektur / 9 Η. G.Hopf / 27.03.2003
Datenbank-Dateien Man unterscheidet drei Dateigruppen:» Art der Datei abgelegte Information» Datenbank-Files DB-Objekte (user data, system data)» REDO-Log-Files Recovery-Information» Kontroll-Files Verwaltungsinformation Datenbank-Architektur / 10 Η. G.Hopf / 27.03.2003
Datenbank-Dateien In den Datenbank-Files sind alle Datenbank-Objekte, die mit der Datenbank verwaltet werden können, gespeichert. Das sind:» Oracle Data Dictionary» angelegte Datenstrukturen (TABLE, VIEW)» Zugriffsstrukturen (INDEX)» prozedurale Objekte (PL/SQL procedures)» Nutzdaten Datenbank-Architektur / 11 Η. G.Hopf / 27.03.2003
Datenbank-Dateien Der Datenbestand der Oracle-Datenbank wird physisch in bis zu 255 betriebssystemkonformen Dateien auf verschiedenen Plattenlaufwerken abgelegt. Datenbank-Architektur / 12 Η. G.Hopf / 27.03.2003
Datenbank-Dateien REDO-Log-Files» REDO-Log-Files sind Dateien, in denen alle Änderungen bzw. Transaktionen der Datenbank (Recovery Information) protokolliert werden. Jede Oracle Datenbank hat mindestens zwei aktive (online) REDO-Log-Files. Die Online-REDO-Log-Files werden nacheinander beschrieben. Wenn ein Online-REDO-LOG-File voll ist, wird zum jeweils anderen gewechselt; dieser wird überschrieben. Datenbank-Architektur / 13 Η. G.Hopf / 27.03.2003
Datenbank-Dateien REDO-Log-Files Datenbank-Architektur / 14 Η. G.Hopf / 27.03.2003
Datenbank-Dateien REDO-Log-Files» Es gibt zwei Modi: ARCHIVELOG-Mode: In diesem Mode wird vor dem Überschreiben eines REDO-Log-Files eine Sicherungskopie angefertigt. Damit werden alle mitprotokollierten Informationen über Transaktionen gespeichert. NOARCHIVELOG-Mode: In diesem Mode wird vor dem Überschreiben eines REDO-Log-Files keine Sicherungskopie angefertigt. Datenbank-Architektur / 15 Η. G.Hopf / 27.03.2003
Datenbank-Dateien Kontroll-Files» Ein Kontroll-File hat die Aufgabe Informationen über die Grundstruktur der Datenbank und alle Strukturänderungen zu speichern. Kontroll-File Informationen sind z.b.: Zeitpunkt der DB-Erstellung Namen der DB-Dateien Namen der REDO-Log-Files und ihre Sequenznummer Zeitpunkt des letzten Checkpoints und zugehöriger REDO-Log-File... Datenbank-Architektur / 16 Η. G.Hopf / 27.03.2003
Datenbank-Dateien Bemerkung:» Files sind für Oracle nur benannter Speicherplatz mit eigenständiger interner Struktur. Man unterscheidet zwei Sichten: physische Sicht: Dateien logische Sicht: Tablespaces Datenbank-Architektur / 17 Η. G.Hopf / 27.03.2003
Inhaltsverzeichnis Einleitung Datenbank - Dateien Logische Datenbankstruktur Datenbank-Architektur Datenbank-Architektur / 18 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Tablespace» Struktur Datenbank-Dateien sind für Oracle nur benannter Speicherplatz mit eigenständiger interner Struktur. Den physischen Oracle- Dateien ist eine logische Struktur aufgeprägt.» Der gesamte Datenbestand ist in sog. Tablespace-Bereiche gegliedert: eine Datei ist immer einem Tablespace zugeordnet. ein Tablespace kann mehreren Dateien zugeordnet sein (damit kann ein Tablespace in der Größe beliebig wachsen). Datenbank-Architektur / 19 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Tablespace Physische Sicht File1 File2 File3 File4 File6 File5 Datenbank-Architektur / 20 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Tablespace Physische Sicht File1 File2 File3 File4 File6 File5 System Tablespace Tablespace A Tablespace B Logische Sicht Datenbank-Architektur / 21 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Tablespace Physische Sicht File1 File2 File3 File4 File6 File5 System Tablespace File1 Tablespace TA File2 File4 Tablespace TB File6 File3 File5 Logische Sicht Datenbank-Architektur / 22 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Standard - Tablespace Die folgenden Tablespace-Bereiche sind standardmäßig bzw. üblicherweise vorhanden:» System-Tablespace: Ein von der Datenbank selbständig zur Verfügung gestellter Tablespace ist der System-Tablespace.» Temporary_Data-Tablespace: Der Temp-Tablespace dient dazu, temporär Objekte aufzunehmen.diese Objekte können im Rahmen der Abarbeitung von Transaktionen entstehen. Datenbank-Architektur / 23 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Standard - Tablespace» User_Data-Tablespace: Dieser Tablespace nimmt die Benutzerdaten auf.» Rollback_Data-Tablespace: Dieser Tablespace nimmt Informationen auf, die in Zusammenhang mit System-Recovery benötigt werden (recovery points).» Tools-Tablespace: Dieser Tablespace-Bereich nimmt alle Objekte auf, die zum Einsatz von Datenbank- Tools notwendig sind. Datenbank-Architektur / 24 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Standard - Tablespace» Alle Tablespaces eines Datenbanksystems können mit dem folgenden Befehl angezeigt werden: SELECT * FROM user_tablespaces Datenbank-Architektur / 25 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Standard - Tablespace» Anlegen/Erweitern von Tablespace Tablespace-Bereiche können vom DBA angelegt werden: CREATE TABLESPACE TB DATAFILE 'file6.ora' SIZE 100MB, 'file3.ora SIZE 100MB;» Hinweis: Man sollte nicht Daten verschiedener Applikationen in einem Tablespace speichern. Datenbank-Architektur / 26 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Standard - Tablespace» Anlegen/Erweitern von Tablespace Tablespace-Bereiche können vom DBA erweitert werden: ALTER TABLESPACE TB ADD DATAFILE 'file5.ora' SIZE 200MB Datenbank-Architektur / 27 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Standard - Tablespace» Löschen von Tablespace Tablespace wird gelöscht, zugeordnete Dateien werden freigegeben. leerer Tablespace DROP TABLESPACE TA; genutzter Tablespace DROP TABLESPACE TA INCLUDING CONTENTS; Datenbank-Architektur / 28 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Standard - Tablespace» Tablespace - Modi Es gibt für alle Tablespaces außer dem System-Tablespace zwei Tablespace - Modi: ONLINE: Auf alle Datenbank-Objekte dieses Tablespace- Bereichs kann zugegriffen werden. OFFLINE: Auf die Datenbank-Objekte dieses Tablespace- Bereichs kann nicht zugegriffen werden. Datenbank-Architektur / 29 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Standard - Tablespace» Änderung von Tablespace - Modi Übergang OFFLINE --> ONLINE ALTER TABLESPACE TA ONLINE; Übergang ONLINE --> OFFLINE ALTER TABLESPACE TA OFFLINE [NORMAL TEMPORARY IMMEDIATE]; Datenbank-Architektur / 30 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Standard - Tablespace» OFFLINE - Parameter: normal: Für alle Files des Tablespace wird ein Checkpoint durchgeführt; dann wird der Tablespace offline geschaltet. Das online Schalten erfordert keine Recovery-Aktion. immediate: Der Tablespace wird ohne weiter Aktionen offline geschaltet. Das online Schalten erfordert Recovery- Aktionen (im Archive-Mode der Datenbank). Datenbank-Architektur / 31 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Standard - Tablespace» OFFLINE - Parameter: temporary: Für alle online - Files des Tablespace wird ein Checkpoint durchgeführt; dann wird der Tablespace offline geschaltet.das online Schalten erfordert für diese online-files keine Recovery-Aktion.Für alle offline - Files des Tablespace wird kein Checkpoint durchgeführt, wenn der Tablespace offline geschaltet wird.das online Schalten erfordert für diese Files Recovery-Aktionen (im Archive-Mode der Datenbank). Datenbank-Architektur / 32 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Standard - Tablespace Zustand ONLINE Tablespace = SYSTEM Tablespace OFFLINE Parameter NORMAL TEMPORARY IMMEDIATE ALTER TABLESPACE... OFFLINE [Parameter] ALTER TABLESPACE... ONLINE Checkpoint Checkpoint Medium Recovery Medium Recovery ONLINE Files OFFLINE Files Datenbank-Architektur / 33 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Datenbankobjekte / Segmente» Datenbankobjekte sind: Tabellen Indizes Recovery-Information Datenbank-Architektur / 34 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Datenbankobjekte / Segmente» Alle Datenbankobjekte werden stets einem Tablespace zugeordnet.» Der Tablespace ist in Segmente aufgeteilt.» Tablespace-Segmente sind: Daten-Segmente Index-Segmente Rollback-Segemente temporäre Segmente» Jedes Datenbankobjekt belegt genau ein Segment (des entsprechenden Typs). Datenbank-Architektur / 35 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Datenbankobjekte / Segmente Datenbankobjekte Daten- Segment Logische Speicherstruktur Index- Segment Rollback- Segment temporäre Segmente Tabelle Index Rollback- Info Datenbank-Architektur / 36 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Datenbankobjekte / Segmente» Die einem Tablespace zugeordneten Tabellen werden mit dem folgenden Befehl angezeigt: SELECT * FROM user_tables Datenbank-Architektur / 37 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Extend» Um eine Anpassung von Segmenten an Objekte unterschiedlicher Größe zu erreichen und andererseits einer unkontrollierten Fragmentierung des Speicherplatzes vorzubeugen, wird mit Extends gearbeitet.» Ein Segment besteht aus einem oder mehreren Extends (unterschiedlicher Größe). Datenbank-Architektur / 38 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Extend» Man unterscheidet: Anfangs-Extend (initial extend): Dieses Extend wird zum Erstellungszeitpunkt des Datenbankobjekts, z.b. mit dem CREATE TABLE - Befehl, angelegt. Folge-Extend (next extend): Diese Extends werden angelegt, wenn der bisher verfügbare, zugeordnete Speicherbereich nicht zur Aufnahme weiterer Datensätze ausreicht. Datenbank-Architektur / 39 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Extend Die Festlegung der Anfangs-Extend-Größe erfolgt über den Parameter initial Die Anzahl der bei der Erstellung eines Segments mit angelegten Folge-Extends wird mit dem Parameter minextends definiert. Die Anzahl der insgesamt maximal möglichen Folge-Extends wird mit dem Parameter maxextends definiert. Die Größe der Folge-Extends kann festgelegt bzw. dynamisch verändert werden.die Festlegung der Folge-Extend-Größe erfolgt über den Parameter next Der Parameter pctincrease gibt den Wachstumsfaktor der Extends in % an. Datenbank-Architektur / 40 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Extend Initial extend Initial extend next extend Initial extend next extend Initial extend next extend Anfangsextend next extend next extend Folgeextend Speicherplatzbedarf next extend Erstellungszeitpunkt Zeit Datenbank-Architektur / 41 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Extend Die Definition dieser Speicherparameter erfolgt» bei der Tablespace-Definition CREATE/ALTER TABLESPACE,» und bei Datenbankobjekt-Definitionen CREATE/ALTER TABLE, CREATE/ALTER INDEX, CREATE/ALTER ROLLBACK SEGMENT, CREATE/ALTER CLUSTER, CREATE/ALTER SNAPSHOT CREATE/ALTER SNAPSHOT LOG Datenbank-Architektur / 42 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Extend» Die Definition dieser Speicherparameter erfolgt durch Angabe der STORAGE-Klausel: STORAGE( initial 20MB, next 10MB, minextents 3, maxextents 80, pctincrease 15, freelists 3)» Eine Storage-Spezifikation bei der Definition von Datenbankobjekten (z.b. Tabellendefinition) überschreibt die bei der Tablespacedefinition getroffene Storage-Spezifikation. Datenbank-Architektur / 43 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Datenbankblock DB-Block Struktur» Ein Extend besteht aus einer bestimmten Anzahl von Oracle-Datenbankblöcken.» üblicherweise hat ein Datenbankblock die Größe 2KByte.» Ein DB-Block hat die Struktur: DB-Block-Kopf DB-Block-Datenbereich Datenbank-Architektur / 44 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Datenbankblock DB-Block Struktur DB-Block Kopf DB-Block Datenbereich Datenbank-Architektur / 45 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur DB-Block Kopf Datenbankblock-Kopf» Der DB-Block-Kopf enthält Verwaltungsinformation: Feste Verwaltungsinformation: Speicherbedarf: 57 Byte Datensatz-Directory: Information zur Identifikation und Verwaltung der Datensätze. Für jeden im Datenbank-Block abgelegten Datensatz sind 2 Byte reserviert. Speicherbedarf: 2 Byte * n (n gibt die Anzahl der Datensätze an) Speicherbedarf: 2 Byte * n Transaktions-Directory: Information über die Transaktionen, die Datensätze des Blockes geändert haben. Datenbank-Architektur / 46 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur DB-Block Kopf Datenbankblock-Kopf Transaktions-Directory: Eine aktuelle Transaktion, die einen Datensatz des Blocks verändert, wird mit ihrer Nummer vermerkt. Ein Transaktionseintrag belegt 23 Byte. Die Anzahl der Transaktionsentries wird durch die Parameter festgelegt: initrans legt zu Beginn die Anzahl an Transaktionentries (1.. 255, voreingestellt 1) fest, die im Block abgelegt werden können. maxtrans legt die maximale Anzahl an Transaktionen fest, die gleichzeitig eine Update-Operation auf Datensätzen des Blocks durchführen können. Speicherbedarf: 23 Byte * initrans Datenbank-Architektur / 47 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Datenbankblock-Datenbereich DB-Block Datenbereich» Der DB-Block-Datenbereich besteht aus: DB-Block Freibereich: Der Freibereich dient dazu, Speicherplatz für sich vergrößernde Datensätze (z.b. VARCHAR,...) vorzuhalten. DB-Block Einfüge-Bereich: In diesem Bereich werden Datensätze eingefügt. Datenbank-Architektur / 48 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur DB-Block Management Freibereich Für sich vergrößernde Datensätze pctfree Schlupf DB-Block INSERT- Brereich Minimaler Füllbereich pctused Datenbank-Architektur / 49 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Datenbankblock-Datenbereich» Die DB-Block-Struktur kann über das Setzen von Parametern beeinflußt werden: pctfree - Parameter: Der pctfree - Parameter gibt an, wieviel % des DB- Block-Datenbereiches als Freibereich genutzt werden sollen. pctused - Parameter: Der pctused - Parameter gibt den Mindestfüllgrad eines DB-Blockes an. Insert-Operationen werden an Blöcken vorgenommen, deren Mindestfüllgrad noch nicht erreicht ist. Damit wird eine gleichmäßige Belegung der DB-Blöcke erreicht. freelists - Parameter: freelists Parameter gibt die Anzahl der FREE-Listen an. Datenbank-Architektur / 50 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur DB-Block Management» Überlauf Kann ein Datensatz in einem Block nicht mehr in ganzer Länge eingetragen werden, wird ein neuer Block mit genügend freiem Speicher gesucht.auf dem ursprünglich vorgesehenem Speicherplatz wird eine Referenz auf den neuen Speicherplatz hinterlegt. Datenbank-Architektur / 51 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur DB-Block Management Freibereich Für sich vergrößernde Datensätze pctfree Schlupf DB-Block INSERT- Brereich Minimaler Füllbereich pctused Datenbank-Architektur / 52 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur DB-Block Management Freibereich Für sich vergrößernde Datensätze pctfree DB-Block INSERT- Brereich Minimaler Füllbereich pctused Datenbank-Architektur / 53 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur DB-Block Management pctfree pctused Datensatz Datenbank-Architektur / 54 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur DB-Block Management Sich vergrößernder Datensatz (Variante 1) pctfree Erweiterung Datensatz pctused Datenbank-Architektur / 55 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur DB-Block Management pctfree pctused Datensatz Datenbank-Architektur / 56 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur DB-Block Management Sich vergrößernder Datensatz (Variante 2) pctfree pctused Verweis Erweiterung Erweiterung Erweiterung Datensatz Datenbank-Architektur / 57 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur DB-Block Management» Freispeicherverwaltung Blöcke, deren aktueller Füllgrad kleiner ist als der definierte Mindestfüllgrad (partiell gefüllte Blöcke) werden in eine sog. FREE-BLOCK- Liste eingetragen.» Es gibt zwei Ausprägungen: Transactions - FREE-Liste Segment - FREE-Liste Datenbank-Architektur / 58 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur DB-Block Management / Freispeicherverwaltung pctused Marke Vollständig gefüllt partiell gefüllt ungenutzt Free DB-Block Liste Transaktions-Free-Liste Segment-Free-Liste Datenbank-Architektur / 59 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur DB-Block Management Transactions - FREE-Liste innerhalb einer Transaktion durch Lösch- Operationen frei werdende Blöcke werden in dieser der aktuellen Transaktion zugeordneten FREE- BLOCK-Liste verwaltet. Solange die Transaktion nicht abgeschlossen ist, werden die frei werdenden Blöcke nicht in die Segment-FREE-Liste eingetragen. Segment - FREE-Liste Blöcke, deren aktueller Füllgrad kleiner ist als der definierte Mindestfüllgrad (partiell gefüllte Blöcke) und die von keiner Transaktion bearbeitet werden, sind in dieser FREE-Liste eingetragen. Datenbank-Architektur / 60 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur DB-Block Management Datensatz Einfüge- Operation Einfügen in Transaktions- Free-Liste möglich? nein ja in Segment- Free-Liste eintragen Einfügen in Segment-Free- Liste möglich? nein ja ja ungenutzte DB- Blöcke vorhanden? nein Folge Extend bereitstellen Datensatz einfügen Datenbank-Architektur / 61 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Datensatz Ein Datensatz hat die (physische) Struktur:»Datensatz-Kopf» Datensatz-Rumpf Datenbank-Architektur / 62 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Datensatz-Kopf:» Der Datensatz-Kopf enthält Verwaltungsinformation Datensatz-Kopf-Id (2 Byte) Anzahl der Spalten innerhalb des Datensatzes (1 Byte) 1 Byte -> 256 Spalten pro Tabelle. Da eine Identifikatonsspalte row-id vom System benutzt wird bleiben 255 Spalten für den Benutzer Verkettungsadressen (1 Byte) Cluster-Schlüssel-Informationen (1 Byte)» Der Datensatz-Kopf hat eine Größe von 2 bis 5 Byte. Datenbank-Architektur / 63 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Datensatz-Rumpf:» Im Datensatz-Rumpf befinden sich die eigentlichen Daten. Spaltenlänge: 1 Byte (NUMBER, CHAR, DATE) oder 3 Byte (VARCHAR, VCHAR2, LONG, RAW, LONG RAW) Spaltendaten Datenbank-Architektur / 64 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur Die DB-Architektur im Überblick Tablespace Segment Extend DB Bock Datensatz Datenbank-Architektur / 65 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur File Ist_zugeordnet Besteht_aus Tablespace DB Segment Art Data S Index S Ist_zugeordnet Table Index Art DB Objekt Rollback S Ist_zugeordnet Extend Temporary S DB-Block Datensatz Datenbank-Architektur / 66 Η. G.Hopf / 27.03.2003
Logische Datenbankstruktur File Interne Sicht: Betriebssystem Ist_zugeordnet Besteht_aus Tablespace DB Segment Art Data S Index S Ist_zugeordnet Table Index Art DB Objekt Rollback S Ist_zugeordnet Extend Temporary S logische Sicht DB-Block Interne Sicht: Datenbank Datensatz Datenbank-Architektur / 67 Η. G.Hopf / 27.03.2003
Data-Dictionary - Views Dictionary View Bemerkung Dba_data_files Dba_tablespaces Dba_freespace Dba_quota User_extends User_table * * * Zeigt alle DB-Files und deren Status Zeigt alle Tablespaces und deren Status Zeigt den freien Platz innerhalb der Tablespaces Zeigt die Tablespace-Quotas aller Benutzer Zeigt die Extends der Tabellen und Indizes eines Benutzers Zeigt alle Tabellen eines Benutzers *: nicht Version 9 Datenbank-Architektur / 68 Η. G.Hopf / 27.03.2003
Inhaltsverzeichnis Einleitung Datenbank - Dateien Logische Datenbankstruktur Datenbank-Architektur Datenbank-Architektur / 69 Η. G.Hopf / 27.03.2003
SW-Architektur / Konzeption Unterstützte Rechnerarchitekturen:» Ein-Prozessor-System» Symmetrisches Multiprozessor-System» Lose gekoppeltes System» Massiv paralleles System Datenbank-Architektur / 70 Η. G.Hopf / 27.03.2003
SW-Architektur / Konzeption Oracle Datenbanksystem besteht aus:» Oracle Instanz: Datenbank Cache (System Global Area - SGA) Hintergrundprozesse» Oracle Server - Prozesse: Parsen von SQL-Befehlen Ausführen von SQL-Befehlen das Lesen von DB-Blöcken aus Datenbankfiles... Datenbank-Architektur / 71 Η. G.Hopf / 27.03.2003
SW-Architektur / Konzeption DBWR LGWR DB - Cache ARCH SMON PMON CHKP Oracle Server Prozesse Oracle Instanz Datenbank-Architektur / 72 Η. G.Hopf / 27.03.2003
SW-Architektur / Konzeption Mögliche Konfigurationen:» Dedicated Server (DS) Konfiguration: Jedem Anwenderprozess ist ein Server-Prozess zugeordnet.» Multi-Threaded Server (MTS) Konfiguration: Anwenderprozess übergibt Request an Dispatcher; Dispatcher legt Request in Request-Queue (SGA) ab; Request wird wird durch beliebigen Server-Prozeß bearbeitet; das Ergebnis wird in der Response-Queue abgelegt (SGA). Datenbank-Architektur / 73 Η. G.Hopf / 27.03.2003
SW-Architektur / Konzeption DBWR LGWR DB - Cache ARCH SMON PMON CHKP Anwendungsprozesse Oracle Server Prozesse Oracle Instanz Oracle Datenbank Datenbank-Architektur / 74 Η. G.Hopf / 27.03.2003
SW-Architektur / Konzeption Mögliche Konfigurationen: Bemerkung:» Beide Konfigurationsarten können gleichzeitig genutzt werden;» Die Entscheidung, welche Konfiguration zum Einsatz kommt, wird beim Starten des Anwenderprozesses über Parameter spezifiziert. viele Online-Benutzer, moderate Datenbanklast: MTS-Konfiguration viele Prozesse, hohe Datenbanklast: DS-Konfiguration Datenbank-Architektur / 75 Η. G.Hopf / 27.03.2003
SW-Architektur / Konzeption Mögliche Konfigurationen: Oracle Instanz SGA Hintergrundprozesse REDO-Log ORDBMS Oracle8i Datenbank-Architektur / 76 Η. G.Hopf / 27.03.2003
SW-Architektur / Konzeption Oracle Instanz 1 SGA Hintergrundprozesse Oracle Instanz 2 SGA Hintergrundprozesse REDO-Log REDO-Log ORDBMS Oracle8i Datenbank-Architektur / 77 Η. G.Hopf / 27.03.2003
SW-Architektur / Konzeption Datenbank - Instanz:» Alle Datenbank-Prozesse die eine System Global Area benutzen definieren zusammen mit den zugeordneten Datenbank-Files eine Datenbank - Instanz.» Jede Datenbank - Instanz wird durch eine eindeutige Kennung SID (System Identifier) identifiziert. Datenbank-Architektur / 78 Η. G.Hopf / 27.03.2003
SW-Architektur / Konzeption Client / Server - Architektur:» schützt vor Zerstörung von Server- Programmen durch Anwenderprogramme» ermöglicht Nutzung verschiedener Rechner für Client-Prozesse und Server-Prozesse Datenbank-Architektur / 79 Η. G.Hopf / 27.03.2003
SW-Architektur / Konzeption Client / Server - Kommunikation: Client: User Program Interface (UPI) - Schnittstelle Server: Oracle Program Interface (OPI) - Schnittstelle UPI-Call Oracle-Server Prozess SQL-Befehl UPI-Call Oracle-Server Prozess UPI-Call Dispatcher Oracle-Server Prozess Multi-Threaded Server (MTS) Konfiguration Datenbank-Architektur / 80 Η. G.Hopf / 27.03.2003
SW-Architektur / Konzeption Client / Server - Kommunikation: Client: User Program Interface (UPI) - Schnittstelle Server: Oracle Program Interface (OPI) - Schnittstelle UPI-Call Oracle-Server Prozess SQL-Befehl UPI-Call Oracle-Server Prozess UPI-Call Oracle-Server Prozess Dedicated Server (DS) Konfiguration Datenbank-Architektur / 81 Η. G.Hopf / 27.03.2003
SW-Architektur / Prozessstruktur Hintergrund - Prozesse:» Jeder Hintergrundprozess hat eine genau definierte Aufgabe.» Die Koordination der Aufgaben erfolgt über die SGA. Datenbank-Architektur / 82 Η. G.Hopf / 27.03.2003
SW-Architektur / Prozessstruktur Hintergrund - Prozesse:» Database Writer (DBWR): übernimmt das Lesen und Schreiben der DB- Blöcke.» Log Writer (LGWR): übernimmt das Lesen und Schreiben der REDO-Log-Information.» Checkpoint (CKPT): übernimmt die Checkpoint-Aktivitäten vom REDO-Log Writer (LGWR) (optional). Datenbank-Architektur / 83 Η. G.Hopf / 27.03.2003
SW-Architektur / Prozessstruktur Hintergrund - Prozesse:» Process Monitor (PMON): übernimmt für einen fehlerhaften / abgebrochenen Anwenderprozess die Recovery-Aktivitäten (Freigabe von Ressourcen, Rücksetzen von offenen Transaktionen) ; wird periodisch (ca. alle 20s) aktiviert» System Monitor (SMON): übernimmt die beim Starten evtl. nötigen Recovery-Aktivitäten. Datenbank-Architektur / 84 Η. G.Hopf / 27.03.2003
SW-Architektur / Prozessstruktur Hintergrund - Prozesse:» Archiver (ARCH): übernimmt die Archivierung der REDO-Log- Files im ARCHIVELOG-Mode (optional).» Lock (LCKn): übernimmt Aufgaben in Zusammenhang mit der Parallel-Server-Konfiguration (optional).» Recoverer (RECO): übernimmt Recovery-Aufgaben in Zusammenhang mit verteilten Datenbanken (optional). Datenbank-Architektur / 85 Η. G.Hopf / 27.03.2003
SW-Architektur / Prozessstruktur Hintergrund - Prozess: Database Writer (DBWR)» Der Database Writer (DBWR) schreibt DB- Blöcke aus dem DB-Cache in die Datenbank zurück, wenn: alle DB-Blöcke im DB-Cache belegt sind und weitere DB-Blöcke von einem Prozess angefordert werden die Anzahl der modifizierten DB-Blöcke im Cache einen bestimmten Prozentsatz übersteigt der DBWR-Prozess eine bestimmte Zeit nicht aktiviert wurde ein Checkpoint erreicht wird Datenbank-Architektur / 86 Η. G.Hopf / 27.03.2003
SW-Architektur / Prozessstruktur Hintergrund - Prozess: Database Writer (DBWR)» Vor dem DBWR-Schreibvorgang wird der LGWR-Prozess aktiviert. Datenbank-Architektur / 87 Η. G.Hopf / 27.03.2003
SW-Architektur / Prozessstruktur Hintergrund - Prozess: REDO-Log Writer (LGWR)» Daten werden mit diesem DBWR-Verfahren nicht unbedingt zum Transaktionsende zurückgeschrieben (asynchrones commit).» Daten einer abgeschlossenen Transaktion dürfen nicht durch einen Fehler verändert werden.» Um Datenverlust zu verhindern, werden alle Änderungen im DB-Cache zusätzlich im REDO-Log Puffer gesichert Datenbank-Architektur / 88 Η. G.Hopf / 27.03.2003
SW-Architektur / Prozessstruktur Hintergrund - Prozess: REDO-Log Writer (LGWR)» Der REDO-Log Writer (LGWR) schreibt den REDO-Log-Puffer in die Datenbank (REDO- Log Dateien) zurück, wenn: der REDO-Log-Puffer zu 80 % gefüllt ist der DBWR-Prozess einen Schreibvorgang beginnen will ein Benutzer ein Transaktionsende (COMMIT) signalisiert Datenbank-Architektur / 89 Η. G.Hopf / 27.03.2003
SW-Architektur / Prozessstruktur Hintergrund - Prozess: CHECKPOINT Prozess (CKPT)» Das Setzen eines Checkpoints bedeutet: markieren der betroffenen DB-Blöcke Änderung der File-Header Aktivieren des LGWR-Prozesses und des DBWR- Prozesses» Falls zur Bewältigung einer hohen Last die CHECKPOINT-Option gesetzt ist, übernimmt der CKPT-Prozess diese Aufgaben Datenbank-Architektur / 90 Η. G.Hopf / 27.03.2003
SW-Architektur / DB-Cache System Global Area (SGA)» Die Prozess-Kommunikation wird über Speicherbereiche abgewickelt» Die System Global Area speichert permanent vorhandene Verwaltungsinformation Datenbank-Architektur / 91 Η. G.Hopf / 27.03.2003
SW-Architektur / DB-Cache System Global Area (SGA)}» Die System Global Area ist unterteilt in die Bereiche: Data Buffer Cache: Zwischenspeicherung der zuletzt bearbeiteten DB- Blöcke. Dictionary Cache: Zwischenspeicherung von Data-Dictionary Information. Redo Log Buffer: Zwischenspeicherung von REDO-Log Informationen bezüglich Transaktionen Shared SQL Pool: Zwischenspeicherung von übersetztem und ausführbarem SQL-Code. Datenbank-Architektur / 92 Η. G.Hopf / 27.03.2003
SW-Architektur / DB-Cache System Global Area (SGA)» Die SGA Größe ist an die Bedürfnisse anpassbar DB-Block Size SGA - Size small medium large 2K 4500K 6800K 17000K 4K 5500K 8800K 21000K Datenbank-Architektur / 93 Η. G.Hopf / 27.03.2003
SW-Architektur / DB-Cache Program Global Area (PGA)» Eine Program Global Area ist einem Prozess zugeordnet und enthält die jeweilige Prozess- Kontrollinformation. Datenbank-Architektur / 94 Η. G.Hopf / 27.03.2003
SW-Architektur / Parameter INIT.ORA ############################################################################## # Example INIT.ORA file --> SGA size: small ############################################################################## # # $Header: init.ora 1.2 94/10/18 16:12:36 gdudey Osd<desktop/netware> # $ init.ora Copyr (c) 1991 Oracle # ############################################################################## db_name = oracle # Datenbankname db_files = 20 # Anzahl der DB-Files control_files = C:\ORAWIN95\DATABASE\ctl1orcl.ora # Verzeichnispfad Control-Files compatible = 7.2.0.0.0 Datenbank-Architektur / 95 Η. G.Hopf / 27.03.2003
SW-Architektur / Parameter INIT.ORA ############################################################################## # Example INIT.ORA file --> SGA size: small ############################################################################## db_file_multiblock_read_count = 8 db_block_buffers = 200 # Groesse des DB-BLOCK-Buffers shared_pool_size = 3500000 # Groesse des Shared Pool log_checkpoint_interval = 10000 # Groesse des Checkpoint Intervalls processes = 50 # Anzahl der simultan auf eine # Instanz zugreifenden Prozesse dml_locks = 100 log_buffer = 8192 # Groesse des LOG-Buffers sequence_cache_entries = 10 sequence_cache_hash_buckets = 10 # audit_trail = true # if you want auditing # timed_statistics = true # if you want timed statistics max_dump_file_size = 10240 # limit trace file size to 5 Meg each # log_archive_start = true # if you want automatic archiving Datenbank-Architektur / 96 Η. G.Hopf / 27.03.2003
SW-Architektur / Parameter INIT.ORA ############################################################################## # Example INIT.ORA file --> SGA size: small ############################################################################## # define directories to store trace and alert files background_dump_dest = %RDBMS72%\trace # Verzeichnispfad user_dump_dest = %RDBMS72%\trace # Verzeichnispfad db_block_size = 2048 # Groesse der DB-Bloecke snapshot_refresh_processes = 1 # Anzahl der Snapshot-Refresh Prozesse remote_login_passwordfile = shared Datenbank-Architektur / 97 Η. G.Hopf / 27.03.2003
SW-Architektur / Parameter INIT.ORA ############################################################################## # Copyright (c) 1991, 2001, 2002 by Oracle Corporation ############################################################################## ########################################### # Cache and I/O ########################################### db_block_size=4096 db_cache_size=232783872 db_file_multiblock_read_count=16 ########################################### # Cursors and Library Cache ########################################### open_cursors=300 ########################################### # File Configuration ########################################### control_files=("d:\oracle\oradata\hgh\control01.ctl", "D:\oracle\oradata\hgh\control02.ctl", "D:\oracle\oradata\hgh\control03.ctl") Datenbank-Architektur / 98 Η. G.Hopf / 27.03.2003
SW-Architektur / Parameter INIT.ORA ########################################### # Database Identification ########################################### db_domain=nbhgh db_name=hgh ########################################### # Diagnostics and Statistics ########################################### background_dump_dest=d:\oracle\admin\hgh\bdump core_dump_dest=d:\oracle\admin\hgh\cdump timed_statistics=true user_dump_dest=d:\oracle\admin\hgh\udump ########################################### # Instance Identification ########################################### instance_name=hgh Datenbank-Architektur / 99 Η. G.Hopf / 27.03.2003
SW-Architektur / Parameter INIT.ORA ########################################### # Job Queues ########################################### job_queue_processes=10 ########################################### # MTS ########################################### dispatchers="(protocol=tcp) (SERVICE=hghXDB)" ########################################### # NLS ########################################### nls_language=german nls_territory=germany nls_time_tz_format="" Datenbank-Architektur / 100 Η. G.Hopf / 27.03.2003
SW-Architektur / Parameter INIT.ORA ########################################### # Optimizer ########################################### hash_join_enabled=true query_rewrite_enabled=false star_transformation_enabled=false ########################################### # Pools ########################################### java_pool_size=33554432 large_pool_size=45088768 shared_pool_size=77594624 ########################################### # Processes and Sessions ########################################### processes=150 Datenbank-Architektur / 101 Η. G.Hopf / 27.03.2003
SW-Architektur / Parameter INIT.ORA ########################################### # Redo Log and Recovery ########################################### fast_start_mttr_target=300 ########################################### # Security and Auditing ########################################### O7_DICTIONARY_ACCESSIBILITY=TRUE remote_login_passwordfile=exclusive ########################################### # Sort, Hash Joins, Bitmap Indexes ########################################### pga_aggregate_target=102760448 sort_area_size=4194304 Datenbank-Architektur / 102 Η. G.Hopf / 27.03.2003
SW-Architektur / Parameter INIT.ORA ########################################### # Miscellaneous ########################################### aq_tm_processes=1 compatible=9.2.0.0.0 ########################################### # System Managed Undo and Rollback Segments ########################################### undo_management=auto undo_retention=10800 undo_tablespace=undotbs1 Datenbank-Architektur / 103 Η. G.Hopf / 27.03.2003
SW-Architektur / Zusammenfassung Datenbank-Architektur / 104 Η. G.Hopf / 27.03.2003
SW-Architektur / Parameter SQL: CREATE TABLE Datenbank-Architektur / 105 Η. G.Hopf / 27.03.2003
SW-Architektur / Parameter SQL: CREATE TABLE Datenbank-Architektur / 106 Η. G.Hopf / 27.03.2003
SW-Architektur / Parameter SQL: CREATE TABLE Datenbank-Architektur / 107 Η. G.Hopf / 27.03.2003
SW-Architektur / Parameter SQL: CREATE TABLE Datenbank-Architektur / 108 Η. G.Hopf / 27.03.2003