10 Datenbank Server synchron halten

Karl34

New Member
10 Server, auf allen 10 läuft mysql.

Auf diesen Server muss eine Datenbank Synchron gehalten werden.
Es handelt sich um eine User datenbank.

Wenn auf einem der 10 Server in der Datenbank eine änderung gemacht wurde muss diese auf allen anderen auch gemacht werden.

Wie stelle ich das am besten an?

Master Master Master usw. gehts sowas überhaupt vernünftig?
 
Last edited by a moderator:
MySQL unterstuetzt nicht wirklich exakte Synchronisierung, nur (und afaik auch relativ inoffiziell) was als "eventual consistency" beschrieben wird - die Daten sind NICHT zum Zeitpunkt der Aenderung gleichzeitig repliziert sondern erst nach einer nicht spezifierbaren und voraussehbaren Zeit, somit kannst du nicht von Konsistenz ausgehen. Integrierte Konfliktloesung in der Software ist somit eigentlich Pflicht ;)

Bei einer User-Datenbank sollte ein Pyramiden-Modell ausreichen da idR nicht die Aenderung direkt zur Verfuegung stehen muss aber Abweichung zwischen Master's verboten sind. Der Root-MySQL wird somit nur zum Ausfuehren von INSERT und UPDATE verwendet waehrend die von diesem replizierenden Slaves alle SELECT abkriegen welche normalerweise das Gros der Abfragen sein sollten.
(Dies ist zB als RW-Splitting in MySQL-Proxy implementiert)
 
Danke, der hat mir das so seltsam erklärt das ich nur die hälfte verstanden habe.
Hab ihm gesagt er solls mir mal aufzeichnen, werde dann mal schauen was sache ist.
Weil wenn ich nicht grade einen Denk Fehler habe reicht ein Master:Slave Setup.
 
En Master-Slave Setup allein ist nur dann ausreichend wenn die Software bereits r/w splitting implementiert ist, da der Slave prinzip-bedingt nicht wiede seine Daten zurück an den Master reicht :-)
Allerdings ist das Beirüsten mittels mysql-proxy ohne Änderung am Programm und mit nur geringfügigen Änderungen am Serversetup (mysql auf einen anderen Port und das Installieren und konfigurieren des Proxy) möglich.
 
Back
Top