Einen Mysql Stand auf x Servern

MySQL, PostgreSQL, SQLite
mwo
Posts: 11
Joined: 2003-07-29 17:23
Location: Essen

Einen Mysql Stand auf x Servern

Post by mwo » 2005-12-21 11:25

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

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Einen Mysql Stand auf x Servern

Post by Roger Wilco » 2005-12-21 14:25

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.
Nein. Du bekommst dann massive Probleme mit der Konsistenz.
mwo wrote:Kann man das umgehen, oder anders umsetzen?
http://dev.mysql.com/doc/refman/5.0/en/replication.html

mwo
Posts: 11
Joined: 2003-07-29 17:23
Location: Essen

Re: Einen Mysql Stand auf x Servern

Post by mwo » 2005-12-21 14:51

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

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: Einen Mysql Stand auf x Servern

Post by Roger Wilco » 2005-12-21 15:02

mwo wrote:Gibts da evtl. noch andere Alternativen?
Ja, ein MySQL Cluster (http://dev.mysql.com/doc/refman/5.0/en/ndbcluster.html). Das ist aber *etwas* aufwendiger.

oxygen
RSAC
Posts: 2179
Joined: 2002-12-15 00:10
Location: Bergheim

Re: Einen Mysql Stand auf x Servern

Post by oxygen » 2005-12-21 17:23

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?
Ein Server kann gleichzeitig Master und Slave sein.

User avatar
isotopp
RSAC
Posts: 482
Joined: 2003-08-21 10:21
Location: Berlin

Re: Einen Mysql Stand auf x Servern

Post by isotopp » 2006-01-26 19:27

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.
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.

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.

theton
Posts: 31
Joined: 2006-01-24 11:56
Location: Berlin

Re: Einen Mysql Stand auf x Servern

Post by theton » 2006-01-28 03:05

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.