hwr-notes/Datenbanken/Zusammenfassungen/g_Speicherstrukturen - zusammenfassung.md
2026-04-09 11:24:56 +02:00

5.1 KiB
Raw Blame History

Speicherstrukturen Zusammenfassung

Dozent: A. Zimmermann | HWR Berlin | 2026 | Folien 111


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 37)

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 810)

System Global Area SGA (Folien 89)

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