single.php
< Beitrag von Christoph Förster

Block Corruption im Redo Log der Oracle Datenbank

Es kommt zwar selten von, aber immer mal wieder:

Eine Block Corruption bei einer Oracle-Datenbank.

Erst letzte Woche rief mich ein Kunde mit genau diesem Fehlerbild an:

Wenn die Datenbank nach Best Practices von Oracle installiert ist, hat man mit dem zweiten Member der gleichen Redo Log-Gruppe die Chance, einen Datenverlust zu vermeiden.

Man kann mittels einer Abfrage auf V$LOG prüfen, ob die betroffene Gruppe 2 Member hat:

In diesem Beispiel sind 4 Redo Log-Gruppen vorhanden mit je 2 Membern. Die Dateigröße pro Redo Log-File beträgt 52 MByte.

Nun ein Blick in die einzelnen Redo Log-Gruppen:

Hier sieht man, dass es tatsächlich 2 Member pro Redo Log-Gruppen gibt. Damit besteht die Möglichkeit, bei einem Block-Fehler in einem Member dieses mit einer Kopie des 2. Log-Member zu überschreiben.

Damit lässt sich die Datenbank wieder einwandfrei betreiben.

Was aber tun, wenn es nur ein Log-File pro Redo Log-Gruppe gibt? Oder beide Member einer Redo Log-Gruppe betroffen sind?

Dann sieht die Sache schon anders aus. In diesem Fall hilft nur das Leeren des betroffenen Redo Log-Files, um die Datenbank wieder betreiben zu können.

Damit werden die Informationen aus diesem Redo Log-File gelöscht und die Datenbank läuft weiter.

Ich empfehle in diesem Fall unbedingt eine neue Redo Log-Gruppe anzulegen mit (dann nach Best Practises) zwei Membern.

Danach sollte man solange einen Logswitch durchführen mittels

und einem Checkpoint

erzwingen, um das geleerte Redo Log-File in den Status „inactive“ zu bewegen, um die Gruppe dann löschen zu können.

Ein Datenverlust ist nicht auszuschließen, wenn man hier nicht sauber arbeitet!!

Folgen
X

Folgen

E-mail : *
Kategorie: Oracle-Database | Schlagwörter: , | Kommentare: 0

Beitrag kommentieren