[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Mysql Datenbanken auf verschiedenen Maschinen in "realtime" abgleichen
[Thread Prev] | [Thread Next]
- Subject: Re: Mysql Datenbanken auf verschiedenen Maschinen in "realtime" abgleichen
- From: Thomas Gross <thomas@xxxxxxxxxx>
- Date: Sat, 24 Sep 2005 12:13:37 +0200
- To: uugrn@xxxxxxxxxxxxxxx
On Sat, 2005-09-24 at 11:03 +0200, Tobias Klein wrote: > Hallo Christian, > > Am Samstag, 24. September 2005 10:54 schrieb Christian Eichert: > > Halo, > > > > FRAGE: Wenn man zwei mysqlserver hat auf zwei entfernten maschinen, wie > > gleicht man am besten die Datenbanken mit minimalem Trafic ab. > > Die Datenbanken sind teilweise hunderte MB gross. > > Was ich will ist eine art "diff" zu machen. so dass praktisch nach jedem > > INSERT oder DELETE quasi sofort auch die andere datenbank auf dem > > anderen entfernten Server die aktuelle version bekommt. > > Und es muss in beide Richtungen gehen. > > > > Gruesse > > Chr. Eichert > > Du koenntest dir eine Schnittstelle programmieren, die zwischen deiner > Applikation und dem jeweiligen MySQL-Server steht. Diese Schnittstelle wuerde > einfach die SQL-Befehle weiterreichen - nur halt an beide Server. So waeren > bei Aenderungen beide Server immer auf dem gleichen Stand. Voraussetzung waere, > dass die Server den Remotezugriff erlauben. Das klingt schoen und einfach, ist es aber nicht. Wenn du so was machst musst du aber arg aufpassen. Ich kann da mindestens 2 Probleme sehen. 1.) Du musst sicherstellen, dass alle Statements auf beiden Rechnern in der selben Reihenfolge ausgefuehrt werde. Und zwar global nicht nur innerhalb des aktuellen Zugriffs. Sonst gehst du die Gefahr von inkonsistenen Datenzustaenden ein. Das ist aehnlich wie der in der Replikation beschriebene Fall. (Das wird uebrigens in fast jedem Datenbanklehrbuch beschrieben) Dazu musst du wahrscheinlich bei jeden Zugriff grosse Teile beider Datenbanken locken. Das geht arg auf die Performance. 2.) Daraus folgt dann das zweite Problem. Wenn du das locken falsch programmierst, kann es zu Deadlocks kommen. Dann stehen beide Applikationen und das will man ja auch nicht. Solche verteilten Systeme sind notorisch tricky. Keine Ahnung was deine Anwendung ist. Aber wenn es wichtige Daten sind wuerde ich an deiner Stelle die Finger von einer solchen Loesung lassen. Es sei denn du weisst ganz genau was du und deine Applikation tut. > Btw.. von meiner Seite ein Hallo an diese Liste! Bin ein MA'ler und studiere > Informationstechnik im bald fuenften Semester an der BA. HI, schoen mal ein neues Gesicht zu sehen. thomas -- Thomas Gross <thomas@xxxxxxxxxx>