Frage

Meine Frage ist viel wie dieses . Ich bin auf MySQL jedoch, und ich bin auf der Suche nach der „untersten tech“ Lösung, die ich finden kann.

Die Situation ist, dass ich zwei Datenbanken, die die gleichen Daten in ihnen haben sollten, aber sie sind in erster Linie aktualisiert, wenn sie nicht in der Lage sind, sie zu kontaktieren. Ich vermute, dass es irgendeine Art von Clustering oder Master / Slave-Sache, die sie für die Synchronisierung der Lage wäre, einfach gut. Aber in meinem Fall, das ist Haupttriebe, da dies nur ein Kratzer DB für meinen eigenen Gebrauch ist.

Was ist ein guter Weg, dies zu tun?

Mein aktueller Ansatz ist es, eine Federated Tabelle auf einem von ihnen zu haben und, stopft jeder so oft, die Daten über den Draht auf den anderen mit einem Insert / select. Es bekommt ein wenig gewunden versucht, mit Primärschlüssel zu behandeln und was nicht. (insert ignore scheint nicht richtig zu arbeiten)

P. S. Ich kann leicht eine Abfrage erstellen, die die Zeilen auswählt, zu übertragen.

War es hilfreich?

Lösung 2

Meine aktuelle Lösung ist

  • eine föderierte Tabelle auf dem Quellfeld, das auf dem Zielfeld
  • einrichten packt den Tisch
  • eine Sicht auf dem Quellfeld aufgebaut, die die Zeilen auswählt, aktualisiert werden (als eine Verknüpfung der föderierte Tabelle)
  • eine weitere föderierte Tabelle auf dem Zielfeld, das auf dem Quellfeld packt die Ansicht einrichten
  • Ausgabe ein INSERT...SELECT...ON DUPLICATE UPDATE auf dem Zielfeld, um den Zug zu laufen.

Ich glaube, ich nur die Quelltabelle greifen konnte und es alles in einem Schuss, aber auf der Grundlage der Abfrage-Logs ich sehen habe, vermute ich, dass ich mit etwa 20 K-Abfragen zu sein laufen würde am Ende oder über 100-300MB der Datenübertragung je nachdem, wie Dinge passieren. Die obige Einrichtung verkaufte Ergebnis in etwa 4 Abfragen und wenig mehr Daten übertragen als tatsächlich benötigt werden.

Andere Tipps

MySQL eingebaute Replikation ist sehr einfach einzurichten und funktioniert gut, auch wenn die DBs die meiste Zeit getrennt sind. Ich würde sagen, das ist viel einfacher als jede kundenspezifische Lösung gibt, wäre zu konfigurieren.

Siehe http://www.howtoforge.com/mysql_database_replication Anweisungen, sollten Sie oben sein und läuft in 10-15 Minuten und Sie werden nicht wieder darüber nachdenken müssen.

Der einzige Nachteil ich sehen kann, ist, dass es asynchron ist - dh. Sie müssen einen designierten Master haben, das alle Änderungen wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top