ArtikelStorage

Hochverfügbarkeit bei geschäftskritischen Datenbanken

Autor/Redakteur: Stefan Schmit, Senior Solution Engineer EMEA bei MariaDB/gg

Hochverfügbare, leicht skalierbare und weltweit verteilte Datenbanken sind die Voraussetzung für globale, geschäftskritische Prozesse. Die technische Grundlage dafür sind Datenbank-Cluster, die eine enorme Ausfallsicherheit bieten.

Bild: MariaDB

Daten und Datenbanken gehören zu den überlebens notwendigen IT-Technologien für ein Unternehmen. Sie werden in jedem Fachbereich eingesetzt, alle Unternehmensfunktionen hängen davon ab. Störungen und Ausfälle summieren sich rasch zu hohen Kosten durch Umsatzverluste, Verlust von Kundenvertrauen und den Aufwand für die Schadensbehebung. Um dies zu vermeiden, müssen Datenbanksysteme 24 Stunden am Tag, 7 Tage die Woche, 365 Tage im Jahr verfügbar sein, von jedem Ort der Welt aus. Diese Rund-um-die-Uhr-Ausfallsicherheit wird als Hochverfügbarkeit oder High Availability (HA) bezeichnet.

Das Rezept für Hochverfügbarkeit: Redundanz

In der Praxis ist eine 100-prozentige Verfügbarkeit schwer zu erreichen. Denn je höher die Ausfallsicherheit, desto größer der Aufwand für die IT-Teams. Deshalb hat sich im IT-Servicemanagement bei Rechenzentren oder Cloud-Anbietern die Angabe einer Prozentzahl für die Verfügbarkeit der Systeme etabliert. Sie beschreibt die Dauer, die ein System störungsfrei arbeitet, bezogen auf einen Zeitraum. Eine Verfügbarkeit von 99,999 Prozent Ausfallsicherheit gilt als Hochverfügbarkeit, da hier die Ausfallsicherheit extrem hoch ist und es bezogen auf ein Jahr ungefähr fünf Minuten Stillstand ergibt. Sie liegt aber oberhalb der Verfügbarkeitslevel, die zum Beispiel die meisten Cloud-Anbieter grundsätzlich anbieten.

IT-Systeme mit dieser Eigenschaft arbeiten trotz des Ausfalls einer Komponente wie einer Festplatte weitgehend ungestört weiter. Erreicht wird das durch Redundanz: Jede Ressource ist mehrfach vorhanden. Ausfallzeiten durch Störungen sind damit praktisch ausgeschlossen. Das Problem bei der Erreichung einer sehr hohen Ausfallsicherheit ist allerdings die sogenannte singuläre Fehlerquelle. Damit ist eine Ressource gemeint, die nicht redundant ausgelegt ist und deren Ausfall das Gesamtsystem zum Stillstand bringt. Hochverfügbare Datenbanken müssen also durch redundante Instanzen vermeiden, dass zum Beispiel ein defekter Datenträger (HDD oder SSD) die gesamte Anwendung blockiert. Das Grundprinzip der Hochverfügbarkeit bei Datenbanken ist deshalb die mehrfache Speicherung derselben Daten, etwa durch Spiegelung auf zwei oder mehr Datenträgern oder virtuellen Servern.

Replikation der Datenbanken schützt vor Datenverlusten

Ein oft für Datenbank-Redundanz genutzter Ansatz ist die Primary/Secondary-Replikation: Dabei erzeugt ein Datenbank-Proxy eine transparente Abstraktionsschicht zwischen der Anwendung und den Datenbanken. Aus Sicht der Anwendung und damit der Entwickler und Endanwender wirkt der Proxy wie eine normale Datenbankinstanz. Er ist jedoch ein Management-Dienst, hinter dem ein primärer Datenbank-Server (Primary) mit einer oder mehreren identischen Kopien oder Replikaten steht. Der Proxy automatisiert die Verteilung der einzelnen Schreib-/Lese- Transaktionen auf Primary (Schreib-/Lese-Zugriff) und Secondary (Lese-Zugriff). Ebenso automatisch gelingt der Switchover bei geplanten Wartungen an einer Instanz und der Failover beim Ausfall des Primarys.

Dieser Ansatz ist eher für kleinere Unternehmen geeignet. Der deutsche Mittelstand im Maschinen- und Anlagenbau oder in der Elektroindustrie besitzt jedoch oft weltweit verteilte Niederlassungen. Hier entstehen bei einem zentralen Primary am deutschen Heimatstandort für die Außenstellen erhebliche Latenzen bei Abfragen und dem Datenaustausch zwischen Primary und Secondary. Auch das Failover ist für moderne Anforderungen beispielsweise im E-Commerce oft zu langsam. Hier muss ein Kompromiss aus Latenz und Datenaktualität gefunden werden, zum Beispiel durch asynchrone Replikation zwischen Datenbanken.