[linux-support] Mysql HA setup
Markus Wernig
markus at wernig.net
Fri Sep 28 12:04:15 CEST 2007
Hallo allerseits
Ich möchte zwei redundante mysql Server als active/standby Master (A und
B) aufsetzen, die sich gegenseitig replizieren, und diese auf weitere
read-only mysql slave server (C) replizieren.
A und B haben eine gemeinsame virtuelle IP-Adresse (V), die via
heartbeat immer dem gerade aktiven Node zugewiesen wird. Die Slaves
verwenden diese virtuelle IP als Master.
A und B sind mit zirkulärer Replikation aufgesetzt und haben
log-slave-updates = 1. Das funktioniert soweit.
Das Problem ist jetzt, dass C für seine Replikation von master_host = V
sich z.B. folgende Angaben merkt: master_log_file = mysql-bin.0001,
master_log_pos = 1000. Das bedeutet, dass beide Master immer dieselben
Werte für ihr binlog haben müssen (filename und position), damit der
Slave bei einem Reconnect nach einem Failover wieder an der richtigen
Position im richtigen File weitermacht. Sobald die beiden Master keine
synchronen binlogs mehr haben, bricht die Replikation bei einem
Failover. Und ich habe es bisher nicht geschafft, die beiden über
längere Zeit synchron zu halten (insbesondere legt jeder Master bei
einem Restart ein neues File an, was der zweite Master zwar mitbekommt,
nicht aber der Slave, der zu dem Zeitpunkt ja mit dem zweiten Master
verbunden ist).
Hat jemand schon mal so etwas ähnliches gebaut und würde seine
Erfahrungen teilen? Ist der Ansatz so überhaupt vernünftig, oder müsste
man ganz anders drangehen (eine Alternative wäre z.B. ein Setup mit DRBD
und nur einem gleichzeitig aktiven mysqld, aber der Ansatz ist
betrieblich sehr aufwändig)?
Danke fürs Mitdenken
/markus
More information about the Linux-support
mailing list