Datenbankclustering ist ein mehrdeutiger Begriff. Einige Anbieter betrachten einen Cluster mit zwei oder mehr Servern, die denselben Speicher gemeinsam nutzen, andere nennen einen Cluster eine Reihe replizierter Server.
Die Replikation definiert die Methode, mit der eine Reihe von Servern synchronisiert bleibt, ohne dass der Speicher gemeinsam genutzt werden muss, um geografisch verteilt zu werden. Es gibt zwei Hauptmethoden:
Master-Master- (oder Multi-Master-) Replikation: Jeder Server kann die Datenbank aktualisieren. Dies wird normalerweise von einem anderen Modul in der Datenbank erledigt (oder in einigen Fällen von einer ganz anderen Software, die darauf ausgeführt wird).
Nachteil ist, dass es sehr schwierig ist, gute Ergebnisse zu erzielen, und einige Systeme in diesem Replikationsmodus die ACID-Eigenschaften verlieren.
Der Vorteil ist, dass es flexibel ist und Sie den Ausfall eines Servers unterstützen können, während die Datenbank noch aktualisiert wird.
Master-Slave-Replikation: Es gibt nur eine einzige Kopie der autorisierenden Daten, die an die Slave-Server übertragen wird.
Nachteil ist, dass es weniger fehlertolerant ist, wenn der Master stirbt, gibt es keine weiteren Änderungen in den Slaves.
Der Vorteil ist, dass dies einfacher als Multi-Master ist und normalerweise die ACID-Eigenschaften beibehält.
Der Lastausgleich ist ein anderes Konzept. Er besteht darin, die an diese Server gesendeten Abfragen so zu verteilen, dass die Last so gleichmäßig wie möglich verteilt wird. Dies erfolgt normalerweise auf Anwendungsebene (oder mit einem Verbindungspool). Die einzige direkte Beziehung zwischen Replikation und Lastausgleich besteht darin, dass Sie eine Replikation benötigen, um den Lastausgleich durchführen zu können. Andernfalls hätten Sie einen einzelnen Server.
Aus Sicht von SQL Server:
Durch Clustering erhalten Sie eine Aktiv-Passiv-Konfiguration. Das heißt, in einem Cluster mit zwei Knoten ist einer von ihnen aktiv (bedienend) und der andere passiv (wartet auf die Übernahme, wenn der aktive Knoten ausfällt). Es ist eine hohe Verfügbarkeit aus Hardware-Sicht.
Sie können einen Aktiv-Aktiv-Cluster haben, für den jedoch mehrere Instanzen von SQL Server auf jedem Knoten ausgeführt werden müssen. (dh Instanz 1 auf Knoten A, die auf Instanz 2 auf Knoten B umschaltet, und Instanz 1 auf Knoten B, die auf Instanz 2 auf Knoten A umschaltet).
Der Lastausgleich (zumindest aus Sicht von SQL Server) existiert nicht (zumindest im gleichen Sinne wie der Lastausgleich des Webservers). Auf diese Weise können Sie die Last nicht ausgleichen. Sie können Ihre Anwendung jedoch so aufteilen, dass sie auf einer Datenbank auf Server 1 und auch auf einer Datenbank auf Server 2 usw. ausgeführt wird. Dies ist das primäre Mittel für den "Lastausgleich" in der SQL-Welt.
quelle
Beim Clustering wird ein gemeinsam genutzter Speicher verwendet (z. B. ein Laufwerkskäfig oder ein SAN), und es werden zwei Datenbank-Frontends hinzugefügt. Die Front-End-Server teilen sich eine IP-Adresse und einen Clusternetzwerknamen, über die Clients eine Verbindung herstellen, und entscheiden untereinander, wer derzeit für die Bearbeitung von Clientanforderungen zuständig ist.
Wenn Sie nach einem bestimmten Datenbankserver fragen, fügen Sie dies Ihrer Frage hinzu, und wir können Details zu deren Implementierung hinzufügen. Im Kern handelt es sich jedoch um Clustering.
quelle
Datenbank-Clustering ist eigentlich ein Modus der synchronen Replikation zwischen zwei oder möglicherweise mehr Knoten mit einer zusätzlichen Funktionalität der Fehlertoleranz, die Ihrem System hinzugefügt wurde, und dies auch in einer Shared-Nothing-Architektur. Wenn Sie nichts gemeinsam nutzen, bedeutet dies, dass die einzelnen Knoten tatsächlich keine physischen Ressourcen wie Festplatte oder Speicher gemeinsam nutzen.
Um die Daten synchron zu halten, gibt es einen Verwaltungsserver, mit dem alle Datenknoten zusammen mit dem SQL-Knoten verbunden sind, um dies zu erreichen (speziell über MySQL).
Nun zu den Unterschieden: Der Lastausgleich ist nur ein Ergebnis, das durch Clustering erzielt werden kann, die anderen umfassen hohe Verfügbarkeit, Skalierbarkeit und Fehlertoleranz.
quelle