News zu Servicewelten

Tipps und Tricks zum Patchen von Da­ten­ban­ken:
Ist eine Downtime immer nötig?

“Ich würde ja meine Da­ten­ban­ken patchen, aber ich bekomme kein Zeit­fens­ter für eine Downtime!” Diesen Satz hören wir leider viel zu oft. Aber: Muss Patchen denn immer mit einer Downtime verbunden sein? Wenn du dir diese Frage auch schon gestellt hast, dann solltest du unbedingt wei­ter­le­sen. Im Rahmen unserer mehr­tei­li­gen Blogpost-Serie “Tipps und Tricks zum Thema Patchen” be­schäf­ti­gen wir uns im heutigen Beitrag nämlich genau damit. 

Dazu haben wir mit einigen Spe­zia­lis­ten aus den Teams Oracle, MS SQL und Post­greS­QL bei ASPICON ge­spro­chen und sie gefragt, warum Downtimes für viele Kunden ei­gent­lich ein Problem sind und was du tun kannst, um sie möglichst klein zu halten oder gar zu vermeiden. Die Be­son­der­hei­ten der einzelnen Welten haben wir dann nochmal über­sicht­lich für dich zusammengefasst.

Das böse “D”-Wort: Warum Downtimes für viele Kunden ein Problem sind

Zunächst sei kurz geklärt: Wenn wir im Folgenden von “Downtime” sprechen, dann meinen wir die gezielte und plan­mä­ßi­ge Ab­schal­tung eines Da­ten­bank­ser­vers im Rahmen des Patchens, wodurch es in der Regel zu Ausfällen der An­wen­dun­gen kommt. Das ist auch genau der Grund, wieso Downtimes weder bei den IT-Ver­ant­wort­li­chen noch bei der Ge­schäfts­lei­tung son­der­lich beliebt sind. Denn die Anwender können während dieser Zeit ihrer Arbeit meist nicht nachgehen oder ganze Pro­duk­ti­ons­pro­zes­se müssen ruhen. Deshalb ist es für viele Firmen sowie Ein­rich­tun­gen noch immer ein schwie­ri­ges und zum Teil auch un­ge­lieb­tes Thema. Sie nehmen ein erhöhtes Si­cher­heits­ri­si­ko – was von un­ge­patch­ten Systemen ausgeht – in Kauf. Dabei lassen sich Downtimes sowohl gut planen als auch erheblich re­du­zie­ren oder sogar ganz vermeiden.

Hinweis:

Die Plan­bar­keit variiert natürlich von Her­stel­ler zu Her­stel­ler. Oracle z.B. ver­öf­fent­licht viermal im Jahr ein großes Critical Patch Update (CPU). Die Termine werden jeweils ein Jahr im Voraus bekannt gegeben. Ähnlich ist es bei Post­greS­QL. Auch hier kommen die Major Version Releases quar­tals­wei­se raus und werden recht­zei­tig an­ge­kün­digt. In der MS SQL Welt hängen die Abstände zwischen dem Er­schei­nen einzelner Patches von der Le­bens­dau­er des je­wei­li­gen Produkts ab. Eine Übersicht dazu findest du » hier

Was du tun kannst, um die Downtime deiner Datenbank möglichst klein zu halten

Ein “normaler” Patch­ab­lauf bei einem Single Host sieht in der Regel fol­gen­der­ma­ßen aus: Die Datenbank wird her­un­ter­ge­fah­ren, der Patch ein­ge­spielt und die Datenbank wird auf der ge­patch­ten Software wieder hoch­ge­fah­ren. Je nach Datenbank, Da­ten­bank­grö­ße und Leis­tungs­fä­hig­keit der Systeme beträgt die Dauer der Downtime meist eine halbe bis eine Stunde für ein bis zwei Da­ten­ban­ken. Als Faust­re­gel gilt: Je un­re­gel­mä­ßi­ger Patches ein­ge­spielt werden, umso länger sind die Downtimes. Re­gel­mä­ßi­ges Patchen hilft also auch, die Aus­fall­zeit zu reduzieren.

Durch den Einsatz von hoch­ver­füg­ba­ren Systemen oder einer zweiten Instanz deiner Software kannst du die Downtime al­ler­dings darüber hinaus noch erheblich re­du­zie­ren. Hier einige Beispiele dazu aus der Oracle und MS SQL Welt:

Downtime re­du­zie­ren dank Failover Cluster

Mit dem Failover Cluster von Oracle kannst du die Downtime auf ca. fünf Minuten pro Datenbank re­du­zie­ren. Hier hast du zwei oder mehr Hosts, auf denen die Da­ten­ban­ken verteilt laufen. In dem Fall kannst du die Clus­ter­kno­ten, die leer­lau­fen, schon mal ak­tua­li­sie­ren und musst im War­tungs­fens­ter nur noch die Datenbank auf den ak­tua­li­sier­ten Host schwenken sowie die Än­de­run­gen im Dic­tion­a­ry vornehmen.

Kürzere Downtimes dank Standby-Datenbank mit Dbvisit bzw. DataGuard

Eine weitere Mög­lich­keit bieten so­ge­nann­te “Standby-Da­ten­ban­ken”. Aufgrund der Ver­tei­lung der Pri­mär­da­ten­bank und der Standby-Datenbank auf zwei un­ter­schied­li­che Hosts kannst du die Standby-Seite schon vor dem ei­gent­li­chen War­tungs­fens­ter ak­tua­li­sie­ren. Im War­tungs­slot musst du nur noch die Datenbank schwenken und die Einträge im Dic­tion­a­ry vornehmen. Im Standard Edition Bereich bietet sich hier Dbvisit an. Mit der » Dbvisit Standby MP v11 z.B. lassen sich Standby-Da­ten­ban­ken für Oracle und MS SQL Server aufbauen und betreiben. Da das Schwenken hier etwas länger dauert beträgt die Downtime im Schnitt ca. zehn Minuten.

Im En­ter­pri­se Edition Bereich von Oracle liefert DataGuard ent­spre­chen­de Mög­lich­kei­ten. Das War­tungs­fens­ter reduziert sich hier auf ca. fünf Minuten. In beiden Fällen hast du den großen Vorteil, dass böse Über­ra­schun­gen auf der primären Seite der Datenbank ver­hin­dert werden, da der Patch zunächst auf der Standby-Seite ein­ge­spielt wird.

Hinweis:

Un­ab­hän­gig von den Vorteilen, die ein Failover Cluster bzw. eine Standby-Datenbank für das Patchen und die Re­du­zie­rung der Downtimes haben, empfehlen wir den Einsatz einer solchen Lösung immer im Sinne der Hoch­ver­füg­bar­keit und Aus­fall­si­cher­heit deiner Datenbanken.

Wie du Downtimes vermeiden kannst

Meist ist für unsere Kunden aber nicht die Länge der Downtime ent­schei­dend, sondern die Tatsache, dass es überhaupt eine gibt. Denn dadurch müssen oftmals Prozesse run­ter­ge­fah­ren, danach wieder an­ge­fah­ren und geprüft werden. So wird aus einer halben Stunde Downtime für die ei­gent­li­che Wartung schnell ein zwei­stün­di­ger Slot nötig, bis alles wieder ord­nungs­ge­mäß läuft. Leider ist das der Haupt­grund dafür, dass manche Kunden sich vom Patchen di­stan­zie­ren – was aus si­cher­heits­tech­ni­scher Sicht natürlich ver­hee­ren­de Folgen haben kann.

Falls für dich auch eine kurze Downtime zum Problem werden kann, solltest du dir die folgenden Konzepte und Lösungen anschauen, um Ausfälle gänzlich zu vermeiden:

Oracle Ap­pli­ca­ti­on Continuity

Im En­ter­pri­se Edition Bereich von Oracle bietet dir eine zu­sätz­li­che Li­zen­zie­rung für “Ap­pli­ca­ti­on Con­ti­nui­ty” die Mög­lich­keit, (meist) ganz ohne Downtime zu patchen. Hier sorgt eine zu­sätz­li­che Trei­ber­schicht dafür, dass die Trans­ak­tio­nen für die Zeit der Wartung gepuffert und an­schlie­ßend nach­ge­fah­ren werden. Die Anwendung spürt davon im Idealfall nichts. Das Konzept ist al­ler­dings ziemlich aufwändig, mit zu­sätz­li­chen Li­zenz­kos­ten verbunden und in manchen Fällen trotzdem mit einer kleinen Downtime verbunden.

Oracle Real Ap­pli­ca­ti­on Cluster (RAC) mit Fast Con­nec­tion Failover (FCF)

Auch diese Mög­lich­keit setzt die En­ter­pri­se Edition von Oracle mit zu­sätz­li­cher RAC Option voraus. Die Datenbank läuft in dem Fall nicht nur auf einem Clus­ter­kno­ten, sondern auf allen. Du kannst also jeden Clus­ter­kno­ten einzeln updaten und hast dadurch keine Downtime. Dafür muss deine Java Anwendung mit dem Oracle No­ti­fi­ca­ti­on Service (ONS) kom­mu­ni­zie­ren. Das hat den Vorteil, dass die be­stehen­den An­wen­dungs­ses­si­on neu aufgebaut, Trans­ak­tio­nen zu­rück­ge­rollt und in einer neuen Session nochmals aus­ge­führt werden. Somit bemerkt der User nichts von der Wartung. Dies muss al­ler­dings von der je­wei­li­gen Anwendung un­ter­stützt werden. Ist das nicht der Fall, kannst du auch einfach die Clus­ter­kno­ten nach und nach leer räumen, run­ter­fah­ren und updaten. Die User­ses­si­ons werden in der Zwi­schen­zeit auf die anderen Clus­ter­kno­ten ausgelagert.

MS SQL Server “Always On”

Auch Microsoft bietet im Rahmen der Hoch­ver­füg­bar­keits­um­ge­bung “Always On” die Mög­lich­keit, ganz ohne Downtime zu patchen. Dank mehrerer Da­ten­bank­ser­ver kann einer her­un­ter­ge­fah­ren, gepacht und danach wieder hoch­ge­fah­ren werden. An­schlie­ßend folgt der Schwenk auf den ge­patch­ten Server. Hierbei werden sämtliche Sitzungen zu Client-An­wen­dun­gen beendet, was al­ler­dings im über­wie­gen­den Teil aller Fälle von den ODBC-Treibern ab­ge­fan­gen wird. Du und deine Anwender sollten diesen Moment des Wechsels in der Regel nicht bemerken.

Post­greS­QL Server inklusive n‑Knoten-Cluster

Den wohl kos­ten­güns­tigs­ten und ein­fachs­ten Weg, ohne Downtime zu patchen, bietet zwei­fels­oh­ne das Open-Source Da­ten­bank­ma­nage­ment­sys­tem Post­greS­QL. Dank ein­ge­bau­tem Re­pli­ka­ti­ons­pro­to­koll ist ein Cluster mit mehreren Knoten gleich mit im Gepäck. Bei der Clus­ter­ver­wal­tung helfen kos­ten­freie Werkzeuge, die neben einer einfachen Ein­rich­tung auch Switch- und Failover-Funk­tio­nen be­reit­stel­len. Im Idealfall kann die Anwendung die Datenbank-Con­nec­tions selbst verwalten und Daten cachen, sodass der User auch vom Schwenken rein gar nichts mit­be­kommt. Aber auch hier können frei ver­füg­ba­re Werkzeuge aus der Post­greS­QL-Welt helfen.

Mög­lich­kei­ten zum Re­du­zie­ren und Vermeiden von Downtimes im Überblick

Die folgende Übersicht fasst die Mög­lich­kei­ten zum Re­du­zie­ren und Vermeiden von Downtimes im Zuge des Patchens von Da­ten­ban­ken nach Her­stel­lern noch einmal zusammen:

Oracle
MS SQL
Post­greS­QL
Downtimes re­du­zie­ren
Failover Cluster:
reduziert Downtimes auf ca. 5 Minuten pro Datenbank

Standby-Datenbank
mit Dbvisit Standby MP:

für Standard Edition; reduziert Downtimes auf ca. 10 Minuten pro Datenbank

Standby-Datenbank
mit DataGuard:

für En­ter­pri­se Bereich; reduziert Downtimes auf ca. 5 Minuten pro Datenbank

Außerdem:
re­gel­mä­ßig Patchen; gute Vor­be­rei­tung der Patches 
Dbvisit Standby MP:
für Standard Edition; reduziert Downtimes auf ca. 30 Minuten pro Datenbank

Außerdem:
re­gel­mä­ßig Patchen; gute Vor­be­rei­tung der Patches












n‑Knoten-Cluster:
im Standard enthalten; kos­ten­freie Zu­satz­tools machen das Handling bequemer

Außerdem:
re­gel­mä­ßig Patchen; gute Vor­be­rei­tung der Patches











Downtimes vermeiden
Ap­pli­ca­ti­on Con­ti­nui­ty:
für En­ter­pri­se Bereich

Active Active Cluster mit Fast Con­nec­tion Failover:
für En­ter­pri­se Bereich mit RAC Option 
Always On:
Hoch­ver­füg­bar­keit durch red­un­dan­te SQL Server auf un­ter­schied­li­chen Hosts



n‑Knoten-Cluster:
im Standard enthalten; kos­ten­freie Zu­satz­tools machen das Handling bequemer


Oracle
MS SQL
Post­greS­QL
Downtimes re­du­zie­ren
Failover Cluster:
reduziert Downtimes auf ca. 5 Minuten pro Datenbank

Standby-Datenbank mit Dbvisit Standby MP:
für Standard Edition; reduziert Downtimes auf ca. 10 Minuten pro Datenbank

Standby-Datenbank mit DataGuard:
für En­ter­pri­se Bereich; reduziert Downtimes auf ca. 5 Minuten pro Datenbank

Außerdem:
re­gel­mä­ßig Patchen; gute Vor­be­rei­tung der Patches 
Dbvisit Standby MP:
für Standard Edition; reduziert Downtimes auf ca. 30 Minuten pro Datenbank

Außerdem:
re­gel­mä­ßig Patchen; gute Vor­be­rei­tung der Patches 
n‑Knoten-Cluster:
im Standard enthalten; kos­ten­freie Zu­satz­tools machen das Handling bequemer

Außerdem:
re­gel­mä­ßig Patchen; gute Vor­be­rei­tung der Patches 
Downtimes vermeiden
Ap­pli­ca­ti­on Con­ti­nui­ty:
für En­ter­pri­se Bereich

Active Active Cluster mit Fast Con­nec­tion Failover:
für En­ter­pri­se Bereich mit RAC Option 
Always On:
Hoch­ver­füg­bar­keit durch red­un­dan­te SQL Server auf un­ter­schied­li­chen Hosts 
n‑Knoten-Cluster:
im Standard enthalten; kos­ten­freie Zu­satz­tools machen das Handling bequemer 

Hinweis:

Die Übersicht erhebt keinen Anspruch auf Voll­stän­dig­keit. Sie spiegelt lediglich die Er­fah­run­gen unserer Da­ten­bank­spe­zia­lis­ten mit aus­ge­wähl­ten Lösungen wieder. Das gilt auch für die Zeit­an­ga­ben, welche je nach IT-Umgebung und Vor­aus­set­zun­gen variieren können.

Fazit

Um die Frage eingangs noch einmal deutlich zu be­ant­wor­ten: Nein, ein Patchen der Da­ten­ban­ken ist nicht zwingend immer mit einer Downtime verbunden. Einige Mög­lich­kei­ten der einzelnen Her­stel­ler, mit denen wir bereits gute Er­fah­run­gen gemacht haben und mit denen Downtimes vermieden werden können, haben wir dir oben zusammengefasst. 

Wichtig ist aus unserer Sicht aber auch immer die offene Kom­mu­ni­ka­ti­on. Auch wenn du ein Konzept wählst, bei dem ohne Downtime gepatcht werden kann, sollte im Vorfeld eine An­kün­di­gung bei den Anwendern statt­fin­den. Falls es eine Downtime gibt, sollte diese in jedem Falle rea­lis­tisch, bes­ten­falls etwas groß­zü­gi­ger kom­mu­ni­ziert werden. Hier spielen Er­fah­rungs­wer­te eine große Rolle. Unsere Da­ten­bank­pro­fis haben über die Jahre ein gutes Gefühl dafür ent­wi­ckelt, wie lange die War­tungs­ar­bei­ten bei be­stimm­ten Vor­aus­set­zun­gen dauern werden. Eine zu­neh­men­de Ver­qui­ckung zwischen den Da­ten­bank­in­ter­na und den An­wen­dungs­da­ten führt dazu, dass auch die Da­ten­bank­grö­ße immer stärker an Bedeutung gewinnt für die Dauer der Downtime.

Du hast Fragen dazu oder möchtest das Thema Patchen ohne Downtime für deine IT-Umgebung prüfen? Zögere nicht, uns anzurufen oder uns zu schreiben. Gemeinsam schauen wir, welche Lösung am besten zu deinen An­for­de­run­gen und in deine Umgebung passt.

Patch-Hotline: +49.371.909515–100

Hier findest du weitere Infos zu den ver­gan­ge­nen und aktuellen Patch Updates aus unserem News und Insights Bereich.

icon-arrow_right_medium-violet-blue.svg

Share this article

Facebook 
Twitter 
LinkedIn 
XING 
WhatsApp 
Email