News zu Oracle

Near-Zero-Downtime-Migration mit Oracle GoldenGate

Wenn du “Oracle Datenbank Migration” hörst, klingelt da bei dir auch direkt die Alarm­glo­cke? Ver­ständ­lich! Denn meistens sind diese Umzüge leider mit teuren, mehr oder weniger langen Aus­fall­zei­ten für deine An­wen­dun­gen verbunden. Aber was, wenn wir dir sagen, dass es auch anders geht? In diesem Beitrag tauchen wir gemeinsam in die Welt von Oracle Gold­en­Ga­te ein. Wir zeigen dir, wie du diese lästige Downtime auf ein absolutes Minimum re­du­zie­ren kannst.

Oracle - blk

Das erwartet dich in diesem Beitrag 

Wieso dauern Mi­gra­tio­nen überhaupt meist so lange?

Off­line­war­tun­gen an der Oracle Datenbank sind zuweilen nicht zu vermeiden. Sei es, weil veraltete Hardware getauscht, auf ein neues Release ge­wech­selt oder eine Off­line­war­tung der Datenbank durch­ge­führt werden muss. Migrierst du auf Basis von RMAN-Backups und Ar­chi­velogs, kannst du diese Downtime relativ gering halten. Ein reiner Hard­ware­um­zug ohne Wechsel des Releases oder Patch­le­vels lässt sich – un­ab­hän­gig von der Da­ten­bank­grö­ße – in weniger als einer Stunde erledigen. Zumindest wenn er sauber geplant und vor­be­rei­tet ist. Aber bereits ein ver­meint­lich simpler Quar­tals­patch kann beim Ti­me­zon­e­up­grade zu langen Downtimes führen. Es gibt zahl­rei­che weitere Fälle, in denen ein schnelles Mi­gra­ti­ons­sze­na­rio nicht möglich ist oder auf­wän­di­ge Nach­ar­bei­ten anfallen.

Einige typische Fälle dafür sind:

  • Das Ti­me­zon­e­up­grade, das im Zuge der Critical Patch Updates anfällt, wird aufgrund der hohen Menge an timezone-be­haf­te­ten Daten sehr lang dauern.
  • Du willst den Zei­chen­satz einer Datenbank ändern.
  • Du willst Daten in großem Umfang in andere Ta­b­le­spaces oder Schemata verschieben.
  • Struk­tu­rel­le Än­de­run­gen am Da­ten­mo­dell, wie zum Beispiel Änderung von Da­ten­ty­pen oder Entfernen von Spalten, betreffen große Datenmengen.
  • Ein Wechsel des En­di­an­for­mats ist er­for­der­lich, z.B. bei einer Migration von AIX oder HP-UX auf Linux. Dabei ist der Einsatz des Trans­por­ta­ble Ta­b­le­space Feature mög­li­cher­wei­se nicht möglich, weil du keine En­ter­pri­se Edition li­zen­ziert hast.
  • Die Datafiles oder Objekte sind sehr stark frag­men­tiert und du willst sie re­or­ga­ni­sie­ren, möchtest aber nicht auf Re­de­fi­ni­ton zurückgegreifen.

In vielen dieser genannten Fälle (und sicher einigen mehr) müsstest du wahr­schein­lich auf DataPump als Mi­gra­ti­ons­werk­zeug zu­rück­grei­fen. In jedem Fall könnten aber auch bei „in-place“-Änderungen Downtimes anstehen, die weit über dem be­trieb­lich ak­zep­ta­blen Maß liegen.

Die Krux an diesen Än­de­run­gen ist immer, dass die be­trof­fe­ne Datenbank während der gesamten War­tungs­zeit nicht oder nur ein­ge­schränkt zur Verfügung steht. Ein Grund hierfür kann sein, dass die Datenbank für die Wartung in einem Modus betrieben werden muss, der keine Nut­zer­inter­ak­tio­nen zulässt. Ein weiterer Grund ist, dass im Fall von Mi­gra­tio­nen Än­de­run­gen auf der Quell­da­ten­bank, die ab Mi­gra­ti­ons­start anfallen, verloren wären, da sie nicht mehr auf das Ziel­sys­tem über­tra­gen werden können.

Oracle Gold­en­Ga­te: Der Da­ten­puf­fer während der Wartung

An dieser Stelle kommt Oracles Data In­te­gra­ti­on Tool „Oracle Gold­en­Ga­te (OGG)“ ins Spiel. Ei­gent­lich als Re­pli­ka­ti­ons­tool kon­zi­piert, kannst du es ebenso gut als Mi­gra­ti­ons­werk­zeug nutzen und die Downtime – un­ab­hän­gig vom Szenario und der Da­ten­bank­grö­ße – auf wenige Minuten drücken. Der Schlüssel hierbei ist, dass Gold­en­Ga­te alle Än­de­run­gen, die auf einer Datenbank vor­ge­nom­men werden, abgreifen, in einem portablen Format zwi­schen­spei­chern und sie später auf einer anderen Datenbank nach­ar­bei­ten kann.

Die folgende Abbildung zeigt die logische Ar­chi­tek­tur von Oracle Gold­en­Ga­te für das initiale Laden von Daten und für die Syn­chro­ni­sie­rung von DML- und DDL-Ope­ra­tio­nen. Dies ist die Grund­kon­fi­gu­ra­ti­on. Je nach An­for­de­run­gen sind Va­ria­tio­nen dieses Modells möglich.

Oracle GoldenGate Logical Architecture
Quelle: https://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_about_gg.htm#GWUAD110

Schritt für Schritt zur Oracle Gold­en­Ga­te basierten Migration

Eine Mög­lich­keit, eine OGG-basierte Migration durch­zu­füh­ren, wäre zum Beispiel die folgende:

  1. Erstelle eine leere Ziel­da­ten­bank mit den ge­wünsch­ten Ei­gen­schaf­ten. Bezogen auf das oben genannte Beispiel “Ti­me­zon­e­up­grade” wäre das also: Eine leere Ziel­da­ten­bank mit der aktuellen Timezoneversion.

  2. Starte das OGG-Extract. Alle folgenden Än­de­run­gen an den Daten und der Struktur der Datenbank werden ab­ge­grif­fen und zwischengespeichert.

  3. Übertrage die Quell­da­ten­bank in die Ziel­da­ten­bank, z.B. per DataPump, in wenigen An­wen­dungs­fäl­len auch per RMAN-Clone oder ‑Restore.

  4. Starte das OGG-Replicat, welches nun alle vom Beginn der Da­ten­über­tra­gung an auf der Quell­da­ten­bank an­ge­fal­le­nen Änderung auf der Ziel­da­ten­bank nacharbeitet.

  5. Sobald die zwi­schen­ge­spei­cher­ten Än­de­run­gen komplett nach­ge­ar­bei­tet sind, sind Quell- und Ziel­da­ten­bank synchron. Jetzt – oder zu einem be­lie­bi­gen späteren Zeitpunkt – erfolgt „nur“ noch die Um­schal­tung der Anwendung von der alten auf die neue Datenbank.

Warum Near-Zero-Downtime statt Zero-Downtime?

Abgesehen von der zwangs­läu­fi­gen Downtime, die die Um­schal­tung der Anwendung an sich mit sich bringt, sind auf der Ziel­da­ten­bank noch einige kleinere Nach­ar­bei­ten er­for­der­lich. Diese rühren daher, dass während einer laufenden Oracle Gold­en­Ga­te-Re­pli­ka­ti­on aus­schließ­lich die Re­pli­ka­ti­on selbst Än­de­run­gen auf der Ziel­da­ten­bank durch­füh­ren sollte, keine User­ses­si­ons und auch keine Busi­ness­lo­gic innerhalb der Datenbank. Das würde sonst sehr wahr­schein­lich zu Re­pli­ka­ti­ons­kon­flik­ten führen, im schlimms­ten Fall unbemerkt zu logischen In­kon­sis­ten­zen. Um selbiges zu vermeiden, werden in der Ziel­da­ten­bank bis zur Pro­duk­tiv­set­zung im all­ge­mei­nen folgende Re­strik­tio­nen durchgesetzt:

  • Der Parameter job_queue_processes=0 wird gesetzt.
  • Foreign Key Cons­traints mit „on delete cascade“ oder „on delete set null“ werden disabled.
  • An­wen­dungs-Trigger werden disabled.
  • Der Zugriff auf die Datenbank wird netz­werk­sei­tig be­schränkt auf den OGG-Replicat-Prozess, sei es durch Fire­wall­re­geln oder eine TCP.INVITED_NODES-Konfiguration am Listener.

Hinweis:
Re­pli­ka­ti­ons­kon­flik­te sollten nach Mög­lich­keit vermieden werden, da sie zum Stoppen der Re­pli­ka­ti­on führen und min­des­tens eine manuelle In­ter­ven­ti­on erfordern. Je nach Umfang der Konflikte kann auch eine komplette Neu­syn­chro­ni­sa­ti­on der Ziel­da­ten­bank er­for­der­lich sein. Das ist zwar auch ohne Downtime möglich, kann aber womöglich einen bereits ver­ein­bar­ten Mi­gra­ti­ons­ter­min gefährden.

Bevor die Datenbank für die Anwendung frei­ge­ge­ben werden kann, müssen diese An­pas­sun­gen erst wieder zu­rück­ge­nom­men werden. Der Aufwand dafür wird sich zwar im Bereich weniger Minuten bewegen, ehr­li­cher­wei­se sind diese Arbeiten aber eben der Downtime zu­zu­rech­nen. Prak­ti­sche Er­fah­run­gen zeigen, dass das Stoppen, Um­kon­fi­gu­rie­ren und Starten der Anwendung(en) in der Regel aber länger dauert als die genannten Anpassungen.

Gibt es auch Nachteile von Oracle GoldenGate?

Wie so vieles im Leben hat auch Oracle Gold­en­Ga­te eine Schat­ten­sei­te: Die Lösung muss li­zen­ziert werden, die Near-Zero-Downtime-Migration ist also nicht zum Nulltarif zu bekommen. Wird das Produkt jedoch nur zeitlich begrenzt für eine Migration ein­ge­setzt, könnte eine Fixed-term-license zu einem at­trak­ti­ven Preis infrage kommen. Auch er­wäh­nens­wert in dem Zu­sam­men­hang ist die kos­ten­freie Version » Oracle Gold­en­Ga­te Free. Diese ist al­ler­dings auf Da­ten­ban­ken von maximal 20GB Größe limitiert, wird nicht mit Patches versorgt und nicht vom Oracle Support betreut. Sie ist somit, ver­gleich­bar mit der Oracle Database Express Edition, eher für Test- und Aus­bil­dungs­zwe­cke geeignet. Wende dich bei Li­zenz­fra­gen gern an die Experten von ASPICON.

Ein weiterer möglicher Nachteil: Eine Migration per Gold­en­Ga­te ist in aller Regel komplexer als bei­spiels­wei­se der simple Einsatz von RMAN, dem Character Set Migration Tool oder DataPump. Ent­spre­chend können die Pro­jekt­kos­ten höher ausfallen. Es empfiehlt sich also, die Kosten und den Aufwand für OGG mit den Kosten einer langen Downtime zu ver­glei­chen. Auch hierbei werden dir die Spe­zia­lis­ten von ASPICON gern mit einer fun­dier­ten tech­ni­schen Beratung und einer rea­lis­ti­schen Kos­ten­ein­schät­zung unter die Arme greifen.

Fazit und Empfehlung

Sollten an­ste­hen­de Mi­gra­tio­nen von oder Wartungen an Oracle Da­ten­ban­ken den Rahmen einer für das Un­ter­neh­men ak­zep­ta­blen Downtime sprengen, kann Oracle Gold­en­Ga­te ein at­trak­ti­ves Werkzeug für al­ter­na­ti­ve Mi­gra­ti­ons­we­ge sein. Die Stärke von Oracle Gold­en­Ga­te ist, dass ein ge­wünsch­tes Ziel­sys­tem während laufendem Pro­duk­tiv­be­trieb vor­be­rei­tet, mit Daten befüllt und mit der Pro­duk­tiv­da­ten­bank syn­chro­ni­siert werden kann. Die Um­schal­tung auf das neue System ist eine An­ge­le­gen­heit von wenigen Minuten. Alle ge­wünsch­ten An­pas­sun­gen sind dann bereits durch­ge­führt und es gehen keine Daten verloren.

Du bist dir unsicher, ob Oracle Gold­en­Ga­te das richtige Werkzeug für dich ist oder benötigst wei­ter­füh­ren­de Infos zur Li­zen­zie­rung?
Wir sind gern für dich da! 

Hier findest du weitere Infos aus der Welt von » Oracle aus unserem News und Insights Bereich.

icon-arrow_right_medium-violet-blue.svg

Share this article

Facebook 
Twitter 
LinkedIn 
XING 
WhatsApp 
Email