mirror of
https://github.com/theoleuthardt/hwr-notes.git
synced 2026-06-05 23:41:08 +00:00
5.1 KiB
5.1 KiB
Speicherstrukturen – Zusammenfassung
Dozent: A. Zimmermann | HWR Berlin | 2026 | Folien 1–11
1. Überblick (Folie 2)
Oracle verwaltet eigene Speicherstrukturen auf dem Datenträger und im Arbeitsspeicher zwecks effizienter und konsistenter Datenbearbeitung.
| Ort | Strukturen |
|---|---|
| Datenträger | Tablespaces, Datenbankdateien, Segmente, Redo-Log-Dateien |
| Arbeitsspeicher | System Global Area (SGA), Program Global Area (PGA), User Global Area (UGA) |
2. Datenträger (Folien 3–7)
Tablespace (Folie 3)
Ein Tablespace enthält theoretisch mehrere Tabellen und Indizes, verteilt auf mehrere Datenbankdateien.
Tablespace
├── Tabelle A, Tabelle B, Tabelle C
├── Index D, Index E
├── Datenbankdatei 1
└── Datenbankdatei 2
Hierarchie der Strukturen (Folie 4)
Ein separates Tablespace ist für jede Anwendung gedacht (alle User, Tabellen, Indizes, Prozeduren).
| Ebene | Beschreibung |
|---|---|
| Datenbank | Besteht aus mehreren Tablespaces |
| Tablespace | Besteht aus mehreren Datenbankdateien |
| Datenbankdatei | Besteht aus mehreren Segmenten (Extenten), zugeordnet zu Tabellen oder Indizes |
| Segment | Besteht aus mehreren Blöcken |
| Block | Kleinste Einheit, die gelesen/geschrieben werden kann |
Ist eine Tabelle voll, kann sie durch ein Segment (Extent) erweitert werden.
Logische vs. Physische Objekte (Folie 5)
| Typ | Beispiele |
|---|---|
| Logische Objekte | Tabellen, Indizes, User, Prozeduren |
| Physische Objekte | Tablespace, Datenbankdatei, Segment (Extent), Block |
CREATE TABLE mit Storage-Klausel (Folie 5)
CREATE TABLE T (
A INTEGER, B VARCHAR2(20)
)
TABLESPACE myTabSpc STORAGE (
INITIAL 1M -- Anfangssegment
NEXT 500K -- Extente (weitere Segmente)
MINEXTENTS 1 -- minimale Anzahl der Segmente
MAXEXTENTS 100 -- maximale Anzahl der Segmente
PCTINCREASE 10 -- Größe der Segmente wächst um 10%
);
Tablespace-Verwaltung (Folie 6)
-- Tablespace anzeigen
SELECT * FROM user_tablespaces;
SELECT * FROM dba_tablespaces;
-- Tablespace erstellen
CREATE TABLESPACE orion
DATAFILE 'c:\oracle\oradata\ora\orion.dbf'
SIZE 10M
AUTOEXTEND ON NEXT 200K MAXSIZE 200M;
-- Datenbankdatei hinzufügen
ALTER TABLESPACE orion
ADD DATAFILE 'c:\oracle\oradata\ora\orion2.dbf'
SIZE 10M AUTOEXTEND ON NEXT 100K MAXSIZE 800M;
-- Tablespace offline/online schalten
ALTER TABLESPACE orion OFFLINE IMMEDIATE;
ALTER TABLESPACE orion ONLINE;
-- Einzelne Datenbankdateien offline/online
ALTER DATABASE DATAFILE '...\orion3.dbf' OFFLINE DROP;
ALTER DATABASE DATAFILE '...\orion4.dbf' ONLINE;
Rollback-Segmente und Redo-Log-Dateien (Folie 7)
| Struktur | Funktion |
|---|---|
| Rollback-Segmente | Speichern Daten vor Änderungen; Anfragen lesen aus Rollback-Segmenten, solange Änderungen noch nicht COMMIT sind; in Oracle automatisch via Undo-Management im UNDO-Tablespace verwaltet |
| Redo-Log-Dateien | Enthalten schon durchgeführte Änderungen; ermöglichen Nachvollziehen der gesamten Datenänderungsgeschichte; werden zyklisch beschrieben und automatisch archiviert |
3. Arbeitsspeicher (Folien 8–10)
System Global Area – SGA (Folien 8–9)
| Komponente | Beschreibung |
|---|---|
| Database-Buffer-Cache | Enthält Datenblöcke (z. B. Zeilen einer Tabelle), die angezeigt/geändert werden müssen; lädt mehrere Zeilen (auch benachbarte) für hohe Zugriffsgeschwindigkeit; wird von speziellen Algorithmen verwaltet (Verdrängung nicht benötigter Daten) |
| Dirty List | Liste mit Blockadressen aus dem Database-Buffer-Cache, deren Daten geändert wurden; geänderte Blöcke werden nach COMMIT anhand der Dirty List in die Datenbank geschrieben |
| Redo-Log-Buffer | Protokolliert Daten vom Database-Buffer-Cache für den Fall eines unerwarteten Systemabsturzes |
| Shared Pool | Verarbeitet SQL-Anweisungen: Benutzerrechte prüfen, Existenz von Tabellen/Spalten prüfen, Syntax prüfen, Optimierung; nutzt Metadaten aus dem Data Dictionary (Tablespace SYSTEM) |
| Large Pool | Speicherplatz für System-Komponenten wie z. B. Recovery-Manager |
| Java Pool | Virtuelle Umgebung für Java-Anwendungen |
Program Global Area – PGA (Folie 10)
Beinhaltet Informationen, die für die Steuerung der gesamten Oracle-Prozesse notwendig sind.
User Global Area – UGA (Folie 10)
Beinhaltet Informationen, die einem aktuell verbundenen Benutzer zugeordnet sind (Sitzung).
Zusammenfassung
| Ebene | Struktur | Funktion |
|---|---|---|
| Datenträger | Tablespace | Container für Anwendungsdaten |
| Datenbankdatei | Physische Dateien im Tablespace | |
| Segment/Extent | Erweiterbare Speichereinheit für Tabellen/Indizes | |
| Block | Kleinste I/O-Einheit | |
| Rollback-Segment | Daten vor Änderung (UNDO) | |
| Redo-Log-Datei | Daten nach Änderung (REDO) | |
| Arbeitsspeicher | SGA | Globaler Speicher: Buffer-Cache, Dirty List, Redo-Log-Buffer, Shared Pool, Large Pool, Java Pool |
| PGA | Prozesssteuerung | |
| UGA | Benutzer-Sitzungsdaten |