Replikation von MySQL-Datenbanken

Replikation bezeichnet die mehrfache Speicherung von Daten an typischerweise unterschiedlichen Standorten. Es geht also darum, einen MySQL Server zu duplizieren, so dass dieser bspw. in zwei Rechenzentren zur Absicherung parallel läuft.

Zunächst sollten wir auf beiden Servern MySQL (und bestenfalls phpMyAdmin, dies erfordert natürlich noch einen entsprechenden Webserver, ich empfehle an dieser Stell das  Xampp Paket dieses beinhaltet bereits MySQL, PHP, Apache und auch den phpMyAdmin). Idealerweise verwenden die beiden Server identische MySQL-Versionen um einen fehlerfreien Betrieb sicherzustellen.

Zur eigentlichen Replikation gehen wir wie folgt vor:

  1. Sichern Sie auf beiden Servern zunächst die Datei my.cnf
  2. Duplizieren Sie die Datenbank vom Master-Server auf den Slave-Server (hier genügt aus meiner Erfahrung auch ein Abbild de r DB-Struktur, also ohne Daten)
  3. Auf dem Master Server einen Nutzer “replikation” in der Tabelle mysql.user anlegen. Der Nutzer erhält die Rechte Select_priv, Reload_priv, File_priv, Super_priv und Repl_slave_priv.
  4. Auf dem Slave Server legen wir ebenfalls einen Nutzer “replikation” in der Tabelle mysql.user an. Dieser benötigt die Rechte File_priv, Repl_slave_priv, Repl_client_priv
  5. Nun bearbeiten wir die my.cnf auf dem Master-Server. Dieser benötigt zum einen unter [mysqld] eine Server-id, z.B. server-id=1. Weiterhin wird der Eintrag log-bin=<Pfad> benötigt um das Binäre Loggen zu veranlassen.
  6. In der my.cnf auf dem Slave benötigen wir ebenfalls eine Server-id, diese muss jedoch von der des Masters abweichen, also z.B. server-id=2. Einen log-bin=<Pfad> Eintrag benötigen wir ebenfalls. Um die Kommunikation mit dem Master sicherzustellen benötigen wir auch noch folgenden Abschnitt:# Replikation
    master-host    = <host des masters>
    master-user    = replikation
    master-password    = <passwort>
    replicate-do-db = <datenbankname>
  7. Nun können wir beide Server neustarten. In beiden Servern sollten jetzt in der mysql.err entsprechende Hinweise oder ggf. Fehlermeldungen auftauchen. Ebenso wird man auf beiden Servern nun Dateien auffinden, die wie folgt aussehen: <datenbank>-bin.0000001, <datenbank>-bin.index
  8. Wenn alles läuft können wir uns jetzt auf dem Slave mit “LOAD DATA FROM MASTER” die Daten holen und ggf. mit “STOP SLAVE” bzw. “START SLAVE” das Replizieren unterbrechen und wieder aufnehmen.

Weitere Informationen im Netz:

- MySQL Referenzhandbuch - Wie man eine Replikation aufsetzt
- Antiwome - Replikation von MySQL-Datenbanken
- Master-Master Replikation mit MySQL 5 (Bidirektional)

Keine Antwort bis jetzt.

Comments are closed.

Comment RSS · TrackBack URI