MySQL High Availability ist eine Option, die Sie wählen können, damit Ihre MySQL-Datenbank auch bei einem Ausfall oder einer Unterbrechung verfügbar bleibt. Mit dieser Funktion können Sie höhere Anforderungen in Bezug auf unterbrechungsfreien Betrieb und eine Nulltoleranz für Datenverlust festlegen. In diesem Artikel werden die Bedeutung des allgemeinen Konzepts der Hochverfügbarkeit und die Funktionsweise der MySQL-Option „High Availability“ beschrieben.
Hochverfügbarkeit ist die Fähigkeit eines Systems oder Services, auch bei einem Fehler oder Ausfall funktionsfähig und verfügbar zu bleiben. Mit einem hochverfügbaren System wird sichergestellt, dass die betriebsnotwendigen Systeme und Anwendungen eines Unternehmens immer betriebsbereit sind. Dies ist insbesondere für Unternehmen und Organisationen in Bereichen wie dem Gesundheitswesen, dem Finanzwesen und der Luftfahrt wichtig, in denen der Ausfall eines betriebsnotwendigen Systems schwerwiegende Folgen haben könnte.
Die Hochverfügbarkeit wird in der Regel als Prozentsatz des unterbrechungsfreien Betriebs angegeben, der im Rahmen von Service Level Agreements (SLAs) definiert wird, wobei ein Wert von 100 für ein System steht, das nie ausfällt. Da dies praktisch nicht erreichbar ist, streben die meisten Unternehmen eine Verfügbarkeit von 99,999 % (fünf Neunen) an.
Ein hochverfügbares System muss bei einem Fehler sofort wiederhergestellt werden können. Eine Hochverfügbarkeitsarchitektur besteht aus mindestens drei grundlegenden Elementen, die zusammen für Wiederherstellbarkeit und Hochverfügbarkeit sorgen.
MySQL bietet eine Option für Hochverfügbarkeit (High Availability), mit der Anwendungen die Anforderungen an einen längeren unterbrechungsfreien Betrieb (und Nulltoleranz für Datenverlust) erfüllen können. Wenn die Option „High Availability“ aktiviert ist, erstellt das MySQL-System drei Instanzen in drei verschiedenen Fehlerdomänen oder Verfügbarkeitszonen.
Die Daten werden in den drei Instanzen mithilfe von MySQL Group Replication repliziert, und die Anwendung stellt zum Lesen und Schreiben von Daten in der Datenbank eine Verbindung mit der primären Instanz her. Bei einem Ausfall löst das System innerhalb weniger Minuten ein automatisches Failover auf eine sekundäre Instanz aus.
Der Failover-Mechanismus überträgt Services an eine replizierte Instanz. Wenn mehrere Backup-Instanzen verfügbar sind, wählt der Failover-Mechanismus die am besten geeignete zum Hochstufen auf den primären Knoten aus.
Bei einem Failover auf eine sekundäre Instanz leitet die Funktion „High Availability“ alle Anwendungs- und Benutzerverbindungen auf den neuen primären Knoten um. Zudem leitet sie alle Abfragen vom alten primären Knoten an die neue primäre Datenbank um.
Als unterbrechungsfreie Betriebszeit gilt die Zeit, die ein System verfügbar ist und ordnungsgemäß funktioniert. Sie wird als Prozentsatz der Gesamtzeit angegeben, in der das System erwartungsgemäß betriebsbereit ist. Ein hoher Wert für die unterbrechungsfreie Betriebszeit bedeutet, dass das System überwiegend wie erwartet verfügbar ist und ordnungsgemäß funktioniert.
Welche Betriebszeit bei unterschiedlichen Stufen von MySQL High Availability erwartet werden kann, hängt von der jeweils implementierten Hochverfügbarkeitslösung ab.
Mit MySQL Replication können Sie mehrere Server einrichten, um Redundanz und Failover sicherzustellen, sodass im Vergleich zu einem MySQL-Server ohne Hochverfügbarkeitsfunktion ein längerer unterbrechungsfreier Betrieb möglich ist. Bei einer Master-Slave-Konfiguration wird ein Master-Server für Lese- und Schreibvorgänge und mindestens ein Slave-Server nur für Lesevorgänge verwendet. Daten vom Master-Server werden asynchron auf die Slave-Server repliziert.
Zur Implementierung der Failover-Funktion muss mindestens ein Slave-Server als Standby-Server, der bei einem Ausfall auf einen Master-Server hochgestuft werden kann, eingerichtet werden. Failover ist im Allgemeinen ein manueller Prozess, bei dem der Slave-Knoten auf den Master-Knoten hochgestuft wird, indem der Status des hochgestuften Slave-Knotens zur Unterstützung von Abfragen in Lese-Schreib-Modus geändert wird.
Da das Failover manuell durchgeführt wird, dauert es länger und ist anfällig für Fehler, die zu längeren Ausfällen führen können. Zudem verwendet MySQL Replication die asynchrone Replikation. Das bedeutet, dass bei einem Ausfall des Master-Servers auf dem Master-Server festgeschriebene Transaktionen möglicherweise noch nicht auf die Slave-Server repliziert wurden. Dann müssen bei einem kritischen Datenverlust Daten wiederhergestellt werden, wodurch sich die Ausfallzeit des Systems verlängert.
Mit MySQL Group Replication lassen sich längere unterbrechungsfreie Betriebszeiten als mit MySQL Replication erreichen. Mithilfe von MySQL Group Replication werden mehrere MySQL-Server in einer Gruppe eingerichtet, wobei ein Server als primärer Server und die anderen Server als sekundäre Server bestimmt werden. Jeder Server in der Gruppe verfügt über eine Kopie der Daten und sorgt mittels Replikation dafür, dass die Kopien stets synchron sind.
Wenn der primäre Server ausfällt, erkennen die sekundären Server in der Gruppe den Ausfall automatisch und starten den Failover-Prozess. Einer der sekundären Server wird automatisch zum neuen primären Server hochgestuft und beginnt mit der Bearbeitung von Client-Anforderungen. Die anderen sekundären Mitglieder in der Gruppe erhalten nun Aktualisierungen vom neuen primären Server und setzen die Bearbeitung von Client-Leseanforderungen fort.
Sobald der ausgefallene Server wieder online ist, wird er automatisch als sekundärer Server wieder in die Gruppe aufgenommen.
Da die Ausfallerkennung und das Failover bei MySQL Group Replication automatisch erfolgen, ist die Ausfallzeit minimal und die Benutzer und Anwendungen bemerken den Ausfall in der Regel nicht.
Eine MySQL Cluster-Hochverfügbarkeitslösung bietet die höchste Stufe des unterbrechungsfreien Betriebs. Dieses hochverfügbare, verteilte Datenbanksystem bietet zusammen mit dem automatischen Failover und Lastausgleich ein hohes Maß an Verfügbarkeit, Performance und Skalierbarkeit, sodass es nahezu keine Ausfallzeiten gibt.
Bei MySQL Cluster werden zum Speichern und Verwalten von Daten drei Arten von Knoten verwendet:
Wenn mindestens ein Knoten im Cluster ausfällt, wird das Problem im Cluster automatisch erkannt und ein Failover-Prozess ausgelöst. Der gesamte Prozess erfolgt in der Regel innerhalb einer Sekunde nach einem Ausfall ohne Unterbrechung des Service für Client-Anwendungen. Der Cluster funktioniert weiter wie gewohnt und praktisch ohne Ausfallzeiten.
Arbeiten Sie in einer Self-Service-Umgebung, um zu erleben, wie einfach das Management eines Pure FlashArray™//X ist. Entdecken Sie fortschrittliche Funktionen, einschließlich Snapshots, Replikation, ActiveCluster™ und sogar VMware-Integration.
Die Wiederherstellungszeit ist die Zeit, die ein System nach einem Ausfall für die Wiederherstellung benötigt. Eine längere Wiederherstellungszeit führt zu einer geringeren Verfügbarkeit und kann sich direkt auf die Umsatzgenerierung, Mitarbeiterproduktivität und Kundenzufriedenheit eines Unternehmens auswirken.
Dabei hängen die Wiederherstellungszeiten in MySQL vom verwendeten Replikationstyp ab:
Bei der Ermittlung Ihrer Anforderungen an MySQL High Availability müssen Sie unter anderem folgende Faktoren berücksichtigen:
Im Folgenden werden einige Anwendungsfälle beschrieben, in denen MySQL High Availability-Lösungen erforderlich sind:
Bei stark frequentierten Websites werden Tausende Abfragen und Transaktionen pro Sekunde verarbeitet und dabei gleichzeitig Tausende Benutzer bedient. Mit Maßnahmen zur Hochverfügbarkeit wie Serverredundanz und Lastausgleich kann sichergestellt werden, dass die Datenbank verfügbar bleibt und die Last bewältigen kann.
Mit redundanten Servern wird sichergestellt, dass die Website auch bei einem Serverausfall verfügbar bleibt. Durch den Lastausgleich eingehender Anforderungen auf mehrere Server wird verhindert, dass ein Server überlastet wird und offline geht.
Unternehmen mit betriebsnotwendigen Systemen und Anwendungen sind auf ein hohes Maß an Verfügbarkeit und unterbrechungsfreier Betriebszeit angewiesen. Meist sind bei diesen Systemen keine Ausfallzeiten tolerierbar und die Datenbank muss stets verfügbar sein.
MySQL-Hochverfügbarkeitslösungen wie Group Replication oder Cluster sind in diesen Anwendungsfällen ideal, da es hier dank einem automatischen Failover-Mechanismus nur zu geringen oder gar keinen Ausfallzeiten kommt.
Pure Storage® Evergreen™ ist ein Abonnementpaket, das Implementierungen ohne Ausfallzeiten ermöglicht. In Kombination mit der unverwechselbaren Storage-Array-Architektur von Pure Storage ermöglicht Evergreen ein Upgrade der Storage-Infrastruktur ohne Unterbrechung der Service-Workloads.
Zum Sicherstellen von RPO- und RTO-Werten von null unterstützt Pure dank Purity ActiveCluster™, einem Aktiv-Aktiv-Stretched-Cluster für mehrere Standorte, zudem auch Aktiv-Aktiv-Clustering und automatisches, transparentes Failover.
Überlegen Sie sich auch, ob die Verwendung von Pure Cloud Block Store™ sinnvoll ist, da diese Lösung für betriebsnotwendige Anwendungen Cloud-Zuverlässigkeit auf Enterprise-Ebene bietet. Unterbrechungsfreie Upgrades und Hochverfügbarkeit in allen Verfügbarkeitszonen sorgen für Hochverfügbarkeit bei Geschäftskontinuität und Disaster Recovery in mehreren Clouds.
Haben Sie eine Frage oder einen Kommentar zu Produkten oder Zertifizierungen von Pure? Wir helfen Ihnen gerne!
Vereinbaren Sie einen Termin für eine Live-Demo und sehen Sie selbst, wie Pure Ihnen helfen kann, Ihre Daten in überzeugende Ergebnisse zu verwandeln.
Rufen Sie uns an: +49 89 26200662
Presse: pr@purestorage.com
Pure Storage Germany GmbH
Mies-van-der-Rohe-Straße 6
80807 München
Deutschland