mysql master-master-Replikation 1


Im Unterschied zu einer master-slave-Replikation werden bei einer master-master-Replikation stehen auf jedem Server gemachte Änderungen sofort auf beiden zur Verfügung.

Das Aufsetzen einer master-master-Replikation unterscheidet sich nicht gravierend von einer master-slave-Replikation. Ich gehe hier nur auf die erforderlichen Änderungen ein (die Basics stehen mysql master-slave-Replikation).

Der alter Master-Server bleibt weiterhin master, der alte Slave wird zu master2

Auf beiden Servern wird /etc/my.cnf erweitert.

master:

replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 1
master-connect-retry = 60
report-host = master.mydomain.de

Wichtig sind
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 1

auto-increment-offset und server-id müssen immer unterschiedlich sein.
report-host setze ich nur wegen der bessern Übersichtlichkeit unter phpmyadmin ein.

master2:

replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 2
master-connect-retry = 60
report-host = master2.mydomain.de

auto-increment-offset und die Server-ID müssen unterschiedlich sein

Damit sind die Änderungen an den Config abgeschlossen. Damit diese wirksam werden, müssen die mysql-Server aber noch neu gestartet werden.

Auf master2 existiert noch kein User für den Server master:

GRANT REPLICATION SLAVE ON *.* TO 'slave_user00'@'%' IDENTIFIED BY '';
FLUSH PRIVILEGES;

Ab jetzt kann sich master als slave_user00 mit dem Paßwort some_password anmelden. master2 konnte das schon aus der Master-Slave-Replikation als slave_user01.

master2 ist bereits mit master verbunden. Das lässt sich wie gehabt in mysql überprüfen:
show slave status\G

Um den Status als Master zu sehen, verwenden wir
SHOW MASTER STATUS\G


mysql> SHOW MASTER STATUS\G
*************************** 1. row ***************************
File: mysql-bin.000158
Position: 423588499

Dem Server master müssen wir noch beibringen, wie er sich mit dem anderen Master verbinden soll. Unter mysql geben wir ein

CHANGE MASTER TO MASTER_HOST='master', MASTER_USER='slave_user00', MASTER_PASSWORD='some_password',

MASTER_LOG_FILE='db2-bin.000158', MASTER_LOG_POS=423588499;
START SLAVE;

Mit show slave status\G lässt sich ab sofort die Replikation auf beiden Servern überwachen.


Kommentar erstellen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Ein Gedanke zu “mysql master-master-Replikation