Wird geladen...

Wir haben festgestellt, dass Ihre Browsersprache Chinesisch ist. Möchten Sie unsere chinesische Website besuchen? [ Schließen ]
Von: Emma

Was ist ein Oracle-Redo-Log und warum es unverzichtbar ist

Ein Oracle-Redo-Log zeichnet jede Änderung an Ihrer Datenbank auf. Wenn ein Nutzer einen INSERT-, UPDATE– oder DELETE-Befehl ausführt, schreibt Oracle diese Änderung nicht direkt auf die Festplatte. Zuerst wird sie protokolliert und anschließend in die Redo-Log-Dateien geschrieben.

Wenn die Instanz abstürzt, spielt Oracle diese protokollierten Änderungen beim nächsten Start ab und stellt alle abgeschlossenen Transaktionen wieder her. Dies bildet die Grundlage der Dauerhaftigkeit gemäß dem ACID-Prinzip.

Funktionsweise des Oracle-Redo-Logs

Oracle verwaltet zwei Arten von Redo-Logs:

  • Online-Redo-Logs – die aktiven Dateien, in die Oracle zyklisch schreibt
  • Archivierte Redo-Logs – Offline-Kopien gefüllter Online-Logs für langfristige Wiederherstellungen

Bevor wir tiefer einsteigen, hier vier Begriffe, die im gesamten Leitfaden vorkommen:

  • Log-Gruppe: Eine Sammlung identischer Redo-Log-Dateien. Oracle schreibt gleichzeitig in alle Mitglieder einer Gruppe.
  • Log-Mitglied: Eine einzelne physische Datei innerhalb einer Gruppe.
  • Log-Switch: Der Moment, in dem Oracle die aktuelle Log-Gruppe vollständig befüllt hat und zur nächsten verfügbaren Gruppe wechselt.
  • SCN (System Change Number): Eine eindeutige, stetig steigende Nummer für jede Transaktion. Oracle nutzt sie, um Datenkonsistenz bei Wiederherstellungsvorgängen zu gewährleisten.

Oracle-Redo-Log-Dateien: Aufbau und Multiplexing

Eine Redo-Log-Datei ist eine vorreservierte Datei fester Größe auf einem Speichermedium. Im Gegensatz zu Datendateien werden Redo-Logs zyklisch verwendet. Wenn die letzte Gruppe voll ist, springt Oracle zurück zur ersten Gruppe und überschreibt diese – allerdings erst, nachdem die Gruppe archiviert und ihre Änderungen per Checkpoint in die Datendateien geschrieben wurden.

Oracle gliedert Redo-Log-Dateien in eine zweistufige Struktur: Gruppen und Mitglieder. Eine Gruppe ist eine logische Einheit aus einem oder mehreren identischen Mitgliedsdateien. Der Log-Writer-Prozess (LGWR) schreibt identische Redo-Einträge gleichzeitig in jedes Mitglied der aktuellen Gruppe.

Multiplexing bedeutet, mehrere Mitglieder derselben Gruppe auf unterschiedlichen physischen Festplatten abzulegen. Fällt eine Festplatte aus und beschädigt ein Mitgliedsfile, läuft die Datenbank weiter, solange mindestens ein Mitglied der Gruppe lesbar bleibt. Ohne Multiplexing kann der Verlust einer einzigen Redo-Log-Datei zum Ausfall der gesamten Datenbank führen.

Bedeutung der Statuswerte von Log-Dateien

Bei einer Abfrage von V$LOG wird jeder Gruppe einer von vier Statuswerten zugewiesen:

Status Bedeutung
CURRENT Die Gruppe, in die der LGWR gerade schreibt
ACTIVE Ein Log-Switch hat stattgefunden, aber die Änderungen wurden noch nicht vollständig per Checkpoint in die Datendateien geschrieben. Für die Instanzwiederherstellung weiterhin erforderlich
INACTIVE Alle Änderungen wurden per Checkpoint übernommen. Diese Gruppe kann wiederverwendet werden
UNUSED Die Gruppe wurde neu hinzugefügt und wurde noch nie beschrieben

Anzeigen der Redo-Log-Konfiguration

Mit folgender Abfrage lassen sich Gruppen, Mitglieder, Größen und aktueller Status einsehen:

sql
SELECT 
    a.GROUP#, 
    a.STATUS, 
    b.MEMBER, 
    a.BYTES/1024/1024 AS SIZE_MB
FROM V$LOG a 
JOIN V$LOGFILE b ON a.GROUP# = b.GROUP#
ORDER BY a.GROUP#;

Hinzufügen und Entfernen von Redo-Log-Gruppen und Mitgliedern

Neue Gruppe hinzufügen (zwei Mitglieder auf separaten Festplatten für Multiplexing):

sql
ALTER DATABASE ADD LOGFILE GROUP 4
('/u01/app/oracle/oradata/REDO/log4a.rdo',
 '/u02/app/oracle/oradata/REDO/log4b.rdo') SIZE 512M;

Mitglied zu bestehender Gruppe hinzufügen:

sql
ALTER DATABASE ADD LOGFILE MEMBER
'/u02/app/oracle/oradata/REDO/log1b.rdo' TO GROUP 1;

Gruppe entfernen:

sql
ALTER DATABASE DROP LOGFILE GROUP 4;
Tipp: Entfernen Sie niemals eine Gruppe mit dem Status CURRENT oder ACTIVE. Um die aktuelle Gruppe zu löschen, führen Sie zuerst ALTER SYSTEM SWITCH LOGFILE aus, warten bis der Status auf INACTIVE wechselt und entfernen Sie sie anschließend.

Suchen und Verwalten der Speicherorte von Oracle-Redo-Log-Dateien

Bei der Wahl des Speicherorts für Redo-Log-Dateien stehen zwei Prioritäten im Vordergrund: Leistung und Redundanz.

Bei Verwendung von Oracle Managed Files (OMF) übernimmt Oracle Namensvergabe und Ablage automatisch anhand der Parameter DB_CREATE_ONLINE_LOG_DEST_n. Unabhängig von der Ablagemethode gilt eine feste Regel: Legen Sie niemals Mitglieder derselben Gruppe auf derselben physischen Festplatte ab. Befinden sich beide Mitglieder auf einem ausfallenden Volume, bietet Multiplexing keinen Schutz. Verteilen Sie Mitglieder stets auf unterschiedliche Mount-Punkte, Speichercontroller oder ASM-Diskgruppen.

Prüfen der Speicherorte von Oracle-Redo-Log-Dateien

Fragen Sie V$LOGFILE ab, um den Speicherort jedes Mitglieds zu sehen und festzustellen, ob es sich auf einem regulären Dateisystem oder in ASM befindet:

sql
SELECT 
    GROUP#, 
    TYPE, 
    MEMBER 
FROM V$LOGFILE 
ORDER BY GROUP#;

Verschieben von Redo-Log-Dateien an einen neuen Speicherort

Dieses Verfahren wird verwendet, um Logs auf schnelleren Speicher zu migrieren oder Ablagefehler zu korrigieren. Die unten beschriebene Umbenennungsmethode funktioniert mit allen Oracle-Versionen.

1. Fahren Sie die Datenbank ordnungsgemäß herunter, damit alle Redo-Daten auf die Festplatte geschrieben werden:

sql
SHUTDOWN IMMEDIATE;

2. Kopieren Sie die Dateien auf Betriebssystemebene mit cp (Linux) oder copy (Windows) an den neuen Pfad. Oracle übernimmt keine Dateiverschiebung – dieser Schritt muss manuell ausgeführt werden.

3. Binden Sie die Datenbank ein:

sql
STARTUP MOUNT;

4. Aktualisieren Sie die Pfade in der Kontrolldatei:

sql
ALTER DATABASE RENAME FILE '/alter_disk/log1a.rdo' TO '/neuer_disk/log1a.rdo';
ALTER DATABASE RENAME FILE '/alter_disk/log1b.rdo' TO '/neuer_disk/log1b.rdo';

5. Prüfen Sie vor dem Öffnen, ob alle Pfade aktualisiert wurden:

sql
SELECT GROUP#, TYPE, MEMBER FROM V$LOGFILE ORDER BY GROUP#;

6. Öffnen Sie die Datenbank:

sql
ALTER DATABASE OPEN;
Tipp: Überprüfen Sie jeden Pfad in Schritt 4 vor der Ausführung. Stimmt der Pfad im SQL-Befehl nicht mit der in Schritt 2 kopierten Datei überein, schlägt das Öffnen der Datenbank in Schritt 6 fehl.

Größe von Oracle-Redo-Logs und Häufigkeit von Log-Switches – vollständige Erklärung

Log-Größe und Switch-Häufigkeit hängen direkt zusammen. Die Größe der Redo-Logs bestimmt, wie viele Änderungsdaten Oracle speichern kann, bevor es zur nächsten Gruppe wechseln muss. Jeder Switch löst einen Checkpoint aus, wodurch der Database-Writer-Prozess (DBWn) geänderte Daten aus dem Arbeitsspeicher auf die Festplatte schreibt.

Sind die Logs zu klein, finden Switches zu häufig statt. Ständige Checkpoints erzeugen einen E/A-Flaschenhals und machen sich typischerweise über das Warteereignis „log file switch (checkpoint incomplete)“ bemerkbar.

Zielwert ist ein Switch alle 15 bis 30 Minuten während der Lastspitzen. Häufigere Switches deuten eindeutig auf zu kleine Log-Dateien hin.

Prüfen der aktuellen Switch-Häufigkeit

Fragen Sie V$LOG_HISTORY ab, um die Anzahl der stündlichen Switches der letzten sieben Tage einzusehen:

bash
SELECT 
    TRUNC(FIRST_TIME, 'HH') AS HOUR,
    COUNT(*) AS SWITCHES
FROM V$LOG_HISTORY
WHERE FIRST_TIME > SYSDATE - 7
GROUP BY TRUNC(FIRST_TIME, 'HH')
ORDER BY 1;

Achten Sie auf Stunden mit hoher Switch-Anzahl. Diese stellen Ihre Lastspitzen dar und dienen als Referenz für die Größenanpassung.

Größenanpassung von Redo-Logs je nach Auslastung

Nutzen Sie diese Formel als Ausgangswert:

Maximale Redo-Rate (MB/Min) × 30 Min = Ideale Log-Größe

Für übliche OLTP-Auslastungen sind 500 MB bis 1 GB ein sinnvoller Ausgangswert. Bei Datenbanken mit umfangreichen Batch-Jobs oder Tagesabschlussverfahren richten Sie die Größe an der Spitzenlast aus – nicht am täglichen Durchschnitt. Eine Auslegung nach dem Durchschnitt führt genau dann zu Auslastungsstörungen, wenn maximale Leistung erforderlich ist.

Praktisches Beispiel: Eine Datenbank mit 200 MB großen Logs erfuhr während eines nächtlichen Batch-Ladevorgangs 456 Switches pro Stunde. Nach Erhöhung der Log-Größe auf 22 GB verschwand das Warteereignis „log file switch (checkpoint incomplete)“ vollständig aus den häufigsten Wartevorgängen im AWR-Bericht, zudem verkürzte sich das Batch-Fenster um 40 %.

Anpassen der Größe von Redo-Log-Dateien

Die Größe bestehender Log-Dateien kann nicht direkt verändert werden. Vorgehensweise: Neue größere Gruppen hinzufügen, durch die Gruppen zyklisch wechseln und anschließend alte Gruppen entfernen.

1. Neue Gruppen mit gewünschter Zielgröße hinzufügen:

sql
ALTER DATABASE ADD LOGFILE GROUP 4 ('/u01/app/oracle/oradata/redo04.log') SIZE 2G;
ALTER DATABASE ADD LOGFILE GROUP 5 ('/u01/app/oracle/oradata/redo05.log') SIZE 2G;
ALTER DATABASE ADD LOGFILE GROUP 6 ('/u01/app/oracle/oradata/redo06.log') SIZE 2G;

2. Erzwingen eines Log-Switch, damit Oracle zu den neuen Gruppen wechselt:

sql
ALTER SYSTEM SWITCH LOGFILE;

3. Sobald alte Gruppen den Status INACTIVE erhalten, entfernen Sie diese:

sql
ALTER DATABASE DROP LOGFILE GROUP 1;

4. Wiederholen Sie Schritt 3 für alle übrigen alten Gruppen.

Tipp: Möglicherweise müssen Sie ALTER SYSTEM SWITCH LOGFILE mehrmals ausführen, um alle alten Gruppen zu durchlaufen. Überprüfen Sie stets in V$LOG, ob eine Gruppe den Status INACTIVE hat, bevor Sie sie entfernen.

Der ARCHIVELOG-Modus, Wiederherstellungen und wann Redo-Logs Ihre Datenbank retten

Jede Oracle-Datenbank läuft in einem von zwei Modi: NOARCHIVELOG oder ARCHIVELOG.

Im NOARCHIVELOG-Modus werden gefüllte Redo-Logs einfach überschrieben. Eine Wiederherstellung ist nur bis zum letzten vollständigen Backup möglich – alle nachfolgenden Änderungen gehen verloren.

Im ARCHIVELOG-Modus speichert Oracle eine dauerhafte Kopie jedes Redo-Logs, bevor dieser wiederverwendet wird. Dadurch lassen sich alte Backups wiederherstellen und die archivierten Logs abspielen, um bis zum Zeitpunkt des Ausfalls wiederherzustellen. Für jede Produktionsdatenbank ist der ARCHIVELOG-Modus zwingend erforderlich.

Funktionsweise der Instanzwiederherstellung nach einem Absturz

Wenn eine Instanz abstürzt und neu gestartet wird, führt Oracle automatisch einen zweistufigen Wiederherstellungsvorgang aus:

  1. Vorwärtsspielen (Roll forward): Oracle wendet alle Änderungen aus den Redo-Logs auf die Datendateien an, sodass diese dem Zustand im Arbeitsspeicher zum Absturzzeitpunkt entsprechen.
  2. Rückgängigmachen (Roll back): Oracle erkennt alle laufenden, nicht abgeschlossenen Transaktionen und macht diese rückgängig, um einen konsistenten Datenzustand herzustellen.

Ein manueller Eingriff ist nicht erforderlich. Dieser Vorgang wird abgeschlossen, bevor die Datenbank geöffnet wird.

Prüfen des aktuellen Modus und Aktivieren von ARCHIVELOG

Prüfen Sie den aktuellen Archivierungsstatus:

bash
ARCHIVE LOG LIST;

Wird „No Archive Mode“ angezeigt, gehen Sie wie folgt vor, um den Modus zu aktivieren:

1. Datenbank herunterfahren:

sql
SHUTDOWN IMMEDIATE;

2. Datenbank einbinden:

sql
STARTUP MOUNT;

3. ARCHIVELOG-Modus aktivieren:

sql
ALTER DATABASE ARCHIVELOG;

4. Datenbank öffnen:

sql
ALTER DATABASE OPEN;

Häufige Probleme mit Redo-Logs und deren Lösungen

Symptom Wahrscheinliche Ursache Lösung
Switches alle 1–2 Minuten Log-Dateien zu klein Log-Größe per Hinzufügen und Entfernen von Gruppen erhöhen
Warteereignis log file sync E/A-Flaschenhals auf dem Log-Speicher Logs auf schnelleren Speicher (SSD oder NVMe) verschieben
log file switch (checkpoint incomplete) Nicht genügend Log-Gruppen vorhanden Weitere Gruppen hinzufügen, damit der DBWn genug Zeit für Checkpoints hat
Archivziel voll; Datenbank blockiert Archivspeicher nicht überwacht Speicher erweitern, Archive umlagern oder per RMAN bereinigen

Wenn Redo-Logs nicht ausreichen: Unternehmens-Backup mit i2Backup

Redo-Logs bilden die erste Schutzebene von Oracle. Sie übernehmen automatisch die Instanzwiederherstellung und stellen sicher, dass keine abgeschlossene Transaktion bei einem unerwarteten Instanzausfall verloren geht.

Doch Redo-Logs haben Grenzen. Sie können keine Wiederherstellung nach versehentlichem Datenlöschen, dauerhaftem Festplattenausfall oder Beschädigungen durchführen, die bereits per Checkpoint in die Datendateien geschrieben wurden. Zudem bieten sie keine zentrale Verwaltung von Backup-Richtlinien für mehrere Datenbanken.

Für diese Szenarien benötigen Sie eine dedizierte Backup-Lösung. i2Backup ist eine Unternehmens-Backup-Plattform, die die Lücken der Redo-Logs schließt.

Hauptfunktionen von i2Backup

  • Echtzeit- und geplante Datenbanksicherungen: i2Backup unterstützt eigenständige Oracle-Instanzen sowie Cluster-Umgebungen wie RAC und ADG. Es zeichnet Redo- und Archiv-Logs kontinuierlich auf, sodass das RPO nahe Null bleibt. Die Point-in-Time-Wiederherstellung erlaubt die Wiederherstellung der Datenbank zu jedem beliebigen Zeitpunkt – nicht nur bis zum letzten Backup-Checkpoint.
  • Tabellenbasierte Wiederherstellung: Neben vollständigen Datenbankwiederherstellungen unterstützt i2Backup das Sichern und Wiederherstellen einzelner Tabellen – hilfreich, wenn nur ein Teil der Daten nach versehentlichem Löschen oder einer Beschädigung wiederhergestellt werden muss.
  • Flexible Backup-Ziele: Sicherungen können gleichzeitig auf lokalen Speicher, NAS oder Cloud-Zielen abgelegt werden, um einzelne Ausfallpunkte in der Backup-Infrastruktur zu beseitigen.
  • Zentrale Verwaltung: Eine webbasierte Konsole ermöglicht die Planung, Überwachung und Verwaltung von Backup-Aufgaben über mehrere Datenbank-Hosts hinweg, ohne zwischen verschiedenen Tools wechseln zu müssen.

Ein vollständiger Datenschutz-Stack

Für Oracle-Umgebungen, die zusätzlich Hochverfügbarkeit oder Echtzeit-Replikation erfordern, bietet Info2soft zwei ergänzende Produkte an:

  • i2Availability sorgt für Echtzeit-Datenreplikation und automatischen Failover zwischen Produktiv- und Standby-Servern, damit Dienste auch bei Hardwareausfällen weiterlaufen.
  • i2Stream übernimmt die Datenbankreplikation und Synchronisation über heterogene Plattformen hinweg und unterstützt Oracle, MySQL, PostgreSQL und weitere Systeme.

Gemeinsam mit i2Backup decken diese Tools alle Anforderungen an den Datenschutz ab – von der instanzbezogenen Absturzwiederherstellung bis zur plattformübergreifenden Katastrophenwiederherstellung.

Klicken Sie auf den Button, um eine kostenlose Testversion der Katastrophenwiederherstellungslösungen von Info2soft zu erhalten.

KOSTENLOSE 60-Tage-Testversion

Fazit

Oracle-Redo-Logs sind die Grundlage der dauerhaften Datenspeicherung in Datenbanken. Sie protokollieren jede abgeschlossene Änderung, ermöglichen automatische Absturzwiederherstellungen und sorgen bei korrekter Größenanpassung und Konfiguration für einen störungsfreien Datenbankbetrieb ohne Leistungsengpässe.

Die zentralen Erkenntnisse dieses Leitfadens:

  • Multiplexen Sie Redo-Log-Mitglieder auf separaten Festplatten, um einzelne Ausfallpunkte zu beseitigen
  • Zielen Sie auf einen Log-Switch alle 15 bis 30 Minuten unter Spitzenlast ab; häufigere Switches deuten auf zu kleine Log-Dateien hin
  • Betreiben Sie Produktionsdatenbanken stets im ARCHIVELOG-Modus
  • Richten Sie die Log-Größe an der Spitzenlast aus, nicht am täglichen Durchschnittswert

Trotzdem sind Redo-Logs keine vollständige Backup-Strategie. Sie schützen vor Instanzabstürzen, nicht vor versehentlichem Datenverlust, Hardwareausfällen oder der zentralen Verwaltung von Wiederherstellungen für mehrere Datenbanken. Hier schließt eine dedizierte Lösung wie i2Backup von Info2soft die Lücke – mit kontinuierlichen Oracle-Sicherungen, Point-in-Time-Wiederherstellung und zentraler Verwaltung Ihrer gesamten Umgebung.

Keine Kurzbiografie vorhanden

Weitere verwandte Artikel

[Gelöst] So beheben Sie den VMware‑Fehler „Cannot Synchronize Host“
Beheben Sie den VMware‑Fehler „cannot synchronize host“, indem Sie Kommunikationsunterbrechungen zwischen vCenter und den ESXi‑Verwaltungsagenten ermitteln. Dieser Leitfaden bietet einen praxisbewährten Arbeitsablauf zur Behebung von Synchronisierungsfehlern zwischen vCenter und Host, unter anderem durch die Fehlerbehebung bei hängenden Diensten, der Konnektivität von Port 902 sowie Zeitabweichungen bei der Gastsynchronisierung mit dem Host.
Artikel lesen
MySQL gegenüber Oracle: Vergleich von Leistung, Syntax, Kosten und Einsatzszenarien
Unsicher bei der Wahl zwischen MySQL und Oracle? Dieser Leitfaden erläutert die wesentlichen Unterschiede hinsichtlich Leistung, Syntax, Kosten und Einsatzszenarien, damit Sie die passende Datenbank für Ihre Anforderungen auswählen können.
Artikel lesen
ALTER SYSTEM ARCHIVE LOG bei Oracle: CURRENT, ALL und STOP
Die Verwendung des falschen Archivlog-Befehls kann zu fehlgeschlagenen Sicherungen, Problemen bei der Wiederherstellung oder sogar einer blockierten Datenbank führen. Diese Anleitung erläutert die Funktionsweise der Oracle-Optionen CURRENT, ALL und STOP, deren Einsatzbereiche sowie die Risiken, die Administratoren kennen müssen.
Artikel lesen
Anleitung zur Umwandlung von OVA in QCOW2 unter Linux, Windows und Proxmox
Möchten Sie eine virtuelle Appliance von VMware oder VirtualBox auf KVM-basierte Plattformen migrieren? Diese Anleitung erläutert die Umwandlung von OVA in QCOW2 unter Linux, Windows und Proxmox und enthält Schritt-für-Schritt-Befehle, Importverfahren sowie Lösungen für gängige Probleme bei der Umwandlung.
Artikel lesen
Inhaltsverzeichnis:
Bleiben Sie über die neuesten Tipps informiert
Abonnieren Sie unseren Newsletter für aktuelle Einblicke, Neuigkeiten und exklusive Inhalte. Sie können sich jederzeit abmelden.
Abonnieren
Bereit, Ihre Unternehmensdatensicherheit zu verbessern?
Starten Sie eine 60-tägige Testversion oder sehen Sie sich eine Demo an, um zu erfahren, wie Info2soft Unternehmensdaten schützt.
Bitte füllen Sie das Formular aus und senden Sie es ab – unser Kundenservice wird sich in Kürze bei Ihnen melden.
Mit dem Absenden dieses Formulars bestätige ich, dass ich die Datenschutzerklärung.
{{ isSubmitting ? 'Wird gesendet...' : 'Absenden' }}