dedlfix: 2-seitige Datenbanksynchronisation (MySQL)

Beitrag lesen

echo $begrüßung;

Ich habe 2x dieselbe Version einer MySQL-Datenbank - davon liegt eine auf einem Webserver und die andere auf einem lokalen Windows-Rechner.
Nun möchte ich diese 2 Datenbanken möglichst in beide Richtungen synchronisieren und das möglichst zeitnah und möglichst automatisch.

Mit dem Synchronisieren beschäftigt sich das Kapitel Replication im Handbuch. Allerdings gehen die Szenarien immmer davon aus, dass nur ein Schreibmaster existiert und die anderen nur Lese-Sklaven sind. Das Problem ist die Atomarität der Daten. Wenn A den Datensatz mit der ID x ändert, und B das auch machen will, wer hat nun Recht? Wenn A einen Datensatz anlegt, der die ID y bekommt, und B ebenfalls tätig wird, bevor die Synchronisierung stattfand, gibt es nun zweimal die ID y.

Es ist nicht grundsätzlich unmöglich, eine Zweiwege-Replikation aufzusetzen. Eine Replication-FAQ-Frage benennt die Voraussetzungen: http://dev.mysql.com/doc/refman/5.0/en/replication-faq.html#qandaitem-15-3-4-5

Hilft mir da z.B. ein Tool wie http://www.mysync.de weiter?

Es hat den gleichen Nachteil wie die Replikationslösung, zuzüglich der größeren Zeitabstände, und des Nichtwissens, welche Daten konkret geändert wurden. Um letzeres festzustellen wird ein LastChanged-Feld benötigt, das stets gepflegt werden muss. Der einzige Vorteil ist, dass es keine direkte Netzwerk-Verbindung zwischen den Servern benötigt.

echo "$verabschiedung $name";