MySQL-Datenbank auf mehreren Servern

11

Ok, ich weiß wirklich nicht, wie ich fragen soll, was ich suche, um herauszufinden, warum meine Lektüre und Recherche sonst wahrscheinlich nichts Relatives pro Wort ergibt. Was ich derzeit habe, ist eine einzelne MySQL-Datenbank, und ich weiß, dass sich die Daten früher oder später häufen werden und mir auf diesem Server der Platz ausgehen wird. Bevor dies geschieht, möchte ich die Daten in Einklang bringen, damit ich die Datenbank auf mehrere Computer verteilen kann, einen für den Lastenausgleich und zwei reine Speicherfaktoren.

Meine Frage ist also, wie funktioniert das? Vielleicht denke ich hier auch 1-dimensional, aber ich kann nicht herausfinden, wie das funktionieren würde. Ist es eine Datenbank, die auf die nächste Maschine übergeht und die nächste, wenn die Daten wachsen, oder sind es einzelne Datenbanken mit jeweils denselben Schemas? So oder so kann ich mir einfach nicht vorstellen, geschweige denn in eine Logik zu kommen, um zukunftssicher zu machen, woran gerade gearbeitet wird. Da wir nicht gegen die Wand stoßen und einen Stopp einlegen wollen, wenn die Daten für eine Maschine einfach zu groß sind.

Was muss ich also lesen, recherchieren, Methoden, Praktiken usw. anwenden, um mich auf den richtigen Weg zu bringen?

chris
quelle
Dies hat mir geholfen, ich bin ein Neuling, wenn es um (meinen) SQL-Service geht, der mehrere Computer umfasst. Ich hatte ein wenig Schwierigkeiten, die richtigen Fragen zu finden, um in diesen Raum einzudringen. +1 Frage und Antwort. ;)
James T Snell

Antworten:

8

Sie können tatsächlich MySQL Clustering benötigen.

Insbesondere eine Funktion - " Auto-Sharding " - verteilt Ihre Daten auf mehrere Computer. Mit "Online-Skalierung" können Sie neue Knoten hinzufügen, wenn Sie mehr Kapazität benötigen, während die Datenbank ausgeführt wird. Ziemlich cool. Sie können es hier herunterladen .

Es gibt jedoch noch einige andere Dinge, die Sie in Betracht ziehen können, um das Problem zu lösen, die möglicherweise leichter zu erreichen sind:

Holen Sie sich eine größere Festplatte!

Klingt ein bisschen offensichtlich, aber wenn Sie sicher sagen könnten, dass eine xxxGb-Festplatte Y Jahre halten würde, dann könnte es sich lohnen, sich dafür zu entscheiden. Sie könnten entweder ein Bild des Laufwerks nehmen und es auf dem neuen installieren, oder Sie können es als zusätzliches Laufwerk installieren und bewegen Sie die MySQL - Datendateien auf das neue Laufwerk. <

Teilen Sie die Tabellen auf mehrere Datenbanken auf.

Teilen Sie Tabellen auf mehrere Datenbanken auf, die dann auf mehreren Laufwerken gespeichert werden können. Windows Azure hat Größenbeschränkungen für seine Datenbanken, und Microsoft empfiehlt diesen Ansatz. Es verbessert auch die Leistung ein wenig.

Können Sie Daten archivieren?

Können Sie große Tabellen auf einem anderen Laufwerk archivieren? Werden die Daten wirklich benötigt? Wenn es historisch ist und nur als Referenz benötigt wird, können Sie einen Archivierungsprozess einrichten, der es in Dateien auf einem anderen Laufwerk oder in Archivtabellen in einer anderen Datenbank überträgt, die auf Datendateien auf einem anderen Laufwerk verweisen?

greg84
quelle
Dies soll ein Produktionssystem sein, bei dem zwar einige Archivierungen im Laufe der Zeit durchgeführt werden können, aber im Allgemeinen werden die erwarteten Daten, die regelmäßig von einer Handvoll Tabellen abgerufen werden, leicht einige Terabyte betragen. Obwohl das Clustering-Bit sehr hilfreich ist, muss ich zu diesem Thema viel lesen, danke. Die größere Festplatte ist leider nicht verfügbar, so viele Daten zu einem einzelnen Fehlerpunkt sind für mich ein zu großes Risiko.
Chris