2009-06-17 1 views
4

Ich habe eine Frage für die DBA da draußen: Wenn ich skalieren von einem einzigen Web/DB-Server-Setup auf zwei Web/zwei DB-Server-Setup mit einem Load Balancer vor den Webservern um eingehende Anfragen gleichmäßig zu routen ... wie Lösungen wie MySQL Cluster funktionieren so, dass eine Änderung, die an einem DB-Server vorgenommen wird, dem anderen sofort bekannt ist (anderenfalls werden Benutzer, die zum anderen DB-Server weitergeleitet werden, die Daten nicht sehen oder veraltete Daten) oder zumindest die anderen Der Webserver wird darauf aufmerksam gemacht, dass er "schmutzige Daten" liest und er sollte es in X Sekunden wiederholen, um aktuelle Daten zu erhalten.Wie funktioniert das DB-Clustering?

Vielen Dank.

Antwort

2

In Windows Server-Clustering (von der High Performance Clustering zu unterscheiden), gibt es einen gemeinsamen externen Speicher-Array. Der aktive Knoten übernimmt den Besitz/die Kontrolle über den Speicher, und wenn dieser Knoten ausfällt, wird der Speicher auf den zuvor passiven Knoten (der jetzt der aktive Knoten ist) umgeschaltet. Es gibt auch verschiedene Schemata, die eine unabhängige Speicherung auf jedem Knoten im Vergleich zum freigegebenen Speicher ermöglichen. Diese erfordern jedoch, dass die Anwendung über genügend Intelligenz verfügt, um zu wissen, dass sie gruppiert ist, und dass die beiden Speichersätze synchron bleiben.

3

ZWEI Möglichkeiten, dies zu tun. Aktiv/Aktiv oder Aktiv/Passiv. Aktiv/Passiv ist am häufigsten Die Daten werden auf dem passiven Knoten synchronisiert. Der Cluster ist nützlich Konfiguration so weit wie der aktive Knoten geht die passive ist sofort ausgeschaltet, also keine Ausfallzeit. Das Clustering synchronisiert kontinuierlich die 2 Knoten im Cluster.

Ich arbeite mit SQL-Server, aber ich denke, die grundlegende Prämisse des Clustering ist das gleiche für mySQL - das ist keine (oder keine spürbare) Ausfallzeit bei Hardwarefehler.

EDIT: Zusätzlich behandelt die Clustering-Software die Synchronisation. Sie müssen sich keine Sorgen machen. Sie sehen die Clusterknoten als virtuelles Verzeichnis an, das sich wie ein Server in Windows verhält.

hier Dokument Erläuterung dieses

http://www.sql-server-performance.com/articles/clustering/clustering_intro_p1.aspx

+0

Zumindest eine viel geringere Wahrscheinlichkeit für merkliche Ausfallzeiten. Es besteht immer noch die Möglichkeit dazu. – Sev

+0

Sehr viel geringere Wahrscheinlichkeit als Alternativen. Das ist mir passiert, niemand hat es bemerkt. – Stuart

0

Clustering ist auch, wo eine Anzahl von Knoten die Arbeitslast behandeln, dies wird manchmal aktive/aktive Cluster genannt, d. H. Alle Knoten teilen sich die Arbeitslast und sind aktiv. Dies wird normalerweise von Spezialsoftware wie Oracle RAC ([email protected]) für die Oracle RDBMS-Datenbank gehandhabt. Mit RAC kann Oracle auf sehr große Arbeitslasten skaliert werden.