rss
twitter
  •  

Datenbank sichern mit mysqldump

| Posted in Linux, Technik |

0

MySQL Datenbanken die bei einem Webhoster liegen sichert man bequem mit phpMyAdmin. In manchen Fällen ist phpMyAdmin aber nicht unbedingt das Tool der Wahl. Größere Datenbanken lassen sich meist schlecht sichern, da die meisten Webhoster der Ausführungszeit von PHP-Scripten beschränken. Auch der eigene Internetzugang kann einem schon einen Strich durch die Rechnung machen. Als Ergebnis gibts dann entweder einen Server-Fehler oder einen Timeout.

Hat man in seinem Hostingpaket aber Shellzugriff mit drin, so läßt sich dieses Problem bei den meisten Hostern umgehen. Man loggt sich per SSH auf dem Webserver ein und sichert seine Datenbank(en) mit dem Kommandozeilentool mysqldump.

Die allgemeine Sytax zum Sichern:

mysqldump [OPTIONS] database [tables]

Das folgende Beispiel sichert die Datenbank Datenbank in die Datei backup.sql:

mysqldump --opt datenbank > backup-file.sql

Bei Strato z. Bsp. würde der Aufruf folgendermaßen aussehen:

mysqldump --opt -h rdbms --user=username --password=passwort ↵
 DB123 > backup-file.sql

Mit „–opt“ werden einige Standareinstellungen des MySQL-Server aktiviert, „-h rdbms“ gibt den Host an, auf welchem die Datenbanken liegen (bei vielen Hostern liegen Webserver und Datenbanken auf unterschiedlichen Maschinen). Bei „–username“ und „–password“ natürlich die eigenen Benutzerangaben eintragen. Damit wird die Datenbank DB123 in die Datei backup-file.sql gesichert.

Sollte die Sicherung mit einem Fehler abbrechen, kann man noch die Option „–force“ verwenden, dann dumpt mysqldump auch bei Fehlern weiter.

Das Rücksichern des Backups übenimmt das Tool mysql. Der Aufruf ist ähnlich wie bei mysqldump:

mysql datenbank < backup-file

In meinem Beispiel also:

mysql -h rdbms --user=username --password=passwort DB123 < backup-file.sql

Somit hat man seine Datenbank auf einfache und schnelle Weise gesichert. Die Sicherungen kann man dann entweder auf dem Server archivieren, oder per FTP herunterladen. Da die Backupdatei eine reine Textdatei ist, läßt sich diese auch wunderbar komprimieren, damit sie für den Download etwas handlicher ist.

Das Ganze verpacke ich dann noch in ein Shellscript, so ist meine Datenbank mit einem Aufruf gesichert, komprimiert und bereit zur Archivierung:

#!/bin/sh
#Sicherung Datenbank

echo "Datenbank wird jetzt gesichert..."

DATESTRING=`date +"%Y-%m-%d"`
NEWNAME=db123_$DATESTRING

mysqldump -h euerhost --user=euername --password=euerpasswort ↵
DB123 > $NEWNAME.sql
gzip -9 -S .zip $NEWNAME.sql

echo "Die Datenbank nach $NEWNAME gesichert"

Dieses Script einfach in eine Textdatei kopieren und z. Bsp. dasi.sh benennen und dann per FTP auf den Server kopieren und per SSH auf dem Server einloggen. Bei vielen Hostern muss dann noch das Recht zum Ausführen gesetzt werden:

chmod u+x dasi.sh

und das Script dann mit

./dasi.sh

aufrufen. Fertig.