Hochverfügbarkeit bei geschäftskritischen Datenbanken

Hochverfügbarkeit beginnt bei drei Datenbankinstanzen

Dabei eignen sich hochverfügbare Datenbank-Cluster auch für kleinere Installationen, denn der kleinste mögliche Cluster besteht aus drei Knoten sowie einem zusätzlichen Server für den Datenbank-Proxy als Clustermanager und Backend für Anwendungen. Die Anzahl der Datenbankinstanzen sollte immer ungerade sein. Bei einem Ausfall muss die Mehrheit der aktiven Knoten verfügbar sein, damit der Datenbank-Proxy einen Datenbestand für die Replikation auswählen kann. Bei drei Knoten darf also nur ein Knoten ausfallen, ohne dass es zu Problemen kommt. Dies gilt auch für vier Knoten: Die Mehrheit ist drei Knoten, es darf also ebenfalls nur ein Knoten ausfallen. Diese beiden Cluster-Konfigurationen haben deshalb die gleiche Fehlertoleranz. Das Hinzufügen eines einzelnen Knotens bringt hier keine höhere Verfügbarkeit.

Die Verfügbarkeit gilt für kleine Cluster mit nur drei Knoten ebenso wie für Installationen mit hunderten oder sogar tausenden von Knoten. Große Cluster sind in der Lage, Millionen von Abfragen pro Sekunde zu verarbeiten, ohne dass die Datenintegrität oder die Verfügbarkeit beeinträchtigt wird. Dies gilt besonders für Cloud-Datenbanken (DBaaS, Database as a Service). DBaaS in der Cloud unterstützt Funktionen wie Selbstheilung und automatisches Failover. Diese Automatismen des Datenbankanbieters und der Cloud Provider sind zu blitzschnellen Reaktionen In der Lage. Dadurch steigt die Verfügbarkeit, da sich die IT-Teams der nutzenden Unternehmen nicht um die Behandlung von Störungen kümmern müssen. So sind Datenbank-Cluster im eigenen Rechenzentrum oder hochverfügbare Cloud-Datenbanken die ideale Lösung für alle Unternehmen, die eine kontinuierliche Hochverfügbarkeit ihrer Datenbanken benötigen.

Verteilte SQL-Datenbanken mit Shared-Nothing-Architektur

Verteilte SQL- Datenbanken sind eine relationale Datenbankarchitektur, bei der mehrere Instanzen (Knoten) des Datenbanksystems in einem Multi-Primary-Cluster gleichzeitig und unabhängig voneinander arbeiten. Sie können sich in einem oder in mehreren Rechenzentren befinden. Dabei sind sowohl physische wie auch virtuelle Server möglich oder spezielle Cloud-Instanzen in einem Plattformangebot. Der Abstand zwischen den Rechenzentren beeinflusst allerdings die Latenz und damit die Performanz im Cluster, weshalb sie nicht zu weit voneinander entfernt sein sollten. In jedem Fall gilt: Das System synchronisiert die Datenbankinhalte und sorgt für einen Lastausgleich bei Transaktionen.

Dadurch wird ein einzelner Knoten nicht zu einem Engpass, hohe Leistung und Verfügbarkeit sind die Folge. Cluster sind in der Lage, eine enorme Menge an Transaktionen pro Sekunde zu verarbeiten, ohne dass die Datenintegrität oder die kontinuierliche Hochverfügbarkeit beeinträchtigt werden. Ein weiterer Vorteil: Cluster sind leicht skalierbar, bei Bedarf können beliebig viele Knoten hinzugefügt oder entfernt werden. Und mit jedem zusätzlichen Knoten wächst auch der verfügbare Datenbankspeicher, da die Daten über mehr Knoten verteilt werden können.

Verteilte SQL-Datenbanken nutzen eine sogenannte Shared-Nothing-Architektur, in der die einzelnen Knoten unabhängig voneinander arbeiten. Somit hat der Ausfall eines Knotens keine Auswirkung auf die anderen, die alle Lese- und Schreibzugriffe wie gewohnt weiterbearbeiten. Um aber auch die Daten weiterhin verfügbar zu halten, werden die Daten eines Knoten auf ein oder mehrere andere Knoten verteilt. Das System erkennt automatisch den Ausfall und stellt dann die Replikate auf anderen Knoten zur weiteren Bearbeitung bereit. Sobald der ausgefallene Knoten wieder verfügbar ist, sorgt die Datenbank automatisch dafür, dass Änderungen an den Daten auf allen Systemen synchronisiert werden. Durch diese Redundanz ist die Ausfallsicherheit deutlich größer als bei anderen Datenbankarchitekturen.

Überregionale Replikationen zwischen Multi-Primary-Clustern lassen sich durch zusätzlich parallelisierte Replikationsmechanismen ebenfalls hinzufügen, auch mit verschiedenen Topologien (Aktiv/Passiv, Aktiv/Aktiv, “Daisy Chain” Replikation). Dadurch ist ein globaler Datenaustausch zwischen einzelnen Clustern möglich.