PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrere MySQL DBs synchron halten



tschloss
16.01.07, 09:35
Hi,
ich habe hier ein kleine Aufgabe, würde aber doch gerne den Aufwand und das Risiko von Datenverlusten in der Testphase rediuzieren:

Ich habe ein kleines CRM-System für meinen persönlichen Einsatz mit PHP und MySQL programmiert. Dieses läuft auf meinem Notebook.
Es gibt ab und an Situationen, da würde ich gerne mindestens lesend, besser schreibend auf eine Online-Version zugreifen.

Die Bedingungen sind eigentlich günstig:

- ich lösche niemals Datensätze physisch (sie werden nur als gelöscht (Kontakte) oder erledigt (Tasks) markiert), d.h. IDs werden auch nicht neu vergeben.
- die Tabellen verfügen über ein Timestamp Feld
- ich arbeite nicht "massiv parallel", eigentlich gar nicht (Konflikte solle es nicht geben), aber das könnte sich irgendwann auch mal ändern
- der Sync soll zu diskreten Zeitpunkten erfolgen, d.h. wenn ich ausnahmsweise mal die Online-Version (schreibend) nutzen will, könnte ich auch einen Job anstoßen.
- ich habe auf beide Datenbanken vollen Zugriff (über ssh auch per mysql-Client-Server)

Ungünstig ist: die Versionen der DB-Server sind so unterschiedlich, dass ich einen mysqldump vom Client nicht ohne Modifikationen auf den Server loslassen kann. (Versionen suche ich noch raus, der Client ist ein aktuelles XAMPP, der Server ist ein Debian 3.1)

Jetzt suche ich den besten Ansatz, der nicht mit Kanonen auf Spatzen schießt.
Programmiere ich mir ein kleines Tool, welches das macht (Vorteil: es könnte später auch die Applikationslogik berücksichtigen)
oder
nehme ich etwas Vorhandenes (was?, die MySQL-Tools?)

Habt ihr sowas schon gemacht und was wäre aus eurer Sicht die beste Strategie?

Danke!

waxolunist
16.01.07, 10:04
Hast du schon mal nach MySQL Synchronization gegoogelt (http://www.google.at/search?client=firefox-a&rls=org.mozilla%3Ade%3Aofficial&channel=s&hl=de&q=MySQL+synchronization&meta=&btnG=Google-Suche)?

1.140.000 Treffer - da sollte auch das richtige für dich dabei sein.

hier:
http://dev.mysql.com/tech-resources/articles/syncman/index.html

hier:
http://www.databasejournal.com/features/mysql/article.php/1584401

und hier:
http://www.spectralcore.com/products/syncdatabase.php



mfg, christian

tschloss
16.01.07, 10:53
Hast du schon mal nach MySQL Synchronization gegoogelt (http://www.google.at/search?client=firefox-a&rls=org.mozilla%3Ade%3Aofficial&channel=s&hl=de&q=MySQL+synchronization&meta=&btnG=Google-Suche)?

1.140.000 Treffer - da sollte auch das richtige für dich dabei sein.

hier:
http://dev.mysql.com/tech-resources/articles/syncman/index.html

hier:
http://www.databasejournal.com/features/mysql/article.php/1584401

und hier:
http://www.spectralcore.com/products/syncdatabase.php



mfg, christian

Ja, habe ich natürlich und auch angefangen die Links abzuarbeiten. Aber ehrlich gesagt wäre mir ein Tipp aus der Erfahrung heraus lieber, zumal ich den Wunsch habe, mich nicht mit einem überpowerten -zB weil sehr universell und sehr robust - Mechanismus zu erschlagen.

Zu den Links:

1. Das scheinen auf den ersten Blick nicht passende Lösungen zu sein (zu groß, JAVA, enge Bindung zw. den Instanzen?, Funktionsfähigkeit zw. realtiver alter MySQL-Version und aktueller).

2. Ist ein nettes Tool, welches ich mir sicher ansehen werde. Die Beschreibung bezieht sich allerdings auf das Abgelcihen der Tabellenstruktur, nicht auf die Daten. Aber vermutlich geht das für die Daten dann auch. Sieht hilfreich aus, evtl. auch für anderen Zweck.
/edit: Leider ist die Synchronisation für Struktur und Daten in der kostenlosen Community Edition NICHT enthalten.

3. Auch die heben nur die Sync der Struktur hervor, auf die Daten gehen die gar nicht ein. Ist scheinbar closed source und kostet 150 USD.