MySQL verteilen und sichern: Master und Slave

MySQL bietet viele Möglichkeiten zur Sicherung der Daten. Auch wenn man auf ein Backup nicht verzichten sollte: Ein Master-Slave-Setup, bei dem der Slave als Live-Kopie läuft, ist die praktischste aller Methoden.

Beim Master-Slave-Betrieb von MySQL kommen mindestens zwei Rechner zum Einsatz. Auf einem Rechner läuft eine normale MySQL-Datenbank, während der zweite und alle weiteren Rechner als Slave fungieren. Ein solches Sklaven-MySQL ist dabei mit dem Master-Server verbunden. Der Master führt Buch über alle stattfindenden Transaktionen, und der Slave führt anhand dieser Buchführung alle Transaktionen ebenfalls aus. Dabei geht es nur um Änderungen an der Datenbank: Befehle, die auf Inhalt oder Zustand der Datenbank keine Auswirkung haben, werden vom Slave nicht ausgewertet.

Das Resultat ist eine MySQL-Datenbank, die zusätzlich zum Master-Server über alle aktuellen Daten verfügt, und zwar so zeitnah, dass der Inhalt praktisch immer identisch mit dem der Master-Datenbank ist. Da aber nur Veränderungen an der Datenbasis mitgeführt werden, liegt die Last des Slave-Rechners fast bei null. Man kann diesen Rechner also für sekundäre Zwecke oder als Entlastung für den Master-Server verwenden.

Da sich bei MySQL beliebig viele Slaves einsetzen lassen, ist mit dem Master/Slave-Mechanismus auch ein einfaches Loadbalancing für den Server möglich: Änderungen werden nur über den Master-Server durchgeführt, CPU-intensive Queries werden hingegen auf mehrere Rechner verteilt.