Replikation/Clustering
am 14.08.2006 12:03:00 von Xaradas
Hallo,
ich habe zwei Web-Server, auf denen ein LAMP (Linux Apache MySQL PHP)
System laufen soll. Fällt Webserver1 aus, soll Webserver2 einspringen.
Wichtig ist dabei nur, daß die MySQL Datenbanken gespiegelt werden.
Kann man das mit Replikation realisieren, oder gibt es Probleme, wenn
Webserver1 der Master ist und dieser ausfällt?
Wie sieht es mit Clustering unter MySQL5 aus, ist das stabil und bereits
für zwei Server zu empfehlen?
Gruß,
Oliver
Re: Replikation/Clustering
am 14.08.2006 13:50:28 von Axel Schwenke
"Oliver Benning" wrote:
> ich habe zwei Web-Server, auf denen ein LAMP (Linux Apache MySQL PHP)
> System laufen soll. Fällt Webserver1 aus, soll Webserver2 einspringen.
> Wichtig ist dabei nur, daß die MySQL Datenbanken gespiegelt werden.
>
> Kann man das mit Replikation realisieren, oder gibt es Probleme, wenn
> Webserver1 der Master ist und dieser ausfällt?
Replikation ist halt asynchron. Wenn der Master ausfällt, können die
Slaves im Prinzip beliebig weit zurück sein. In der Praxis ist der
Zeitverzug meist unter einer Sekunde. Aber es gibt keine Garantie.
Ob das reicht, mußt du selber entscheiden.
Ich habe seinerzeit die MySQL Server von wbocvybg.qr auf ein
replikationsbasiertes "Cluster" umgestellt und das funktioniert seit
gut 3 Jahren ohne Probleme.
> Wie sieht es mit Clustering unter MySQL5 aus, ist das stabil und bereits
> für zwei Server zu empfehlen?
Der MySQL-Cluster aka NDB Storage Engine funktioniert auch vor 5.0
schon recht zuverlässig. Allerdings ist er als reine in-Memory
Datenbank nicht unbedingt für jede Anwendung geeignet.
Wenn deine Schreiblast nicht zu hoch ist, könnte eine Option darin
bestehen, den MySQL-Tablespace auf ein DRBD Volume zu legen und so auf
den zweiten Node zu spiegeln. Mit InnoDB soll das angeblich ganz gut
funktionieren. MyISAM kannst du dafür vergessen.
Wenn du Geld in die Hand nehmen kannst/willst wäre auch m/cluster [1]
eine Option. Spielt aber eher in einer anderen Liga.
[1] http://www.continuent.com/ - huch das Produkt heißt heute
uni/cluster; mal sehen wie es morgen heißen wird ...
XL
Re: Replikation/Clustering
am 14.08.2006 14:02:48 von Dirk Brosowski
Oliver Benning schrieb:
> Hallo,
>
> ich habe zwei Web-Server, auf denen ein LAMP (Linux Apache MySQL PHP)
> System laufen soll. Fällt Webserver1 aus, soll Webserver2 einspringen.
> Wichtig ist dabei nur, daß die MySQL Datenbanken gespiegelt werden.
>
> Kann man das mit Replikation realisieren, oder gibt es Probleme, wenn
> Webserver1 der Master ist und dieser ausfällt?
>
Das ist realisierbar.
> Wie sieht es mit Clustering unter MySQL5 aus, ist das stabil und bereits
> für zwei Server zu empfehlen?
Sollte eigentlich stabil genug sein.
Grüße
Dirk
Re: Replikation/Clustering
am 15.08.2006 14:12:32 von Markus Behnke
> ich habe zwei Web-Server, auf denen ein LAMP (Linux Apache MySQL PHP)
> System laufen soll. Fällt Webserver1 aus, soll Webserver2 einspringen.
> Wichtig ist dabei nur, daß die MySQL Datenbanken gespiegelt werden.
>
> Kann man das mit Replikation realisieren, oder gibt es Probleme, wenn
> Webserver1 der Master ist und dieser ausfällt?
>
Dabei solltest Du nicht vergessen, daß sich die Clients auch an eine
bestimmte IP connecten.
D.h. entweder Du programmierst die Applikation entsprechend, daß sie
umschwenken kann auf einen
anderen MySQL-Server oder alternativ und unter der Bedingung, daß die
MySQL-Server nebeneinander
stehen, installierst Du noch UCARP dazu (www.ucarp.org).
Das ist allersimpelstes IP-Takeover.
Oder gleich die große Lösung heartbeat.
Zusätzlich zur online Replikation würde ich aber noch klassische Dumpfiles
in regelmäßigen Abständen erzeugen.
Habe schon erlebt, daß die Synchronisation stirbt, wenn beispielsweise durch
einen Import einer größeren Datenbank
irgendwo ein Bit umgekippt ist. Dann kommen lustige Fehlermeldungen wie
"could not execute INSERT blah INTO blubb§"§$#",
wobei die "komischen" zeichen 100 pro nicht in der original DB standen :-)
Der Replikations-Client bleibt dann einfach komplett stehen :-(
Gruss
Markus
www.presencepark.de