Computer-Systeme, die als Host für Datenbankservices dienen, enthalten viele unterschiedliche Komponenten, und jede Komponente besitzt eine für sie ermittelte "mittlere ausfallfreie Zeit" (MTBF - Mean Time Before Failure). Die MTBF ist die durchschnittliche Dauer, die eine Komponente verwendbar bleibt. Die MTBF für ein Qualitätsfestplattenlaufwerk liegt in der Größenordnung von 1 Million Stunden (annähernd 114 Jahren). Obwohl dies wie ein langer Zeitraum erscheint, ist es wahrscheinlich, daß eine von 200 Festplatten innerhalb eines Zeitraums von sechs Monaten ausfällt.
Wenngleich es eine Reihe von Methoden zur Erhöhung der Verfügbarkeit für einen Datenbankservice gibt, ist die am häufigsten eingesetzte Methode ein HA-Cluster (High Availability-Cluster). Ein Cluster, wenn er zur Implementierung hoher Verfügbarkeit eingesetzt wird, besteht aus mindestens zwei Maschinen, einer Gruppe privater Netzschnittstellen, einer oder mehreren öffentlichen Netzschnittstellen sowie einigen gemeinsam benutzten Platten. Diese spezielle Konfiguration ermöglicht das Versetzen eines Datenbankservice von einer Maschine auf eine andere. Durch das Versetzen des Datenbankservice auf eine andere Maschine im Cluster wird es möglich, den Zugriff auf die zugehörigen Daten weiterhin aufrecht zu erhalten. Das Versetzen eines Datenbankservice von einer Maschine auf eine andere wird als Funktionsübernahme (Failover) bezeichnet (siehe Abbildung 118 zur Illustration).
Abbildung 118. Funktionsübernahme
Die privaten Netzschnittstellen werden zum Senden von Heartbeat-Nachrichten und von Steuernachrichten unter den Maschinen im Cluster verwendet. Die öffentlichen Netzschnittstellen dienen zur direkten Kommunikation mit Clients des HA-Clusters. Die Platten in einem HA-Cluster sind mit zwei oder mehr Maschinen im Cluster verbunden, so daß bei Ausfall einer Maschine eine andere Maschine auf sie zugreifen kann.
Ein Datenbankservice, der auf einem HA-Cluster aktiv ist, besitzt mindestens eine öffentliche Netzschnittstelle und eine Gruppe von Platten, die ihm zugeordnet sind. Die Clients eines HA-Datenbankservice stellen eine Verbindung über TCP/IP nur zu den logischen Netzschnittstellen des Datenbankservice her. Wenn es zu einer Funktionsübernahme kommt, werden der Datenbankservice zusammen mit den zugehörigen Netzschnittstellen und der Gruppe von Platten auf eine andere Maschine verlegt.
Einer der Vorteile eines HA-Clusters liegt darin, daß ein Datenbankservice ohne Hilfe durch Unterstützungspersonal wiederhergestellt werden kann, und daß dies zu jedem beliebigen Zeitpunkt möglich ist. Ein weiterer Vorteil ist die Redundanz. Alle Teile im Cluster sollten redundant sein, einschließlich der Maschinen selbst. Der Cluster sollte in der Lage sein, jeden einzelnen Fehlerpunkt überbrücken zu können.
Auch wenn sich hochverfügbare Datenbankservices in ihrer Art sehr unterscheiden können, besitzen sie einige allgemeine Anforderungen. Clients eines hochverfügbaren Datenbankservice erwarten, daß sich die Netzadresse und der Host-Name des Datenbankservice nicht ändern und daß sie die Möglichkeit haben, ihre Anforderungen unabhängig von der Maschine, auf der der Datenbankservice aktiv ist, auf dieselbe Weise zu tätigen.
Betrachten Sie einen Web-Browser, der auf einen hochverfügbaren Web-Server zugreift. Die Anforderung wird mit einer URL-Adresse (Uniform Resource Locator) abgesetzt, die sowohl einen Host-Namen als auch den Pfad zu einer Datei auf dem Web-Server enthält. Der Browser erwartet, daß sowohl der Host-Name als auch der Pfad auch nach einer Funktionsübernahme des Web-Servers gleich bleiben. Wenn der Browser gerade eine Datei vom Web-Server herunterlädt, wenn der Server durch eine Funktionsübernahme auf eine andere Maschine versetzt wird, muß der Browser die Anforderung erneut absetzen.
Die Verfügbarkeit eines Datenbankservice wird in der Zeitdauer gemessen, die der Datenbankservice seinen Benutzern zur Verfügung steht. Die am häufigsten verwendete Maßeinheit für Verfügbarkeit ist der Prozentsatz der Betriebszeit (Up Time). Diese wird oft als Anzahl von "Neunen" angegeben:
99,99% => Service ist (höchstens) 52,6 Minuten / Jahr außer Betrieb 99,999% => Service ist (höchstens) 5,26 Minuten / Jahr außer Betrieb 99, 999% => Service ist (höchstens) 31,5 Sekunden / Jahr außer Betrieb
Beachten Sie beim Entwerfen und Testen eines HA-Clusters folgende Punkte:
Eine andere Methode zur Erhöhung der Verfügbarkeit eines Datenbankservice ist Fehlertoleranz. Bei einer fehlertoleranten Maschine ist sämtliche Redundanz integriert, so daß die Maschine in der Lage ist, einen Einzelausfall einer beliebigen Komponente, einschließlich CPU und Speicher, zu überbrücken. Fehlertolerante Maschinen werden hauptsächlich in Nischenmärkten eingesetzt und ihre Implementierung ist gewöhnlich mit hohem Kostenaufwand verbunden. Ein HA-Cluster mit Maschinen an verschiedenen geografischen Standorten hat den zusätzlichen Vorteil, einen Ausfall, der nur einen Teil dieser Standorte betrifft, überbrücken zu können.
Die fortlaufende Verfügbarkeit geht einen Schritt über die hohe Verfügbarkeit hinaus. Sie schützt die Clients sowohl gegen geplante als auch gegen ungeplante Ausfallzeiten. Bei einer Konfiguration für fortlaufende Verfügbarkeit bleibt der Client von Ausfällen einer der Maschinen, die den Datenbankservice beherbergen, bzw. von Wartungszeiten für einzelne Maschinen völlig unberührt. Konfigurationen für fortlaufende Verfügbarkeit sind komplex und kostenintensiver in der Implementierung.
Ein HA-Cluster ist die gängigste Lösung zur Erhöhung der Verfügbarkeit, weil sie skalierbar, einfach zu handhaben und relativ kostengünstig in der Implementierung ist.