Datenbank-cluster und load balancing
Was ist Datenbank-clustering? Wenn du die gleiche Datenbank auf 2 unterschiedlichen Servern wie halten Sie die Daten zwischen synchronisiert. Und wie unterscheidet sich dies von load balancing von einem Datenbank-server-Sicht?
InformationsquelleAutor Malik Daud Ahmad Khokhar | 2009-07-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Datenbank-clustering ist ein bisschen ein Mehrdeutiger Begriff, einige Anbieter Beispiel mit einem cluster mit zwei oder mehr Server teilen sich den gleichen Speicher, einige andere nennen ein cluster eine Gruppe von replizierten Servern.
Replikation definiert die Methode, mit der eine Gruppe von Servern synchronisiert bleiben, ohne zu teilen, der Speicher in der Lage, geografisch verteilte, gibt es zwei Möglichkeiten:
master-master - (oder multi-master-Replikation: Jeder server kann Updates der Datenbank. Es ist in der Regel die Betreuung durch ein anderes Modul innerhalb der Datenbank (oder eine ganz andere software läuft auf Ihnen in einigen Fällen).
Nachteil ist, dass es sehr schwer ist, gut zu tun, und einige Systeme verlieren ACID-Eigenschaften, wenn in diesem Modus der Replikation.
Vorteil ist, dass es flexibel ist, und unterstützen Sie den Ausfalls eines Servers, während immer noch die Datenbank aktualisiert.
master-slave-Replikation: Es gibt nur eine einzige Kopie von maßgeblichen Daten, die den gedrückt, um den slave-Server.
Nachteil ist, dass es weniger fehlertolerant, wenn der Meister stirbt, gibt es keine weiteren änderungen in den Sklaven.
Vorteil ist, dass es einfacher ist, zu tun, als multi-master und in der Regel erhalten ACID-Eigenschaften.
Load balancing ist ein anderes Konzept, er besteht darin, die Verteilung der Anfragen an diese Server, so dass die Last so gleichmäßig verteilt wie möglich. Es erfolgt in der Regel auf der Anwendungsebene (oder mit einem connection pool). Der einzige direkte Zusammenhang zwischen Replikation und load-balancing ist, dass Sie brauchen einige Replikation in der Lage sein, um den Lastenausgleich, sonst hätten Sie einen einzelnen server.
Postgresql-docs siehe unter "Datenbank-cluster" anders: "Bevor Sie irgendetwas tun können, müssen Sie Sie initialisieren einer Datenbank-Speicherbereich auf der Festplatte. Wir nennen dies ein Datenbank-cluster. (SQL verwendet den Begriff Katalog cluster.) Ein Datenbank-cluster ist eine Sammlung von Datenbanken, verwaltet durch eine einzelne Instanz von einer Laufenden Datenbank-server. "postgresql.org/docs/8.3/static/creating-cluster.html
Was bedeutet ACID-Eigenschaften bedeuten, oder eher, was genau Sie verlieren, wenn Sie nicht erhalten?
In computer science, ACID (Atomarität, Konsistenz, Isolation, Dauerhaftigkeit) ist eine Reihe von Eigenschaften von Datenbanktransaktionen, die garantieren soll, Gültigkeit auch im Falle von Fehlern, Ausfällen, etc. Im Kontext von Datenbanken eine Folge von Datenbank-Operationen, erfüllt die ACID-Eigenschaften (und diese kann wahrgenommen werden, als eine einzige logische Operationen auf den Daten), nennt man Transaktion. Zum Beispiel, eine übertragung von Geldern von einem Bankkonto auf ein anderes, sogar mit mehreren änderungen, wie etwa die Belastung eines Kontos und Gutschrift auf einem anderen, ist eine einzelne Transaktion.
InformationsquelleAutor Vinko Vrsalovic
Aus SQL Server Sicht:
Clustering wird Ihnen eine aktiv - passiv-Konfiguration. Sinn in einem 2-Knoten-cluster, einer von Ihnen aktiv ist (Dienst) und der andere passiv sein (warten, um zu übernehmen, wenn der aktive Knoten ausfällt). Es ist eine hohe Verfügbarkeit von hardware-Sicht.
Können Sie einen aktiv-aktiv-cluster, aber es erfordert mehrere Instanzen von SQL Server auf jedem Knoten. (also Beispiel 1 auf Knoten A Failover zu Beispiel 2 auf Knoten B, und Beispiel 1 auf Knoten B ein Failover zu Beispiel 2 auf Knoten A).
Load balancing (zumindest aus SQL Server Sicht) nicht existiert (zumindest in dem gleichen Sinn, der web-server-load-balancing). Sie können nicht die Last, die Weg ist. Allerdings können Sie teilen Sie Ihre Anwendung für die Ausführung auf einer Datenbank auf server 1 und läuft auch auf einige Datenbank auf server 2, usw. Dies ist das primäre Mittel der "load balancing" in der SQL-Welt.
InformationsquelleAutor Jimmy Chandra
Clustering verwendet freigegebenen Speicher von einer Art (ein Käfig oder ein SAN, zum Beispiel), und setzt zwei Datenbank-front-ends auf. Die front-end-Server teilen sich eine IP-Adresse und die cluster-Netzwerk-Namen, verwenden die clients eine Verbindung herstellen, und Sie entscheiden untereinander, wer gerade im laden von Clientanforderungen bedienen.
Wenn Sie Fragen zu einem bestimmten Datenbank-server, hinzufügen, dass auf Ihre Frage, und wir können hinzufügen von details in der Umsetzung, aber im Kern ist das, was clustering ist.
InformationsquelleAutor SqlRyan
Datenbank-Clustering ist eigentlich ein Modus der synchronen Replikation zwischen zwei oder eventuell mehr Knoten mit einer zusätzlichen Funktionalität von Fehlertoleranz Hinzugefügt, um Ihr system, und das auch in einer shared-nothing-Architektur. Durch ein gemeinsames, nichts, es bedeutet, dass die einzelnen Knoten tatsächlich teilen nicht alle physischen Ressourcen wie Festplatte oder Arbeitsspeicher.
Soweit die Aufbewahrung der Daten synchronisiert ist besorgt, es ist ein management-server, der alle Daten-Knoten verbunden sind, zusammen mit der SQL-Knoten um dies zu erreichen(reden, speziell über MySQL).
Nun zu den unterschieden: der Lastausgleich wird nur ein Ergebnis, das erzielt werden könnte, die durch das clustering, die anderen sind die hohe Verfügbarkeit, Skalierbarkeit und Fehlertoleranz.
InformationsquelleAutor Puneet Misra