MySQL verteilen und sichern: Master und Slave

Daten kopieren mit Mysqldump

Das Programm mysqldump kann eine komplette Datenbank von einem MySQL-Server auf die Festplatte schreiben. Man braucht dazu keinen Shell-Account auf dem Rechner mit dem MySQL-Server. Allerdings muss der Port für MySQL im freien Zugriff stehen, denn sonst kann sich mysqldump nicht mit dem Server verbinden. Der Aufruf von mysqldump lautet wie folgt:

bash> mysqldump [OPTIONEN] database [Tabellen]

[Tabellen] bedeutet in diesem Zusammenhang eine Auflistung der Tabellen, die gesichert werden sollen. Wenn Sie diese Angabe weglassen, dann schreibt mysqldump einfach alle Tabellen, das ist wohl der Normalfall, und genau den brauchen Sie für den Transport der Datenbasis auf den Slave.

Doch das reicht natürlich nicht ganz aus: Sie wollen die Daten ja nicht am Bildschirm ansehen, sondern in einer Datei speichern. Dazu leiten Sie einfach die Ausgabe in eine Datei um.

Bash> mysqldump database > sicherung.sql

Die Sicherungskopie enthält dabei sowohl die Struktur Ihrer Tabellen als auch die zugehörigen Daten. Um die Daten aus der Sicherungskopie auf dem Slave wieder einzuladen, verwenden Sie:

bash> mysql < sicherung.sql

Wenn Sie sich nicht auf dem Server befinden, auf dem auch der MySQL-Dämon läuft, müssen Sie mysqldump mitteilen, von welchem Server es die Daten abholen soll. Dazu gibt es die Option -host=RemoteHost, bei der Sie statt RemoteHost den Server mit dem MySQL-Dämon angeben.

Dies erzeugt besonders bei großen Datenbanken jede Menge Traffic - das größte Problem beim Sichern mit mysqldump über das Netz. Für eine lokale Sicherung stellt das Programm hingegen das optimale Werkzeug dar.