MySQL: Master-Slave einrichten (konfigurieren)
Falls der MySQL-Server einmal ausfällt ist das Gejammer groß. Daher sollte man einen Mirror aufsetzen und für den Notfall hat man ein Ersatz-System.
Die folgende Schritte sollen zeigen wie man eine Replikation aufsetzt. Hier Master-Slave.
Mein Aufbau:
2 Rechner mit openSUSE 11.1 und MySQL 5.0.67.
Vorraussetzungen:
Auf Master und Slave läuft der MySQL-Server und beide System sind für Ihre Aufgaben eingerichtet. Stichwort: Server-id und binäres Loggen.
Master
2 Shells öffnen
In Shell 1 wird mysql gestartet.
Die Shell muss offen bleiben.
mysql -u root -p mysql> FLUSH TABLES WITH READ LOCK; mysql> SHOW MASTER STATUS;
Beispiel:
mysql> Show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000003 | 98 | | | +------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
In Shell 2 nun den Dump erstellen
mysqldump -u root -p --all-databases --lock-all-tables > /home/tmp/dbdump.db
Alternativ kann auch das hier verwendet werden:
mysqldump -u root -p --all-databases --master-data > /home/tmp/dbdump.db
Hier werden die Infos zu Change-Master gleich mit eingetragen (Infos).
Auf Shell 1 die Tabellen wieder freigeben:
mysql> UNLOCK TABLES;
Den dump auf den Slave übertragen
scp /home/tmp/dbdump.db 192.168.0.4:/home/tmp/
Slave
2 Shells öffnen
In Shell 1 wird mysql gestartet.
Die Shell muss offen bleiben.
Den Slave stoppen
mysql> STOP SLAVE;
In Shell 2 nun den Dump importieren
shell> mysql -u root -p < /home/tmp/dbdump.db
In Shell 1 den Slave anweisen
CHANGE MASTER TO MASTER_HOST='192.168.0.7', MASTER_USER='repl', MASTER_PASSWORD='repl', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=98;
und starten
mysql> START SLAVE;
Doku
- Hier ist alles ausführlichst auf englisch beschrieben: http://dev.mysql.com/doc/refman/5.1/en/replication-howto.html
Bei nützlichen Hinweisen erweitere ich dies hier gerne.
- Login to post comments