Hallo,
Ist es möglich die mysql daten auf einem Samba Server zu speichern, und dann gleichzeitig von x servern aus lesen+schreiben zu lassen, sodass auf jedem Server ein eigener mysql server/apache usw läuft.
Das Problem wird wohl sein, dass mysql die Files beim lesen/schreiben "sperrt" oder?
Kann man das umgehen, oder anders umsetzen?
Mein Ziel ist, dass ich auf x Servern in einem RZ auf eine einzige Datenbank zugreifen kann, sich die Db last aber auch auf diese x Server verteilt.
Vielen Dank für eure Hilfe,
MfG
mwo
Einen Mysql Stand auf x Servern
-
Roger Wilco
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Einen Mysql Stand auf x Servern
Nein. Du bekommst dann massive Probleme mit der Konsistenz.mwo wrote:Ist es möglich die mysql daten auf einem Samba Server zu speichern, und dann gleichzeitig von x servern aus lesen+schreiben zu lassen, sodass auf jedem Server ein eigener mysql server/apache usw läuft.
http://dev.mysql.com/doc/refman/5.0/en/replication.htmlmwo wrote:Kann man das umgehen, oder anders umsetzen?
Re: Einen Mysql Stand auf x Servern
Hallo,
Hmm... Wie mir grade auffällt, sollten die Slaves dann nur lesen..
Das is aber irgendwie auch nich so das wahre, wenn man um irgendwas zu schreiben/updaten erst auf den Master connecten muss..
Gibts da evtl. noch andere Alternativen?
MfG
mwo
Hmm... Wie mir grade auffällt, sollten die Slaves dann nur lesen..
Das is aber irgendwie auch nich so das wahre, wenn man um irgendwas zu schreiben/updaten erst auf den Master connecten muss..
Gibts da evtl. noch andere Alternativen?
MfG
mwo
-
Roger Wilco
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Einen Mysql Stand auf x Servern
Ja, ein MySQL Cluster (http://dev.mysql.com/doc/refman/5.0/en/ndbcluster.html). Das ist aber *etwas* aufwendiger.mwo wrote:Gibts da evtl. noch andere Alternativen?
Re: Einen Mysql Stand auf x Servern
Ein Server kann gleichzeitig Master und Slave sein.mwo wrote:Hallo,
Hmm... Wie mir grade auffällt, sollten die Slaves dann nur lesen..
Das is aber irgendwie auch nich so das wahre, wenn man um irgendwas zu schreiben/updaten erst auf den Master connecten muss..
Gibts da evtl. noch andere Alternativen?
Re: Einen Mysql Stand auf x Servern
Nein. Verwende Replikation. Replikation ist trivial aufzusetzen und zu betreiben. Replikation ist jedoch asynchron: Daten vom Master werden vom Master an die Slaves repliziert, sind aber erst zu einem unbekannten Zeitpunkt auf allen Slaves verfügbar.mwo wrote:Ist es möglich die mysql daten auf einem Samba Server zu speichern, und dann gleichzeitig von x servern aus lesen+schreiben zu lassen, sodass auf jedem Server ein eigener mysql server/apache usw läuft.
Eine gängige Methode ist es, auf dem Master und den Slaves eine Token-Tabelle zu haben, die vom Typ MEMORY (HEAP) ist und die auch repliziert wird. Data Modification Language gegen den Master wird dann so implementiert, daß man nach der DML noch ein Insert eines eindeutigen Tokens in die Tokentabelle macht und dann auf dem Slave wartet, bis das Token sichtbar ist. Da Replikation streng seriell funktioniert, kann man dann sicher sein, daß die eigentliche DML auch repliziert wurde.
Die Alternative ist MySQL Cluster (NDB-Tabellen), die jedoch aufwendiger zu konfigurieren sind und andere Performance- und Skalierungseigenschaften haben. Dafür ist Cluster synchron und macht 2PC.
Re: Einen Mysql Stand auf x Servern
So schwer ist ein MySQL-Cluster garnicht einzurichten. Ich arbeite unter http://www.blhg.org/mysql_cluster_lan.php gerade an einem Howto, ist aber leider noch nicht ganz fertig, wird aber in den naechsten 2 Wochen fertig gestellt und auf der Hauptseite eingebunden.