Jeder kennt und nutzt diese Begriffe, doch wo liegen die genauen Unterschiede? Gemeint sind Installation, Patching und Upgrade einer Oracle-Datenbank. Dieser Artikel zeigt, welche konkrete Aufgabe jeder Schritt erfüllt und worauf es in der Praxis ankommt.
Die Installation
Was ist eine Installation ?
Unter einer Installation versteht man das Bereitstellen der Oracle-Software auf dem Betriebssystem. Dabei werden alle erforderlichen Programme, Tools und Dateien auf die Festplatte des Servers geladen und für den Einsatz vorbereitet.
Die Software Installation lässt sich mit dem Bau eines Hauses vergleichen: Sobald die Installation erfolgreich abgeschlossen ist, steht das Gebäude inklusive aller verlegten Leitungen für Strom und Wasser.
Software-Installation vs. Datenbank-Erstellung: Wo liegt der Unterschied ?
Wer eine Oracle-Umgebung bereitstellt, stellt schnell fest: Es handelt sich hierbei um zwei eigenständige Prozesse, die technisch strikt voneinander getrennt sind.
- Software Installation
- Legt das Fundament/die Grundlagen für die “Einrichtung des Gebäudes” durch ein oder mehrere Datenbanken
- Erstellen einer Datenbank – die “Einrichtung” hinzufügen
- Strukturen (Files) werden angelegt in denen dann die Daten gespeichert werden können
Der Unterschied einfach erklärt
Um diesen Unterschied zu verstehen, hilft der Vergleich mit dem Hausbau:
Nach der Software-Installation steht das Gebäude. Die Wände, das Dach, Strom und Wasser sind angeschlossen. Aber einziehen kann man noch nicht – es fehlen die Möbel. Die eigentliche Datenbank ist in diesem Vergleich die Inneneinrichtung. Erst wenn Tisch, Couch und Bett an ihrem Platz stehen, wird das Haus bewohnbar und man kann darin leben.
Warum trennt Oracle diese Schritte? Die Vorteile in der Praxis
Warum macht Oracle uns also die Mühe und teilt das in zwei verschiedene Schritte mit unterschiedlichen Tools auf? Der Grund ist, dass ein einziges „Oracle Home“ mehrere Datenbanken gleichzeitig enthalten kann.
Unser Haus-Beispiel kann auch ein Mehrfamilienhaus sein: Man baut das große Gebäude nur ein einziges Mal. Danach kann man darin beliebig viele Wohnungen einrichten. Für DBAs bringt das unschlagbare Vorteile.
- Effiziente Speicherplatznutzung: Die Software belegt nur ein einziges Mal Platz auf der Festplatte.
- Minimaler Wartungsaufwand: Statt mehrere Oracle Homes zu warten kann man auch einfach nur eines warten.
- Struktur und Ordnung: Kein Datei-Chaos, kein Versions-Unterschiede der verschiedenen DBs. Der Server bleibt überblicklich.
Patching
Was ist ein Patch
Ein Patch ist in der Regel eine Behebung von Bugs und Sicherheitslücken. Genau aus diesem Grund ist er sehr wichtig für den Betrieb der Datenbank.
Oracle bringt diese Patches im festen Vierteljahres-Rhythmus heraus. Natürlich gibt es Kritiker, die nach jedem gefundenen Bug/ jeder gefundenen Sicherheitslücke sofort einen Patch fordern. Aber gerade heutzutage, wo dank KI ständig neue Lücken entdeckt werden, würde das im Chaos enden. Kein Unternehmen kann alle paar Tage seine Server herunterfahren. Das Sammeln der Fehler in einem großen Quartals-Patch gibt den DBAs etwas unschätzbar Wichtiges, nämlich Planbarkeit. Man testet und pacht koordiniert einmal im Drei-Monats-Takt, statt jede Woche. Das ist der perfekte Kompromiss aus „so schnell wie möglich“ und „so wenig wie möglich” in den Betrieb der Datenbank ein zu greifen. Inzwischen bietet Oracle auf Linux auch monatliche Critical Security Patches, die man bei Bedarf einspielen kann.
Um wieder auf unser Hausbau-Beispiel zurückzukommen: Wenn die Software das Haus ist und die Datenbank die Inneneinrichtung, dann ist das Patchen die Reparatur der Möbel. Man kann sich das so vorstellen, ein Holzbein an einem Sessel ist leicht angerissen. Natürlich wartet man nicht, bis sich jemand daraufsetzt, das Holz komplett durchbricht und der Sessel zusammenbricht, sondern reparierst den Schaden rechtzeitig. Genau das leistet ein Patch: Er behebt Schwachstelle im System, bevor es im produktiven Alltag zu Problemen kommt.
Arten von Patching
Wenn es an das Einspielen der Updates geht, stellt uns Oracle vor eine grundlegende Entscheidung. Es gibt nämlich zwei völlig unterschiedliche Herangehensweisen, wie man einen Patch einspielen kann. Das In-Place-Patching und das Out-of-Place-Patching. Und wie so oft in der IT gibt es hier kein Richtig oder Falsch. Welche Methode man wählt, hängt ganz von der jeweiligen Datenbank-Umgebung ab. Beide Wege haben ihre absolute Berechtigung, funktionieren aber grundlegend anders.
In Place Patching
Beim In-Place-Patching wird der Patch innerhalb des bereits existierenden und laufenden Oracle Homes eingespielt. Man muss hier zwar keine Daten oder Konfigurationsdateien verschieben, dafür aber steht man vor einer klaren technischen Einschränkung, denn während des patchens müssen ALLE Datenbanken aus diesem Oracle Home heruntergefahren werden. Das Ergebnis ist eine längere Downtime, die sich selbst mit bester Vorbereitung nur bedingt minimieren lässt.
Vorteile:
- Keine Pfadänderungen in Scripten und Programmen die nicht mit der
$ORACLE_HOMEVariable arbeiten. - Keine möglichen Fehler beim Verschieben der Daten
- Kein zusätzlicher Speicherplatz nötig (da sozusagen das
$ORACLE_HOMEnur erweitert wird)
Nachteile:
- Längere Downtime für alle Datenbanken aus diesem
$ORACLE_HOME. - Höheres Ausfallrisiko falls das Patchen fehlschlägt (es muss zuerst der Fehler behoben oder ein Rollback gemacht werden, bevor die Datenbank wieder in Betrieb gehen kann).
Wann sollte man InPlace-Patching verwenden ?
InPlace-Patching sollte dann verwendet werden wenn in so vielen Skripten/ Programmen absolute Pfade des Oracle Homes verwendet wurden das die Bearbeitung dieser Skripts/ Programme länger dauert als die Downtime inkl. Fehlerpuffer.
Out of Place Patching
Wer eine minimale Downtime will, nutzt das Out-of-Place-Patching. Hierbei wird parallel ein neues Oracle Home erstellt und gepatcht, während die Datenbank im alten Verzeichnis ungestört weiterarbeitet. Der eigentliche Versionswechsel passiert erst beim Daten verschieben. Soweit, so gut. Umständlich wird das Out-of-Place-Patching erst wenn in vielen Skripten/ Programmen der Absolute Pfad des Oracle Homes anstelle der Variable verwendet wird.
Vorteile:
- Minimale Downtime
- Fehler beim Einspielen des Patches beeinflussen nicht die laufende(n) Datenbank(en)
- Einfaches Rollback (einfach die Konfigurationsdatein wieder auf das alte Oracle Home verschieben und die Datenbank mit
datapatchauf den alten Zustand zurückversetzten)
Nachteil:
- Programme / Scripts mit absolutem Oracle Home Pfad müssen umgeschrieben werden
- Zusätzlicher Speicherplatz notwendig, da man ein ganzes neues Oracle Home anlegt
- Verschieben und anpassen von Konfigurationsdatein. Nutzt man Oracle AutoUpgrade kümmert sich das Tool darum.
Wann sollte man Out-of-Place-Patching verwenden ?
Out-of-Place-Patching sollte man dann verwenden wenn das Zeitfenster der Downtime möglichst gering gehalten werden soll. Zu beachten ist dabei aber die Dauer der Bearbeitung der Skripte/ Programme mit dem absoluten Pfad des Oracle Homes.
Um Fehler beim Verschieben der Daten zu verhindern und das Patchen zu erleichtern hat Oracle das AutoUpgrade Tool eingebaut, doch über dieses Thema sprechen wir in einem anderen Blog.
Hausbau vergleich
Um auf das Beispiel mit dem Hausbau zurückzukommen. Die Fliesen sind kaputt und müssen erneuert werden. Beim InPlace-Patching würde man dies in dem jetzigen Haus machen. Somit müsste man keine Möbel transportieren oder die neue Adresse dem Postboten mitteilen. Jedoch kann man während der Renovierung nicht im Haus leben. Dies wird vor allem zum Problem wenn es während der Renovierung zum Beispiel zu einem Wasserschaden kommt. Die Folge ist, das man noch länger nicht in der Wohnung leben kann.
Beim Out of Place hingegen wird ein neues Haus gebaut mit den korrekten Fliesen. Falls dort ein Wasserschaden eintreten sollte, hat das keine Auswirkungen auf die Bewohner des Hauses. Diese werden erst, nachdem das neue Haus erfolgreich gebaut wurde, darüber informiert, dass sie ihre Sachen und Möbel packen müssen und in das neue Haus ziehen müssen.
DataPatch
Zu dem Zeitpunkt, an dem der Patch in die Software des Oracle Homes eingespielt wurde, weiß die Datenbank selbst noch nichts davon. Erst durch den Aufruf des DataPatch Tools, den man direkt in der geöffneten Datenbank ausführt, werden die Objekte und Komponenten auf den neuesten Stand gebracht.
In unserem Hausbau-Beispiel würde das bedeuten: Das Tool OPatch liefert das neue Holzbein für den angerissenen Sessel. Erst der Befehl Datapatch repariert den Sessel, damit man diesen wieder sicher benutzen kann.
UTLRP Skript
Der letzte Punkt beim Patchen ist der UTLRP-Skript Aufruf. Nach dem Datapatch gibt es in der Datenbank oft ungültige Objekte und Komponenten. Das utlrp-Skript kompiliert diese ungültigen Objekte einfach neu, damit sie wieder den Status VALID erhalten und die Datenbank danach wieder fehlerfrei läuft.
Upgrade
Was ist ein Upgrade
Der gravierende Unterschied zwischen einem Upgrade und einem Patch ist, dass bei einem Upgrade nicht nur Sicherheitslücken und Fehler behoben werden, sondern auf eine neue Version umgestiegen wird, die auch neue Funktionen und Features mitbringt. Ein Patch repariert das Bestehende, während ein Upgrade die Software auf die nächste Stufe hebt. Ein wichtiger Punkt ist hierbei, dass es kein In-Place Upgrade gibt sondern nur ein Out-Of-Place Upgrade.
In unserem Hausbau-Beispiel wäre das Upgrade ein neues Haus: Es erfüllt zwar den gleichen Zweck (Wohnen), aber im Gegensatz zum alten Haus hat es vielleicht einen Balkon, eine Fußbodenheizung und modernere Technik. Es ist von Grund auf neu.