Guter Server ermitteln
Zuerst muss entschieden werden, welcher der "guter" Server ist. Wenn HAPROXY im Betrieb ist, dann ist der guter Master der auf den die Daten derzeit geschrieben werden.
HAPROXY umstellen
Falls es ein HAPROXY gibt, dann die Server auf der Kaputten Master Seite aus der Verteilung herausnehmen (auch den Slave auf dieser Seite).
Auf BEIDE Master Server
STOP SLAVE;
Auf den ZWEITEN Master Server eine Sicherung der ersten Master DB anfertigen
mysqldump -hacd-dbm1 -uroot -pfireball --single-transaction --master-data=2 --databases JTELWeb JTELStats JTELLog --add-drop-database --add-drop-table --events --routines --triggers > master.sql
Auf den ZWEITEN Master Server, den Slave resetten, und Sicherung einspielen
RESET SLAVE;
SOURCE master.sql;
CHANGE MASTER TO MASTER_HOST = 'acd-dbm1', MASTER_USER = 'repl', MASTER_PASSWORD = 'fireball', MASTER_LOG_FILE='<Name LogFile>', MASTER_LOG_POS=<Position LogFile>;
START SLAVE;
Auf den ZWEITEN Master Server den Slave Prüfen
SHOW SLAVE STATUS\G
Auf den ZWEITEN Master Server alle Tabellen locken und Master Position notieren
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
Auf den ERSTEN Master Server die Replikation neu positionieren und starten
CHANGE MASTER TO MASTER_LOG_FILE='<Name LogFile>', MASTER_LOG_POS=<Position LogFile>;
Auf den ZWEITEN Master Server die Tabellen Locks aufheben
UNLOCK TABLES;
Auf allen Servern nun
SHOW SLAVE STATUS\G
Es ist normalerweise nicht nötig, die Slaves die an beide Master hängen ebenfalls zu wiederherstellen. Wenn doch, können diese mit der normalen Prozedur für das Wiederherstellen des Slaves neu initialisiert werden.