Synchronisieren von Datenbanken zwischen 7 Servern

DB_Neuling

Benutzer
Beiträge
5
Hallo allerseits.

Ich selber kann quasi 0,0 in MariaDB programmieren.

Für einen Verein möchte ich mal grundsätzliche Strategien klären, um eine Art Mitgliedsverwaltung zu optimieren.

Ich möchte mich nur mal grundsätzlich zu einer Anforderung und Lösungsansätzen informieren, die es gibt, um 7 lokale Server (auf Raspberry-Pi 3-Hardware) stets gleich zu halten.
Es gibt Gründe, warum diese Plattform gewählt wurde.

Alle 7 Geräte haben zu Beginn die exakt gleiche Datenbank mit exakt dem gleichen Inhalt.
Eine Lösung mit dediziertem Server ist aus verschiedenen Gründen nicht sinnvoll/gewünscht (z.B. kann die Netzwerkverbindung unvorhergesehen abbrechen, dennoch soll jedes einzelne Gerät weiter funktionieren, es gibt aber noch mehr Gründe...).

Aktuell ist das schon teilweise gelöst, indem alles über eine API abgewickelt wird. Dies ist jedoch aufwändig, langsam, ineffizient, unsicher.

Nun bin ich an Lösungen interessiert, die rein mit nativen Datenbankfunktionen realisiert werden können.
Meine Hoffnung ist, auf relativ schwacher Hardware durch effiziente Datenbanksteuerung eine dennoch optimale Performance zu erzielen. (Ja ich weiss, Quadratur des Kreises...)

Ich bitte Euch, das hinzunehmen, auch wenn es vielleicht sehr speziell wirkt.

Ich stelle mir einen Ablauf vor in dem an jedem beliebigen der 7 Rechner eine Änderung in der lokalen Datenbank erfolgen kann. Diese soll so schnell wie möglich allen weiteren Rechnern bekannt gemacht, und dort jeweils in die lokale DB eingepflegt werden.

Solte mal ein Gerät vom Netzwerk abgeschnitten werden, soll das Gerät alle lokalen Änderungen loggen.
Bei Wiederkehr in den Netzverbund soll das Gerät die lokalen Änderungen wieder allen anderen Geräten bekannt machen und diese verteilen. Zudem soll das einzelne Gerät sich die aktuellen Stände aller anderen Geräte ziehen und diese lokal einpflegen.

Ich weiss, dass das sehr speziell ist. Nicht umsonst wende ich mich an eine Forengemeinde, in der ich Spezialschwarmwissen zu meinen Anforderungen erhoffe. Vielleicht gibt es hier den richtigen Tipp.

Ich bedanke mich ganz herzlich für das Lesen bis hier und würde ich sehr über gute und konstruktive Tipps / Hilfen / Lösungsansätze /weiterführende Gedanken freuen.

Bitte zerreisst mein Anliegen nicht gleich in der Luft.

In der Hoffnung, etwas Erhellendes zu lesen.

Beste Grüße

DB_Neuling
 
Werbung:
Was Du suchst deckt sich recht gut mit dem, was hier beschrieben ist: Postgres-BDR | 2ndQuadrant
Damit hättest Du auch gleich die Lösung. BDR funktioniert mit räumlich getrennten und loose gekoppelten Rechnern, es ist exakt für dieses Szenario konzipiert.
 
Hallo akretschmer.

Vielen Dank für Deine Antwort.

Leider habe ich, da das hier aus ehrenamtlichen Engagement geschieht, sehr wenig finanzielle Ressourcen zu Verfügung.
Gibt es auch etwas im nichtkommerziellen Bereich?

Gibt es eine Strategie, mit Anweisungen in SQL oder über Scripte einen Synchronisierung sicherzustellen?
Vielleicht kann man sich ja auch (vielleich nicht so perfekt wie die kommerzielle Lösung) eine eigene Lösung erstellen.

Beste Grüße

DB_Neuling
 
BDR ist, ähm, ja, nicht ganz preiswert.

Galera: soweit ich weiß, wird das nicht gut arbeiten, wenn zwischen den Knoten hohe Latenzen sind. Das wäre für BDR kein Problem.
 
@akretschmer: Konnte mir ein Lächeln nicht verkneifen ob deines "ähm"....
Im Haupteinsatz sind die 7 Raspberry Pi direkt über einen LAN Gigabit-Switch verbunden. Die gesamte DB ist keine 500MB groß. Die Bewegungsdaten sind eher übersichtlich. Da sähe ich jetzt keine großen Gründe für Latenzen, ausser die Rechenleistung der einzelnen Geräte.
Es kann aber auch sein, dass ein Gerät für eine gewise Zeit aus dem Verbund entnommen wird und dann später zurückkehrt. Dann wäre es toll, wenn die Systeme sich abgleichen könnten.

Zudem könnte ja ein Gerät ausfallen, daher sollten alle gleich berechtigt die Datenbank halten.

Wie definierst du in diesem Zusammenhang große Latenzen?



@Dukel: Vielen Dank für Deine Antwort. Eine No-SQL-DB kommt eher nicht in Betracht, obwohl das von dir Verlinkte interessant aussieht.


Vielen Dank so weit auf jeden Fall für die Beteiligung.

Beste Grüße

DB_Neuling
 
Werbung:
Zurück
Oben