Hi,
Ich will eine Datenbank mit gleichem Datenbestand an 3 Standorten haben, wobei an jedem Standort Daten ergänzt/verändert werden können.
schwierig. Ideal wäre eine Aktualisierung aller Datenbestände in (annähernd) Echtzeit.
Da ich MySQL verwende und leider an einem Standort nicht genügend Rechte habe,
Du hast eine große Macht, die Du vergisst: Du kannst den Provider wechseln. Wenn er Dir nicht genügend Rechte gibt, verlasse ihn einfach! Alles andere wäre Unsinn - Du legst Dir selbst Steine in den Weg, weil jemand anders auf stur stellt. Frage Deinen Provider, unter welchen (auch monitären) Bedingungen er Dir die von Dir benötigten Berechtigungen gibt.
kann ich nicht den Snyc-Mechanismus der in MySQL implementiert ist verwenden, wobei der wahrscheinlich auch nur mit 2 Standorten funktioniert hätte.
Binäre Bäume funktionieren auch mit drei Blättern, also geht eine Synchronisation dreier Quellen, deren Mechanismus für zwei Quellen ausgelegt ist, ebenfalls.
Da sich Daten gleichzeitig an verschiedenen Standorten ändern können kann ich nicht einfach genau dieselben Tabellen haben und die untereinander abgleichen, ich brauche zu jedem Datensatz eine MasterID und eine ClientID, um dann zu sehen ob sich ein Datensatz verändert hat, neu hinzugekommen ist... und sich dabei dann wirklich nichts überschneidet.
Dabei ist es sicher nicht ganz unerheblich, dass MySQL keine Foreign Keys beherrscht. Möglicherweise ist dieses DBMS auch eine ungünstige Wahl der Technik.
Aber dadurch wird der Datenaustausch SEHR kompliziert, da ich Daten nicht einfach kopieren kann(mysqldump..., binlog), denn ich muß die Daten ja verändern, wenn es beispielsweise noch keine MasterID gibt!
Niemand hat gesagt, dass es leicht ist :-)
Das ganze ist wirklich kompliziert, und alle haben mir bis jetzt gesagt "laß es..."
Nö. Durchdenke es genau - und überdenke auch jedwede bisher getroffene Entscheidung. Was Dich behindert, war offenbar ein Fehler, dessen Korrektur Du in Erwägung ziehen solltest.
aber ich würde es doch ganz gerne mal hinbekommen, über denselben Datenbastand an 3 oder mehr Standorten(1 Master, 2 oder mehr Clients)
Hm, ist "Client" wirklich der richtige Begriff? Wenn ich Dich richtig verstehe, wäre "Mirror" passender.
zu verfügen, obwohl an allen Stanbdorten gleichzeitig Einträge gemacht werden könne und Datensätze verändert werden können.
Dann sind alle drei Master. Du musst Dir einen Plan jeden denkbaren Unterschieds zwischen zwei Datenbeständen machen (auf A hinzugefügt, auf B nicht vorhanden; auf A gelöscht, auf B verändert; ...), und wie Du jeweils drauf reagieren möchtest. Eventuell möchtest Du auch einzelne Datensätze (Datensatzgruppen) an einen Master binden und ihn nur dort verändern lassen.
Sicher, man muß für das Frontend Regeln definieren, das sich da möglichst keine Konflikte ergeben... genug abgeschweift, aber glaube mir das hat mich schon viele Haare gekostet ;-)
Willkommen in der wunderbaren Welt der Computer ;-)
_Nichts_ ist wirklich plattformunabhängig.
Wenn Du sagst es gibt keine "Plattformunabhängigkeit",
Keine wirkliche - ganz einfach deswegen, weil es in der Praxis schwer umzusetzen ist. Bleiben wir bei Java: Die Sprache an sich und ihre Umsetzung ist plattformunabhängig. "Theoretisch" könnte ein Java-Programm wirklich überall identisch laufen. Allerdings wird dazu eine VM benötigt - die speziell für die Plattform entwickelt wurde, also für sich genommen das Gegenteil von plattformunabhängig ist. Dadurch resultieren im Detail natürlich Unterschiede.
dann sage ich dass wenn man diese Unabhängigkeit dennoch anstrebt,
Nun, wenn ein Programm auf jedem Rechner läuft, auf dem man es startet, dann ist das doch zweifellos gut, oder?
man sehr wohl darauf achten wird/sollte, das man keine bekanntermaßen inkompatiblen Techniken einsetzt!
Du redest von Standards, also z.B. RFCs, ISO-Normen usw. Wenn sich alle daran halten, wird der Umgang mit anderen Techniken sehr einfach - weil genau definiert ist, wie das Maß der Kompatibilität auszusehen hat. Somit ist Inkompatibilität kein Problem mehr, weil sie durch die Standards erschlagen wird. Das hat dann aber mit der Plattform schon nichts mehr zu tun :-)
Cheatah