[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