Was schreibt Oracle bei einem INSERT in den UNDO-Block?

Die Frage hat letztens einer meiner Kursteilnehmer gestellt und ich gebe zu, ich habe etwas darüber nachdenken müssen. Die Antwort ist aber relativ einfach.

Aber zuerst einmal: was muss Oracle nicht in den Undo-Block schreiben? Ganz klar, das „Before-Image“, die alten Daten, die vorher in dem Datensatz waren. Das wird wird beim UPDATE oder DELETE gemacht, denn da müssen die geänderten bzw. gelöschten Daten wiederhergestellt werden können.

Was macht Oracle denn bei einem INSERT? Sehr verkürzt ausgedrückt, sucht Oracle einen „freien“ Block in dem Segment und legt dort einen neuen Datensatz an, in dem die neuen Daten dort abgelegt werden. Ein derartiger Datensatz wird – wie immer bei Oracle – über die ROWID identifiziert. Und was müsste Oracle machen, wenn der INSERT rollback-ed würde? Oracle muss den Datensatz löschen (DELETE). Dazu benötigt Oracle die ROWID des Datensatzes. Und genau diese schreibt Oracle beim INSERT in den Undo-Block: die ROWID des neuen Datensatzes. Das ist zwar nur eine minimale Datenmenge (die ROWID ist ja nur 10 Byte groß), aber ganz ohne UNDO geht es nicht.

Wieder mal was gelernt .. 🙂

Veröffentlicht unter O-AI, O-AI - Infos für Teilnehmer, O-AI - Lessons learned ... | Kommentare deaktiviert für Was schreibt Oracle bei einem INSERT in den UNDO-Block?

PL/SQL-Debugging mit dem Oracle SQL Developer

Ein hartnäckiger Fehler in einer PL/SQL-Prozedur hat mich in den letzten Tagen dazu gebracht, mich nicht nur intensiver mit dieser Prozedur zu beschäftigen, sondern auch dazu, die Debugging-Möglichkeiten des SQL-Developer kennenzulernen

Weiterlesen

Veröffentlicht unter Allgemein | Kommentare deaktiviert für PL/SQL-Debugging mit dem Oracle SQL Developer

Ein bisschen was zu DataGuard …

Wenn man über Hochverfügbarkeit einer Oracle Datenbank nachdenkt, dann kommt man um DataGuard nicht herum. Der Real-Application-Cluster (RAC) ist zwar eine sehr spannende Technologie – das muss ich als RAC-Referent einfach sagen – aber RAC sorgt nur dafür dass – wenn ein Knoten im Cluster ausfällt, der DB-Service weiter verfügbar ist. Das hilft aber nicht beim Ausfall des Storages oder eines ganzen Rechenzentrums.
Weiterlesen

Veröffentlicht unter O-AI, O-NF11GDBA | Kommentare deaktiviert für Ein bisschen was zu DataGuard …

Oracle Standard Edition vs. Oracle Enterprise Edition

Immer wieder stellt sich die Frage, ob man für den Betrieb einer Oracle-Datenbank-Applikation die Standard-Edition (SE) der Datenbank oder die Enterprise-Edition (EE) benötigt. Und ein Blick auf die Listenpreise (http://shop.oracle.com/) zeigt, dass es sich lohnen kann, wenn man sich über das Thema Gedanken macht.
Weiterlesen

Veröffentlicht unter O-AI, O-NF11GDBA | Kommentare deaktiviert für Oracle Standard Edition vs. Oracle Enterprise Edition

Links zum Kurs „Oracle 11g New Features für den DBA“

Aller guten Dinge sind drei, und so möchte ich auch für den dritten Kurs, für den ich bei der Trivadis Referent bin,  den O-NF11gDBA (Oracle 11g New Features für DBAs), den Teilnehmern Hinweise auf weitergehende Informationen geben.
Weiterlesen

Veröffentlicht unter Allgemein, O-NF11GDBA, TrivadisContent | Kommentare deaktiviert für Links zum Kurs „Oracle 11g New Features für den DBA“
Pages: Prev 1 2 3 ... 11 12 13 14 15 16 17 18 19 20 21 Next