[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Mysql Datenbanken auf verschiedenen Maschinen in "realtime" abgleichen


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>